AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form kann nicht angezeigt werden?

Ein Thema von alcaeus · begonnen am 7. Mai 2005 · letzter Beitrag vom 9. Mai 2005
 
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: Form kann nicht angezeigt werden?

  Alt 9. Mai 2005, 16:58
Hallo allerseits,

neue Woche, neues Glueck: ich habs geschafft. Damit nicht nur ich profitiere, stelle ich die Loesung mal hier rein:

Die Loesung verwendet die oben erwaehnten CreateParams. Die Funktion die das Form erstellt (in der DLL) wird so deklariert:
Delphi-Quellcode:
function GetMainForm(ParentHandle: HWND): TForm; stdcall;
begin
   if ParentHandle > 0 then
      Result := TfrmDLL.CreateParented(ParentHandle)
   else
      Application.CreateForm(TfrmDLL, Result);
end;
Das Form muss die CreateParams-Methode im public-Bereich ueberschreiben:
procedure CreateParams(var Params: TCreateParams); override; Die Implementation sieht dann so aus:
Delphi-Quellcode:
procedure TfrmDLL.CreateParams(var Params: TCreateParams);
begin
   inherited CreateParams(Params);
   if Self.ParentWindow > 0 then
      Params.Style := Params.Style or WS_CHILD;
end;
Bei der Verwendung wird zuerst der Funktionstyp deklariert:
TGetDLLFrm = function(ParentHandle: HWND): TForm; stdcall; Nun kann man sich den Pointer auf die Funktion holen:
DLLFormProc := GetProcAddress(DLLHandle, PChar('GetMainForm')); Und anschliessend kann man sich auch das Form holen:
Delphi-Quellcode:
ModuleForm := TGetDLLFrm(DLLFormProc)(Panel1.Handle);
with ModuleForm do
begin
   BorderStyle := bsNone;
   Align := alClient;
   Visible := True;
end;
Bei mir funktioniert das, vielen Dank an alle die geholfen haben

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz