Problème Show Modal [Résolu]

trezeled 19 Messages postés mardi 27 mai 2003Date d'inscription 27 septembre 2006 Dernière intervention - 21 févr. 2006 à 21:55 - Dernière réponse : griffon07 1 Messages postés dimanche 1 juillet 2007Date d'inscription 22 avril 2012 Dernière intervention
- 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 ????
Afficher la suite 

15 réponses

Répondre au sujet
walid2876 49 Messages postés mardi 26 avril 2005Date d'inscription 31 août 2008 Dernière intervention - 23 févr. 2006 à 01:01
+3
Utile
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;
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de walid2876
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 21 févr. 2006 à 22:58
0
Utile
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.
Commenter la réponse de cs_Delphiprog
trezeled 19 Messages postés mardi 27 mai 2003Date d'inscription 27 septembre 2006 Dernière intervention - 22 févr. 2006 à 08:46
0
Utile
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
Commenter la réponse de trezeled
cs_deubal 198 Messages postés mercredi 26 novembre 2003Date d'inscription 26 août 2009 Dernière intervention - 22 févr. 2006 à 10:19
0
Utile
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
Commenter la réponse de cs_deubal
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 22 févr. 2006 à 13:50
0
Utile
Salut,
essayez comme ça :

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

@+
Cirec
Commenter la réponse de Cirec
trezeled 19 Messages postés mardi 27 mai 2003Date d'inscription 27 septembre 2006 Dernière intervention - 22 févr. 2006 à 18:08
0
Utile
Ca ne fonctionne pas pour moi, j'ai deja essayé mais ca pose toujours le meme probleme
Commenter la réponse de trezeled
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 22 févr. 2006 à 18:34
0
Utile
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
Commenter la réponse de Cirec
trezeled 19 Messages postés mardi 27 mai 2003Date d'inscription 27 septembre 2006 Dernière intervention - 22 févr. 2006 à 19:09
0
Utile
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
Commenter la réponse de trezeled
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 22 févr. 2006 à 19:50
0
Utile
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
Commenter la réponse de Cirec
trezeled 19 Messages postés mardi 27 mai 2003Date d'inscription 27 septembre 2006 Dernière intervention - 22 févr. 2006 à 19:55
0
Utile
Form2 ne doit pas etre créé avec un showmodal mais Form2
Commenter la réponse de trezeled
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 22 févr. 2006 à 20:33
0
Utile
c'est pareil je l'ai fait dans tous les sens
le problème viens d'ailleurs

@+
Cirec
Commenter la réponse de Cirec
walid2876 49 Messages postés mardi 26 avril 2005Date d'inscription 31 août 2008 Dernière intervention - 23 févr. 2006 à 01:07
0
Utile
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
Commenter la réponse de walid2876
trezeled 19 Messages postés mardi 27 mai 2003Date d'inscription 27 septembre 2006 Dernière intervention - 23 févr. 2006 à 08:44
0
Utile
OK Merci, c'etait bien le create parented qui me posait souci.
Commenter la réponse de trezeled
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 23 févr. 2006 à 11:58
0
Utile
c'est ce que j'ai dit depuis le début mais manifestement tu as dis non sans même tester
Commenter la réponse de Cirec
griffon07 1 Messages postés dimanche 1 juillet 2007Date d'inscription 22 avril 2012 Dernière intervention - 22 avril 2012 à 17:14
0
Utile
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 !
Commenter la réponse de griffon07

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.