Hallo,
ich habe eine DLL, in der ich ein Formular verwende. Die DLL wird in einen Prozess injected.
Das Formular hab ich ganz einfach erstellt (Neu-Formular usw) ich kann es auch anzeigen. Wenn ich es aber im Hauptthread anzeige, ist das Formular gleich wieder weg (Bei formular.Show() )
Wenn ich es in einem anderen Thread ausführe und mit showmodal mache, bleibt es zwar da, aber ich kann es aus dem hauptthread nicht ändern. Der friert dann ein.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure ShowForm(); var wmsg : tmsg; begin frmConfig:=TfrmConfig.Create(nil); frmConfig.Show; while wMSG.message <> WM_USER+$FFFF do begin GetMessage(wMsg,0,0,0); TranslateMessage(wMsg); DispatchMessage(wMsg); end; end;
ThreadForm:=BeginThread(nil,0,TFNThreadStartRoutine(@ShowForm),nil,0,TID); frmConfig.mLog.Lines.Add('Test'); |
Wie kann ich es sonst (einfach) lösen?
Moderiert von
Narses: Topic aus VCL (Visual Component Library) verschoben am So 28.06.2009 um 13:06