IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

[BSD 2006] Erreur de violation d'accès sur un ShowModal


Sujet :

C++Builder

  1. #21
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    je test ça et je vous tiens au courant...
    merci d'avance déjà pour vos réponses...

    [EDIT]
    Voilà, j'ai fait ce que vous m'avez dit, soit juste Print(); mais ça ne marche toujours pas... J'ai toujours le message comme quoi Print doit prendre un emplacement mémoire.
    Sinon, vous ne connaissez pas un moyen d'imprimer ma form qui pourrait remplacer mon print ???
    merci à vous.
    [/EDIT]
    développeur en folie cherche à ... développer encore plus

  2. #22
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    Avec TPrinter (voir l'aide car il doit y avoir des exemples, en particulier TPrinter::TCanvas).

    Il y a deux possibilités :
    Soit traiter directement de Canvas à Canvas (Form ==> Printer) à tester en premier car c'est ce qu'il y a de plus simple.
    Soit on procède à l'aide d'un bitmap.
    Ce dernier peut très bien être celui sur lequel on dessine (malgré le double buffer) ou bien celui obtenu par TForm::GetFormImage.
    Ca dépend de ce qu'il y a à imprimer !

    A plus !

    Il ne faut pas renoncer devant ce bug ! Il y a forcément une raison !

  3. #23
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par henderson
    Salut !

    Avec TPrinter (voir l'aide car il doit y avoir des exemples, en particulier TPrinter::TCanvas).

    Il y a deux possibilités :
    Soit traiter directement de Canvas à Canvas (Form ==> Printer) à tester en premier car c'est ce qu'il y a de plus simple.
    Soit on procède à l'aide d'un bitmap.
    Ce dernier peut très bien être celui sur lequel on dessine (malgré le double buffer) ou bien celui obtenu par TForm::GetFormImage.
    Ca dépend de ce qu'il y a à imprimer !

    A plus !
    Ok, merci pour l'info, je connais effectivement le canvas de TPrinter puisque je l'utilise dans une autre partie de mon code.
    Mais là, je souhaite un imprime écran car il s'agit d'un graphique...
    Je vais donc essayer de voir ta deuxième solution

    Citation Envoyé par henderson
    Il ne faut pas renoncer devant ce bug ! Il y a forcément une raison !
    En effet, il y a forcément une raison, mais laquelle???
    Personnellement, je ne vois pas, et apparement, vous ne voyez pas non plus... en tout cas, je suis ok pour trouver la solution si vous avez une idée... (si besoin de plus d'info, vous pouvez demander...)

    Bref, pour le moment, je crois que je n'ai pas trop de choix qui s'offre à moi...
    Vivement que ce problème soit résolu...
    développeur en folie cherche à ... développer encore plus

  4. #24
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    Je pense qu'il serait bien que tu envoie ton source complet s'il n'est pas trop long, du moins que la déclaration de ta classe, ta méthode Print, ton showModal qui plante. Bref qu'on puisse tester sur nos machines.

    C'est compliqué lorsqu'on a pas tous les éléments sous les yeux. Mais en tout cas, c'est clair qu'il faut trouver la solution. Courage.

  5. #25
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par kurkaine
    Je pense qu'il serait bien que tu envoie ton source complet s'il n'est pas trop long, du moins que la déclaration de ta classe, ta méthode Print, ton showModal qui plante. Bref qu'on puisse tester sur nos machines.

    C'est compliqué lorsqu'on a pas tous les éléments sous les yeux. Mais en tout cas, c'est clair qu'il faut trouver la solution. Courage.
    oui, mais le truc, c'est que c'est C++ BUilder et donc, c'est lui qui fait tout. Je ne fait qu'appeler les méthodes Print et ShowModal, je ne sais meme pas ou elles sont écrites... et c'est lui aussi qui les a déclarées...
    développeur en folie cherche à ... développer encore plus

  6. #26
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    Sorry, j'ai créer une appli avec un simple bouton, dont le code est Print();, lorsque j'appel cette fonction, je n'ai pas d'erreur et j'imprime ma fiche. Essaie de faire la même chose, créer une appli simple ou tu as un simple bouton. Ensuite, ajoute 1 à 1 des fichiers jusqu'à trouvé l'origine probable de l'erreur.

  7. #27
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par kurkaine
    Sorry, j'ai créer une appli avec un simple bouton, dont le code est Print();, lorsque j'appel cette fonction, je n'ai pas d'erreur et j'imprime ma fiche. Essaie de faire la même chose, créer une appli simple ou tu as un simple bouton. Ensuite, ajoute 1 à 1 des fichiers jusqu'à trouvé l'origine probable de l'erreur.
    le problème, c'est que je ne peux pas faire ça car j'ai besoin d'informations d'un autre fichier pour cette form là...
    développeur en folie cherche à ... développer encore plus

  8. #28
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    je pense avoir trouvé la raison de cette erreur sur ma fonction Print() mais poouvez-vous me confirmer STP...
    Pour moi, cela viendrait du fait que je cherche à imprimer sur une imprimante qui n'est pas réellement connecté à l'ordinateur et que donc, celui-ci ne peut pas envoyer les informations et plante ...
    Cela vous parrait-il normale ? Est-ce que ce pourrait être la raison de mon erreur ?
    Merci d'avance
    développeur en folie cherche à ... développer encore plus

  9. #29
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    Installe une imprimante pdf et tu verras bien. Tu peux trouver des freeware, cherche sur des sites de software. En fait, tu auras une imprimante installer sauf que dés que tu imprimes, ton document est imprimer au format pdf. Mais le comportement est le même que pour une imprimante physique.

  10. #30
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par kurkaine
    Installe une imprimante pdf et tu verras bien. Tu peux trouver des freeware, cherche sur des sites de software. En fait, tu auras une imprimante installer sauf que dés que tu imprimes, ton document est imprimer au format pdf. Mais le comportement est le même que pour une imprimante physique.
    oui, je sais, je connais, c'est justement grâce à cela que j'ai vu que ça marchait lorsque l'imprimante est connectée. Ce que je voulais savoir maintenant, c'est si je peux généraliser cela ou pas, cad : ça plante quand l'imprimante est pas présente et ça plante pas si elle est présente ?
    VOilà, à toi quand même...
    développeur en folie cherche à ... développer encore plus

  11. #31
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut doudouallemand:
    Une idee comme ca.
    Est ce que tu ne peut pas gerer l'erreur avec try, catch, throw, qui te dit que l'imprimante est absente, mais qui ne bloque pas le programme.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  12. #32
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par blondelle
    Salut doudouallemand:
    Une idee comme ca.
    Est ce que tu ne peut pas gerer l'erreur avec try, catch, throw, qui te dit que l'imprimante est absente, mais qui ne bloque pas le programme.
    euh, bah si mais je n'y avais même pas pensé à vrai dire...
    Super idée ça, je vais faire cela...
    à toi de cette idée
    développeur en folie cherche à ... développer encore plus

  13. #33
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par blondelle
    Salut doudouallemand:
    Une idee comme ca.
    Est ce que tu ne peut pas gerer l'erreur avec try, catch, throw, qui te dit que l'imprimante est absente, mais qui ne bloque pas le programme.
    Salut.
    Alors voilà, j'ai été long mais j'ai enfin testé le try-catch et j'ai un gros problème : L'ERREUR PASSE AU TRAVERS ET N'EST PAS INTERCEPTE PAR LE CATCH!!!!! j'ai jamais vu ça...
    développeur en folie cherche à ... développer encore plus

  14. #34
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    Peut-être en testant le nombre d'imprimantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(Printer()->Printers->Count != 0)
        {
        //...donc il existe au moins un dispositif compatible imprimante...
        }
    else
        {
        ShowMessage("Aucune imprimante !");
        }
    Ca ne résoud pas tout (pour l'instant) puisque l'on peut avoir un FAX et pas d'imprimante !

    A plus !

  15. #35
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par henderson
    Salut !

    Peut-être en testant le nombre d'imprimantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(Printer()->Printers->Count != 0)
        {
        //...donc il existe au moins un dispositif compatible imprimante...
        }
    else
        {
        ShowMessage("Aucune imprimante !");
        }
    Ca ne résoud pas tout (pour l'instant) puisque l'on peut avoir un FAX et pas d'imprimante !

    A plus !
    Oui, mais ça ne répond pas non plus à mon problème qui n'est pas de savoir si l'on a une imprimante ou pas, mais de savoir si l'imprimante par défaut est connectée ou pas...
    d'avance
    développeur en folie cherche à ... développer encore plus

  16. #36
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    Peut-être en se servant des API WINDOWS :

    OpenPrinter il me semble que ça concerne le matériel

    GetPrinter pour la quelle il y a pusieurs PRINTER_INFO en particulier PRINTER_INFO_2

    ClosePrinter

    Ce qui me pose un problème est de récupérer le nom de l'imprimante par défaut... ???

    A plus !

  17. #37
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par henderson
    Salut !

    Peut-être en se servant des API WINDOWS :

    OpenPrinter il me semble que ça concerne le matériel

    GetPrinter pour la quelle il y a pusieurs PRINTER_INFO en particulier PRINTER_INFO_2

    ClosePrinter

    Ce qui me pose un problème est de récupérer le nom de l'imprimante par défaut... ???

    A plus !
    ok, je vois ça cette aprem et je te redis, merci
    développeur en folie cherche à ... développer encore plus

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/12/2006, 15h18
  2. Violation d'accès sur un TIdFTP
    Par cfalcot dans le forum Web & réseau
    Réponses: 9
    Dernier message: 09/05/2006, 15h14
  3. violation d'accès sur open de TQuery
    Par letissya dans le forum Bases de données
    Réponses: 5
    Dernier message: 08/11/2005, 14h35
  4. [D7] Erreur de violation d'accès
    Par plante20100 dans le forum Langage
    Réponses: 10
    Dernier message: 26/08/2005, 11h05
  5. Violation d'accès sur un TXMLDocument
    Par WebPac dans le forum Composants VCL
    Réponses: 14
    Dernier message: 15/03/2005, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo