![]() |
Form wirklich beenden
Hi,
ich habe folgendes Problem in einer Dll habe ich eine 2te unit für meine form. Die Form wird in einer Prozedur erstellt und beendet. Klappt auch wunderbar... beim ersten mal beim zweiten mal bekomme ich einen "abstrakten Fehler" gemeldet. Hab das mal ausprobiert, wenn ich das formcreate so auslagere das es nicht in der Prozedur liegt kann ich die prozedur problemlos mehrere male aufrufen. Nur kann ich das so nicht machen weil ich dann kein Ereignis habe um die form zu schließen und dann ein Fehler am Ende der gesamten Anwendung habe. Hier der Code damit meine wirren Erklärungsversuche evtl. besser verstanden werden:
Delphi-Quellcode:
Also ich glaube das Problem liegt daran, dass die Form mit destroy irgendwie doch nochnicht ganz erntfernt ist, weshalb beim zweiten mal create die alte und die neue form den fehler verursachen oder sowas
function TPlugInChild.GetNeededParams:string;
begin Form1:=TForm1.Create(Form1); form1.visible:=true; repeat Sleep(100); application.processmessages; until form1.visible=false; form1.destroy; //(habe auch schon free und freeinstance ausprobiert ) if unit1.aufgabe<>'' then Result:=unit1.Aufgabe else result:='Error'; end; Wär für hilfe echt dankbar MFG Flippo |
Re: Form wirklich beenden
möchte mal wissen warum ich immer Ewigkeiten suche und dann die Lösung eine Minute nachdem ich in ein Forum poste rausfinde... also wer das Problem auchmal hat ich hab einfach Form1:=TForm1.Create(Form1); in Form1:=TForm1.Create(nil); geändert.
|
Re: Form wirklich beenden
Versuchs mal mit .FreeAndNil
|
Re: Form wirklich beenden
ich vermute den Fehler hier:
Delphi-Quellcode:
ich hab das Gefühl du weißt nicht wirklich was du da machst.
Form1:=TForm1.Create(Form1);
Beim ersten Aufruf ist "Form1" wohl noch "nil". Beim zweiten Aufruf zeigt "Form1" auf den Speicherbereich wo "Form1" beim letzten erzeugen lag. Aber inzwischen zeigt es nur noch dorthin aber das Object gibt es nichtmehr. Du übergibst also ein ungültiges Object. Übergebe anstelle von "Form1" lieber "nil" oder mach dich kundig was der Parameter überhaupt für einen Sinn hat bevor du Ihn falsch benutzt. |
Re: Form wirklich beenden
naja bei vielen Sachen ist es tatsächlich so das ich noch nicht so recht weiss was ich da mache :stupid: , weil ich halt meistens für mich neue Sachen ausprobiere, aber da hättichs aber besser wissen können... danke trotzdem
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz