![]() |
Wie baue ich eine Klasse die zwei Listviews enthält?
Hallo,
ich brauche eine Klasse die zwei Listviews enthält. Wie kann ich verhindern, das man die beiden Listviews im Designer auswählen kann. vlt ist mein Ansatz ja auch ganz falsch. Ich habe bis jetzt folgendes:
Delphi-Quellcode:
type
TTestListView = class(TWinControl) private lv1: TListView; lv2: TListView; { Private-Deklarationen } protected { Protected-Deklarationen } procedure CreateWnd; override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; { Public-Deklarationen } published { Published-Deklarationen } end; procedure Register; implementation procedure Register; begin RegisterComponents('Beispiele', [TTestListView]); end; constructor TTestListView.Create(AOwner: TComponent); begin inherited; lv1 := TListView.Create(AOwner); lv1.Tag := 0; lv2 := TListView.Create(AOwner); lv2.Tag := 0; end; procedure TTestListView.CreateWnd; begin inherited; IF lv1.Tag = 0 THEN BEGIN lv1.Parent := Self; END; IF lv2.Tag = 0 THEN BEGIN lv2.Parent := Self; END; end; destructor TKDRListViewCards.Destroy; begin IF lv1 <> nil THEN lv1.Free; IF lv2 <> nil THEN lv2.Free; inherited; end; |
Re: Wie baue ich eine Klasse die zwei Listviews enthält?
Im Kontruktor:
Zitat:
Delphi-Quellcode:
und sychron für lv2.
lv1 := TListView.Create(self);
den Destruktor kannst du weglassen. Da das Bereinigen ja vom Owner erledigt wird. |
Re: Wie baue ich eine Klasse die zwei Listviews enthält?
Bin mir net ganz sicher, aber so wie du das momentan hast müste es stimmen.
Soviel ich weis must du ne Variable unter Public bzw. Published eintragen das man sie von ausen überhaupt sieht. Du hast sie Als Privat deklariert dann sieht man die eh net. Variablen die in Published eingetragen werden kann glaubig der Objectinspector nachher anzeigen. |
Re: Wie baue ich eine Klasse die zwei Listviews enthält?
JO es war der Create(Self) :-)
Danke, aber das mit dem Destroy hab ich nicht verstanden. Wieso brauche ich den nicht? |
Re: Wie baue ich eine Klasse die zwei Listviews enthält?
Zitat:
So passiert es auch mit deinen Listviews: Sie werden in die Liste der Komponenten eingetragen, die deine Klasse besizt (und unter ![]() greetz Mike |
Re: Wie baue ich eine Klasse die zwei Listviews enthält?
Einfach ausgedrückt: Wenn du die ListViews auf's Formular packst, ist der Owner das Formular. Wenn das Formular zerstört wird, wird auch somit alles, was auf ihm ist, wieder freigegeben. Somit auch deine ListViews.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 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