Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#1

Modales Fenster in DLL, Taskleiste

  Alt 23. Feb 2015, 16:27
Hallo *.*

auch wenn mein Thema mit dieser kürzlich gestellten Frage verwandt ist, so liegt die Sache doch anders.

Ich habe eine DLL (meine eigene), die in einem Host läuft (hier Total Commander). Ich erzeuge ein VCL-Fenster in meiner DLL und möchte dieses modal anzeigen. Benutze ich hierfür
Delphi-Quellcode:
fmPluginSettings:= TfmPluginSettings.Create(nil);
try
    fmPluginSettings.Init;
    fmPluginSettings.ShowModal;
finally
    fmPluginSettings.Free;
end;
wird ein neuer Button auf der Taskleiste erzeugt - unschön. Also muss ich auf irgendeine Weise das Parentfenster setzen. Mache ich das mit fmPluginSettings:= TfmPluginSettings.CreateParented(AhParent); verschwindet zwar der Button auf der Taskleiste, aber man kann das Fenster von Total Commander nicht mehr durch Klick auf die Taskleiste nach vorn holen, wenn eine andere Anwendung im Vordergrund ist und mein Dialog gerade angezeigt wird - ebenfalls unschön.

Was ich bisher benutzt habe, muss ich aus anderen Gründen vermeiden: Application.Handle:= AhParent; denn das gibt eine Access Violation beim Anzeigen von Tooltips oder der Verwendung von TActionList, aber lustigerweise nur unter 64 Bit.

Ein solches oder ähnliches Problem hatte doch bestimmt schon einmal irgendjemand, oder?

Ich bringe die Frage nochmal auf den Punkt: Wie kann ich einen modalen Dialog in einer DLL erzeugen, ohne einen Eintrag in der Taskleiste zu erzeugen und zwar so, dass die Host-Anwendung durch Klick auf die Tasleiste in den Vordergrund kommt, auch wenn der modale Dialog gerade angezeigt wird?

MfG Dalai
  Mit Zitat antworten Zitat