Problème Show Modal

Résolu
trezeled Messages postés 19 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 27 septembre 2006 - 21 févr. 2006 à 21:55
griffon07 Messages postés 1 Date d'inscription dimanche 1 juillet 2007 Statut Membre Dernière intervention 22 avril 2012 - 22 avril 2012 à 17:14
Bonjour,

Lorsque j'essaye d'acceder a un formulaire à partir d'une fenetre modale j'obtiens le message d'erreur suivant : Violation d'accès à l'adresse.

En fait j'ai mon FrmMain dans lequel il y a une fenetre fille FrmDossiers et à partir d'un bouton de FrmDossiers j'ouvre avec un showmodal le FrmRecherche.

Et dans un DbGrid de FrmRecherche je cherche à remplir des controles de FrmDossiers ce qui me provoque l'erreur evoquée.

Lorsque j'effectue le pas à pas la valeur de FrmDossiers est egale à nil.

Pouvez-vous m'aider SVP ????

15 réponses

walid2876 Messages postés 49 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 31 août 2008
23 févr. 2006 à 01:01
TFrmDossiers.createParented(FrmMain.Handle);
Createparented cree un nouveau contrôle dans une fenêtre parent non-VCL.
donc ta form n'est pas crée avec Createparented est ça provoque une violation ...
donc ecris :
With TFrmDossiers.create(application) Do
Begin
showmodal;
Free;
End;
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 33
21 févr. 2006 à 22:58
Quel est le code employé quand tu appelles FrmDossiers ?
Tes fiches sont-elles auto créées par défaut ?


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
trezeled Messages postés 19 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 27 septembre 2006
22 févr. 2006 à 08:46
J'appelle FrmDossiers de la facon suivante :
Dans FrmMain, a partir d'un popup je lance :
if UpperCase(strPopup) = 'FRMDOSSIERS' then TFrmDossiers.Execute();

Puis dans la procedure execute de FrmDossiers, je lance
TFrmDossiers.createParented(FrmMain.Handle);

Et non FRmDossiers n'est aps créés par défaut
cs_deubal Messages postés 198 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 26 août 2009
22 févr. 2006 à 10:19
bonjour,
je rencontre un probleme pratiquement identique au tiens : du moins le message est identique mais la maniere de faire est differente :
- ma form appellée (form2) n'est pas creer par defaut- sur la form1 il y a un bouton et quand on clique dessus:
" form2 := Tform2.Create(Self);
form2.ShowModal;
form2.Free;"
- sur la form2 il y a un bouton avec le code
" close;"
et là dès que je clique ca me met le message d'erreur "Violation d'accès à l'adresse."
Pourquoi ?? je n'en sais rien
je me disais que si quelqu'un t'aidait , plutot que de poster un message sur le forum et que notre probleme a l'air identique, autant regrouper et peut-etre avoir une reponse commune ...
En vous remerciant par avance
bonne journee

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
22 févr. 2006 à 13:50
Salut,
essayez comme ça :

procedure TForm1.btn_1Click(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.showmodal;
Form2.Free;
end;

@+
Cirec
trezeled Messages postés 19 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 27 septembre 2006
22 févr. 2006 à 18:08
Ca ne fonctionne pas pour moi, j'ai deja essayé mais ca pose toujours le meme probleme
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
22 févr. 2006 à 18:34
Alors dans ce cas il faut donner plus de détails sur ton code.
Parce que j'ai fait le teste et le code que je te propose fonctionne très bien.

Donne déjà la procédure Execute et la procédure ou l'erreur se déclanche.

@+
Cirec
trezeled Messages postés 19 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 27 septembre 2006
22 févr. 2006 à 19:09
Dans la procedure Execute j'effectue juste la ligne deja indiquée :
TFrmDossiers.createParented(FrmMain.Handle);

Et l'erreur se declenche lorsque dans FrmRecherche (fenetre ouverte par un showmodal lors d'un clic sur un bouton dans FrmDossiers) je veux remplir un controle du type FrmDossiers.EdtNom.

Mais en fait le probleme vient du fait que FrmDossiers est une fenetre fille, dans FrmREcherche j'ai acces a FrmMain mais pas a FrmDossiers
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
22 févr. 2006 à 19:50
bon j'ai refait les testes :

Form1 qui crée Form2 (avec un TEdit) qui crée Form3 qui remplie l'edit de Form2
le tout (Form2 et Form3) en ShowModal
J'ai fait les testes de différentes manières et ça fonctionne toujours
donc si tu ne donne pas plus d'informations on ne pourra pas t'aider.

@+
Cirec
trezeled Messages postés 19 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 27 septembre 2006
22 févr. 2006 à 19:55
Form2 ne doit pas etre créé avec un showmodal mais Form2
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
22 févr. 2006 à 20:33
c'est pareil je l'ai fait dans tous les sens
le problème viens d'ailleurs

@+
Cirec
walid2876 Messages postés 49 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 31 août 2008
23 févr. 2006 à 01:07
Et Pour l'exemple de form1 et form2 ça fonctionne correctement
je vois pas ou est l'erreur ,l'erreur vienne d'ailleurs !!!!!!!!!!!!!
et n'est pas pareil au exemple de trezeled
trezeled Messages postés 19 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 27 septembre 2006
23 févr. 2006 à 08:44
OK Merci, c'etait bien le create parented qui me posait souci.
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
23 févr. 2006 à 11:58
c'est ce que j'ai dit depuis le début mais manifestement tu as dis non sans même tester
griffon07 Messages postés 1 Date d'inscription dimanche 1 juillet 2007 Statut Membre Dernière intervention 22 avril 2012
22 avril 2012 à 17:14
Je crois que j'ai le même problème ! moi je suis dans un "procedure TForm1.Button1Click(Sender: TObject);"
mon form2 est un "AboutBox" inventé donc :

begin
Application.CreateForm(TAboutBox, AboutBox); <<<< la compilation s'arrete ici
AboutBox.showmodal;
AboutBox.Free;
end;

il parle : d'indentificateur non déclaré : 'AboutBox'
dans ce cas là où peut on l'identifié??
Aboutbox (=form2) est bien dans le répertoire du projet !
Rejoignez-nous