![]() |
TTabSheet Klon auf TPageControl
Hi ihr!
ich würde gerne wissen wie ich bei klick auf einen button ein neues Tabsheet auf ein TPageControl platzieren kann das genau die gleichen Objekte drauf hat wie ein anderes. (also ich möchte sozusagen einen klon von einem Tabsheet erstellen, wo aber zb die caption variieren kann. aber es soll immer ein editfeld drauf sein) danke schonmal mika |
Re: TTabSheet Klon auf TPageControl
Mit einem Pagecontrol ist das sehr schwierig. Du müsstest alle Komponenten auslesen, die auf der zu kopierenden Page liegen und diese dann irgendwie verdoppeln. Furchtbar kompliziert...
Wenn du dagegen einen Tabcontrol machst, kannst du einfach mit
Delphi-Quellcode:
ein Tab hinzufügen. Auf allen Tabs wird dann das selbe angezeigt.
tabcontrol1.Tabs.Add(tabname)
|
Re: TTabSheet Klon auf TPageControl
Ok also mit tabcontrol.
Nur wo finde ich da in der Objektleiste ein Objekt auf das dann halt der Tab ist? |
Re: TTabSheet Klon auf TPageControl
hm wadde.
ich habe nunc mal nen tabcontrol benutzt nur will ich ja nich nur mehrere tabs oben in der tableiste haben, er soll mir die objekte (zumbeispiel auf nem panel) pro tab einmal erzeugen, sodass ich für jedes tab halt einen satz von objekten habe, die ich einzelnd ansteuern kann |
Re: TTabSheet Klon auf TPageControl
Wenn du das TabSheet welches du verdoppeln willst vorher von TTabSheet ableitest und die Controls auch in der abgleiteten Version gleich automatisch drauf setzt bräuchtest du einfach nur eine neue Instanz davon erzeugen. Ansonsten geht das mit dem verdoppeln nur wenn du ausschließlich published-Properties gesetzt hast (also alles über den Objectinsprector) weil die anderen Dinge die durch irgendwelche Methoden gesettz wurden nicht zu 100% ausgelesen werden können und somit auch kein clonen möglich ist.
|
Re: TTabSheet Klon auf TPageControl
ne Beispiel Anwendung für die erste Methode haste nich zufällig oder? :p
|
Re: TTabSheet Klon auf TPageControl
na die erste Methode ist einfach eine Komponente von TTabSheet ableiten und im Constructor davon die darauf liegenden Dinge erzeugen. Das hier genauer zu erläutern wäre nicht angebracht denn dazu gibt es entsprechende ausführliche tutorials die sich mit der Ableitung befassen.
Normal würdest du ja ein TabSheet zur Laufzeit so erzeugen:
Delphi-Quellcode:
und anstelle von TTabSheet nimmst du deine eigene Klasse die du von TTabSheet abgeleitet hast.
var LSheet: TTabSheet;
begin LSheet := TTabSheet.Create(nil); LSheet.PageControl := PageControl1; Wenn du das ganze jetzt mit einer abgleiteten Version machst siehts so aus:
Delphi-Quellcode:
type
TOwnTabSheet = class(TTabSheet) private Button1: TButton; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; [...] constructor TOwnTabSheet.Create(AOwner: TComponent); begin inherited Create(AOwner); Caption := 'eigenes TabSheet'; Button1 := TButton.Create(Self); Button1.Parent := Self; end; destructor TOwnTabSheet.Destroy; begin Button1.Free; inherited Destroy; end; [...] var LSheet: TOwnTabSheet; begin LSheet := TOwnTabSheet.Create(nil); LSheet.PageControl := PageControl1; |
Re: TTabSheet Klon auf TPageControl
ZUU GEIL!!!
danke! läuft so wie ichs mir gewünscht hab! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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 by Thomas Breitkreuz