Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TFrame vervielfältigen (https://www.delphipraxis.net/18087-tframe-vervielfaeltigen.html)

Matze 14. Mär 2004 11:57


TFrame vervielfältigen
 
Hallo zusammen!

Ich habe ein PageControl mit mehreren TabSheets, die zur Laufzeit erzeugt werden.

Nur möchte ich auf diese TabSheets jeweils ein Frame geben, das ich zur Designzeit erstellt habe.

Nun weiß ich nicht, wie ich die Frames auf die TabSheets bekomme.


Ein Formular kann man ja so vervielfältigen:

Delphi-Quellcode:
var Form1: TForm1;

...

Form1 := TForm1.Create(self);
Form1.Show;
Beim Frame habe ich da so meine Probleme:

Ausschnitt aus der Frame-Unit:

Delphi-Quellcode:
type
  TFrameSet1 = class(TFrame)
So habe ich versucht, das Frame auf die TabSheets zu bekommen:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var Seite: TTabsheet;
begin
  Seite := TTabSheet.Create(Self);
  with Seite do
  begin
    PageControl := PageControl1;
    Caption := 'Nr. ' + IntToStr(PageControl1.PageCount);
  end;
  FrameSet1 := TFrameSet1.Create(self);
  FrameSet1.Parent := Seite;
end;
Dann kommt aber folgende Fehlermeldung:

Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EComponentError aufgetreten. Meldung: 'Komponente mit der Bezeichnung FrameSet1 existiert bereits'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

Die Muhkuh 14. Mär 2004 12:30

Re: TFrame vervielfältigen
 
lass mal das Type oben weg und schreib:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var Seite: TTabsheet;
  FrameSet1 : TFrame;
begin
  Seite := TTabSheet.Create(Self);
  with Seite do
  begin
    PageControl := PageControl1;
    Caption := 'Nr. ' + IntToStr(PageControl1.PageCount);
  end;
  FrameSet1 := TFrameSet1.Create(self);
  FrameSet1.Parent := Seite;
end;

Die Muhkuh 14. Mär 2004 12:36

Re: TFrame vervielfältigen
 
oder schreib statt

Delphi-Quellcode:
FrameSet1.Create = ...(Self)
mal

Delphi-Quellcode:
FrameSet1.Create = ...(Seite);

Matze 14. Mär 2004 12:36

Re: TFrame vervielfältigen
 
Danke, aber das Type steht in der Frame-Unit und das kann man so einfach nicht löschen. :?

Matze 14. Mär 2004 12:38

Re: TFrame vervielfältigen
 
Hammers, es geht, vielen Dank! :thumb:

Da wär ich nicht drauf gekommen. :angle2:
Naja, man lern nie aus. ;)

Die Muhkuh 14. Mär 2004 12:39

Re: TFrame vervielfältigen
 
Ich hab auch bloß geraten :)


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