Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DLL Form in TTabSheet integrieren (https://www.delphipraxis.net/102578-dll-form-ttabsheet-integrieren.html)

napsterxx 31. Okt 2007 11:44


DLL Form in TTabSheet integrieren
 
Morgen,
folgendes Problem habe ich gerade:
ICh habe ein TPageControl, und darin habe ich ein neuen Tab erstellt (TTabSheet);

Nun habe ich eine "My Profil" Option (TButton).
Klickt man darauf wird die Form der DLL "Profil.dll" geladen und gezeigt.
So weit so gut, blos anstatt diese DLL Form "frei" zu zeigen, möchte ich diese in den TTabSheet "integrieren".

Jemand eine Idee, oder geht das gar nicht?

mfg NapsterxX

Deep-Sea 31. Okt 2007 11:48

Re: DLL Form in TTabSheet integrieren
 
Guck dir mar die Eigenschaft Parent an ;)
PS: Forms sind nicht dafür gedacht einen Parent zu haben, was ggf. zu Problemen führt...

mkinzler 31. Okt 2007 11:49

Re: DLL Form in TTabSheet integrieren
 
Du musst den Parent der Form/Frame in der Dll auf den TabSheet setzen.

RavenIV 31. Okt 2007 12:04

Re: DLL Form in TTabSheet integrieren
 
Mahlzeit.

Da es sich bei der Form aus der DLL vermutlich um ein TForm handelt, wird dies nicht gehen.
Ein TForm stellt ein Fenster mit allen dazugehörenden Elementen (Rahmen, Titelleiste, Buttons, usw.) dar.
Wie soll dieses Fenster in einen TTabSheet dargestellt werden?

Bau das TForm zu einen TFrame um, dann kannst Du es in einem anderen Fenster oder Control einbinden.
Aber Vorsicht:
Ein TFrame hat z.B. keinen OnCreate oder OnShow oder OnClose.

napsterxx 31. Okt 2007 12:04

Re: DLL Form in TTabSheet integrieren
 
Also ich rufe die DLL Form auf und dann muss ich der DLL noch über eine weitere Form ihren Parrent mitteilen?

Bis jetzt ruf ich die Form so auf:
DLL:
Code:
uses
  SysUtils,
  Classes,
  Windows,
  Forms,
  Controls,
  ExtCtrls,
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

function ShowForm(): Integer; stdcall;
begin
  with TForm2.Create(nil) do
  try
    Result := ShowModal();
  finally
    Free;
  end;
end;

exports
ShowForm;

begin
end.

HauptForm:
Code:
function ShowForm(): Integer; stdcall;
external 'test.dll';


procedure TForm1.Button1Click(Sender: TObject);
begin
ShowForm;
end;

napsterxx 31. Okt 2007 12:19

Re: DLL Form in TTabSheet integrieren
 
kk allen danke^^, aber ich machs nun anders ;)

RavenIV 31. Okt 2007 12:21

Re: DLL Form in TTabSheet integrieren
 
Zitat:

Zitat von napsterxx
kk allen danke^^, aber ich machs nun anders ;)

Und wie machst Du es?

Deine Lösung hilft vielleicht anderen weiter, die so ein ähnliches Problem haben...

napsterxx 31. Okt 2007 12:37

Re: DLL Form in TTabSheet integrieren
 
Also: Ich mache anstatt ein großes fenster mit dem TPageControl ein kleines schmales wie bei ICQ, mit einem TMainMenu
Dort klickt man auf eine Option und es wird ganz normal die Form der DLL aufgerufen


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