Zitat von
MarcRB1975:
...
Was mich persönlich noch interessieren würde ist, wie kann man eigentlich, wenn man eine Komponente entwickelt, auf andere Zugreifen.
Also.. zum Beispiel:
Ich habe 5 Editfelder. In jedem Edit steht als Text etwas drin.
Mit einer erstellten Komponente möchte ich nun eine Listbox erzeugen, in der alle Texte der Edit´s drin stehen. In meiner Komponente, also (
OI) möchte ich dann aus dieser erzeugten Listbox einen Text daraus auswählen können.
Aber irgendwie komm ich da nicht drauf.
Muss ich property als String? Edit? Listbox? festlegen? Irgendwie schaff ichs nicht.
Muss die Listbox (Createt) werden? mhhh...
Hallo Marc,
Du kannst in einer Componente eine andere Komponente als Property definieren.
Delphi-Quellcode:
...
myComp = class(TComponent)
...
FmyListBox : TListBox;
...
published
property myListBox:TListBox read FmyListBox write FmyListBox;
...
end;
...
...
// Zugriff auf Listbox:
if assigned(FmyListBox) then
begin
FmyListBox.Items.Add('Bla');
end;
...
Es erscheint dann im Objektinspektor eine Eigenschaft myListBox. Wenn auf dem Formular nun eine Listbox liegt, kann diese diekt im Objektinspector zugewiesen werden. In FmyListBox steht dann eine Referenz auf die Listbox auf dem Form.
Beim Zugriff sollte man mit assigned prüfen, ob überhaupt eine Listbox zugewiesen ist.
Das wars eigentlich schon.
ps: Ich habe den Quelltext nicht in Delphi getestet, Syntaxfehler also nicht ausgeschlossen