Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Parent einer DllForm setzen ???? (https://www.delphipraxis.net/102762-parent-einer-dllform-setzen.html)

Bernd29bln 4. Nov 2007 09:47


Parent einer DllForm setzen ????
 
Hallo

Ich Lade mir in mein Hauptprogramm eine DLLForm. Ich möchte nun den Parent der DLLForm auf die Form des Hauptprograms setzen.

Delphi-Quellcode:
    procedure InitDLL(hAppHandle:Cardinal); stdcall; //<-- ich dachte hier an (Parent: Pointer)
    function ShowForm:Boolean; stdcall;
    function HideForm:Boolean; stdcall;

implementation


{$R *.dfm}

procedure InitDLL(hAppHandle:Cardinal); stdcall;
begin
   Application.Handle:=hAppHandle; // <-- aber wie Parent hier setzen????
end;
MfG Bernd

Nuclear-Ping 4. Nov 2007 10:41

Re: Parent einer DllForm setzen ????
 
Der Parent deiner DLL-Form muss auf deine Hauptform (oder einer Komponente wie zB Panel) gesetzt werden.

[edit]
Also wenn ich das 3x lese, beantwortest du dir deine Frage doch selber ... :gruebel:
Was ist denn dein Problem?
[/edit]

Bernd29bln 4. Nov 2007 10:47

Re: Parent einer DllForm setzen ????
 
Naja das ist ja meine frage wie ?
hab ich auch schon versucht da aber die dllform erst beim button klick geladen wird kann der compiler damitnix anfangen :(

MfG

Nuclear-Ping 4. Nov 2007 10:53

Re: Parent einer DllForm setzen ????
 
Naja, ich kann nur raten, wie deine DLL aufgebaut ist.

Das Parent-Handle einer Form kannst du zu jeder Zeit setzen, auch in der "InitDLL-" oder "ShowForm"-Routine, wenn du die erweiterst und da das Handle deiner Hauptform mitgibst.
Dann setzt du in deiner DLL halt MyForm.Parent := MainFormHandle. Schau dir auch mal die API SetParent ([msdn]http://msdn2.microsoft.com/en-us/library/ms633541.aspx[/msdn]) an.

Bernd29bln 4. Nov 2007 12:51

Re: Parent einer DllForm setzen ????
 
Hallo@all,

Schon klar, aber wie übermittel ich der dll das ich die hauptform mit parent meine ?
ich stecke da noch nicht so drin :(

MfG

Bernd29bln 4. Nov 2007 13:04

Re: Parent einer DllForm setzen ????
 
habs schon danke

Bernd29bln 4. Nov 2007 13:30

Re: Parent einer DllForm setzen ????
 
Hallo,

geht doch net so.

habs in der dll so geändert:
Delphi-Quellcode:
procedure InitDLL(Parent: Pointer); stdcall;
begin
 DLLForm.Parent := Application.MainForm;
end;
und im Programm so:
Delphi-Quellcode:
procedure TMainForm.SpeedButton1Click(Sender: TObject);
begin
   InitDll(DLLForm.Parent);
   ShowForm;
end;
Was hab ich falsch gemacht?

MfG

Nuclear-Ping 4. Nov 2007 14:35

Re: Parent einer DllForm setzen ????
 
In der DLL:
Delphi-Quellcode:
procedure InitDLL(Parent: Integer);
begin
  DLLForm.Parent := Parent;
end;
Im Programm:
Delphi-Quellcode:
procedure TMainForm.SpeedButton1Click(Sender: TObject);
begin
   InitDll(DLLForm.Handle);
   ShowForm;
end;

Bernd29bln 4. Nov 2007 18:01

Re: Parent einer DllForm setzen ????
 
Vielen Dank :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 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