Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Formulare in DLL's (https://www.delphipraxis.net/18992-formulare-dlls.html)

Ramses 27. Mär 2004 09:46


Formulare in DLL's
 
Hallo zusammmen.

Das erstellen einer DLL ist ja nicht unbedingt ein Problem. Auch die Verwendung vom Formularen in DLL's. Leider ist scheinbar ein in der DLL erzeugtes Formular ein eigener Task :?: . Denn es erscheint immer in der Taskleiste von Windows. Auch alle weiteren in dem Formular erzeugten Forms werden bei mir immmer zusätzlich in der Taskleiste sichtbar, sogar das ActionMenu - das zudem noch nicht einmal richtig funktioniert.

Ich erstelle in der der DLL eine Form so
Delphi-Quellcode:
form1 := Tform1.Create(nil);
da mir ja die Parentkomponente fehlt und ich sie ja schlecht als Parameter an die DLL weitergeben kann ohne diese "Borlandspeicherdll" benutzen zu müssen, oder liege ich da falsch? :gruebel:


Weiß jemand Rat? :wall:

Grüsse
Björn

SirThornberry 27. Mär 2004 09:51

Re: Formulare in DLL's
 
mit
Delphi-Quellcode:
procedure TForm2.FormShow(Sender: TObject);
begin
  SetWindowLong(Handle, GWL_ExStyle, WS_Ex_AppWindow);
end;
bekommt man es hinn dass nicht nur das mainform in der Taskleiste sichbar ist. Vielleicht bekommst du ja mit bissl rumprobieren das gegenteil hinn....

Bernhard Geyer 27. Mär 2004 09:57

Re: Formulare in DLL's
 
Das kannst Du einfach lösen indem du das Application.Handle der DLL auf den gleichen Wert wie das Application.Handle der aufrufenden Exe setzt:
Code:
procedur DllForm(AppHandle: HWND);
var
  dlg: TMyDlg;
begin
  Application.Handle := AppHandle;
 
  dlg := TMyDlg.Create(nil);
  dlg.ShowModal;
  dlg.Free;
end;

Aufruf mit

  DllForm(Application.Handle);


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz