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/)
-   -   Frame dynamisch erzeugen (https://www.delphipraxis.net/162904-frame-dynamisch-erzeugen.html)

Maya 9. Sep 2011 08:45

Frame dynamisch erzeugen
 
Hallo ihr Lieben,

ich habe folgendes Hindernis zu überwinden:
Ich hab in meiner Oberfläche eine Toolbar mit selbstverständlich mehren Toolbuttons. Je nach dem welcher Button geklickt wird, soll sich das entsprechende Frame unter der Toolbar aufbauen.
Klappt soweit alles wunderprächtig. Nun wollte ich meinen Code noch einmal ein klein wenig umgestalten und mir wurde der Hinweis gegeben, dass ich den Code auch so bearbeiten sollte, damit bei eventuellen Änderungen, ich weniger Mühe habe.
Also klein-Maya packt alles in eine eigene Procedure.

Delphi-Quellcode:
procedure TAuswahl.Anzeigen1Click(Sender: TObject);
begin
  FrameErzeugen(Tirgendein_Frame);
end;

[...]

procedure TAuswahl.FrameErzeugen(aTyp: TFrame);
begin
  if (DummyFrame = aTyp) then exit
  else
    begin
      DummyFrame.Free;
      DummyFrame:=aTyp.Create(Self);
      DummyFrame.Parent:=pnl2;
      DummyFrame.Align:=alClient;
      DummyFrame.Show;
    end;
end;
Die Experten unter uns sehe sicherlich schon das Problem: da knallt es. Es ist mir nicht möglich, Tirgendein_Frame als Parameter zu übergeben.
Irgendjemand ein Tipp?

Danke!

DeddyH 9. Sep 2011 08:52

AW: Frame dynamisch erzeugen
 
Versuch mal
Delphi-Quellcode:
type
  TFrameClass = class of TFrame;

procedure TAuswahl.FrameErzeugen(aTyp: TFrameClass);
...
[edit] Dann sollte die "is"-Abfrage auch funktionieren. [/edit]

Maya 9. Sep 2011 08:54

AW: Frame dynamisch erzeugen
 
Die Firma dankt! :P


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