non, en fait je pense que le déroulement du code de
form1.opendialog1.execute;
s'éffectue dans le processus de ta Form1 qui lui même s'effectue du coup dans le processus de ta Form2, et ça, c'est pas terrible étant donné que Form1 est bien crée pour l'application mais pas Form2
Du coup le release doit un peu perdre les pédales, parce que le release demande au processus parent de détruire la fenêtre (si elle n'en a pas, c'est la cata).
Donc au lieu de :
form2:=tform2.create(nil);
Je tenterais plus un truc de ce genre :
form2:=tform2.create(Application);
En plus, si je regarde dans les options de ton projet, ta fiche Form2 est déjà créée preuve en est la présence de cette ligne dans le dpr :
Application.CreateForm(TForm2, Form2);
Vires cette ligne, ou (c'est KifKif), dans les options de ton projet, onglet Fiches, tu mets form2 dans la partie "fiches disponibles".
Parce qu'en gros,ce que tu fait, c'est de créer une 2nde instance de fiche sans avoir précédemment libéré celle créée par Delphi (ça doit être ça le lézard...)
Partager