Hallo Delphianer,
Ich schreibe grade ein Programm so um, das es von einer anderen Anwendung über eine
DLL aufgerufen werden kann. Das Problem dabei ist, dass das Hauptformular mit Show und nicht mit ShowModal aufgerufen werden muss. So erhält das Formular keine Nachrichtenschleife und kurioserweise bekommen einige Threads, die vom Formular, bzw. von eingebetteten Frames gestartet werden keine Rechenzeit zugeteilt. Sobald ein modaler Dialog geöffnet wird, läuft wieder alles korrekt.
Die Funktion um das Formular aus der
DLL anzuzeigen sieht so aus:
Delphi-Quellcode:
function ShowForm(aHandle : HWND) : longint;
var
aForm : TBodyFrm;
begin
// save Application.Handle
oldHandle := Application.Handle;
Application.Handle := aHandle;
{ create and show form }
aForm := TBodyFrm.Create(Application);
//aForm.Parent := Application.MainWindow;
aForm.Show;
Result := longint(aForm);
end;
Wie verschaffe ich dem aufzurufenden Formular eine Nachrichtenschleife?
PS: Ich habe alle mir und Google bekannten Foren, Tutorials, etc. zum Thema gelesen, aber nirgendwo konnte ich eine funktionierende Methode finden.