![]() |
Delphi-Version: 2007
TWincontrol Komponenten Createn
Hallo
Ich habe ein kleines Problem, ich möchte Komponenten (ComboBox,Edit)über TWinControl createn und diese an ein Treeview hängen. Aber leider bekomme ich beim Createn eine Exception.
Delphi-Quellcode:
ich habe es mal nur mit TControl versucht was auch kein erfolg brachte.
if configTyp = Combo then
begin KompTyp := ComboBox; end; //Erstellen der Komponente TWinControl(KompTyp) := TWinControl(KompTyp).Create(nil); TWinControl(KompTyp).Parent := LV; li.Data := TWinControl(KompTyp); //Größenanpassung KomponteRect := li.DisplayRect(drBounds); KomponteRect.Left := KomponteRect.Left + lv.Columns[-1 + KomponenteColIndex].Width; KomponteRect.Right := KomponteRect.Left + lv.Columns[KomponenteColIndex].Width; TWinControl(KompTyp).BoundsRect := KomponteRect; end;
Delphi-Quellcode:
KompTyp := TControl(KompTyp).Create(nil);
|
AW: TWincontrol Komponenten Createn
Zitat:
Delphi-Quellcode:
Du brauchst einen Typzeiger ala
var Komp: TWinControl;
Komp.Create(nil);
Delphi-Quellcode:
.
class of TWinControl
Wie/Wo ist KompTyp deklariert? [add] Der vordefinierte Typ nennt sich ![]() Und diesem Zeiger mußt du direkt TEdit und Co. zuweisen ... also die Typen und keine Instanzen.
Delphi-Quellcode:
var
KompTyp: TWinControlClass; Komp: TWinControl; KompTyp := TEdit; //Erstellen der Komponente Komp := KompTyp.Create(LV); // oder gibst du diese Komponenten IMMER selber wieder frei? Komp.Parent := LV; li.Data := Komp; |
AW: TWincontrol Komponenten Createn
Also in etwa so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var TTyp: TWinControlClass; obj: TWinControl; begin TTyp := TComboBox; obj := TTyp.Create(self); obj.Left := 10; obj.Top := 10; obj.Parent := self; end; |
AW: TWincontrol Komponenten Createn
Super das Klappt...
und wenn ich dem Jetzt werte zuweisen will, mus sich dann das noch irgendwie Casten? Da ich ja nicht direkt auf das Property text oder items zugreifen kann |
AW: TWincontrol Komponenten Createn
Da wirst Du wohl nicht umhin kommen, ansonsten kannst Du ja nur auf die Properties und Methoden von TWinControl zugreifen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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