Entwickler-Ecke
Sonstiges (Delphi) - Auf dynamisch erstellte Labels zugreifen
Hoda - Di 08.10.02 11:10
Titel: Auf dynamisch erstellte Labels zugreifen
Hallo.
Da ich meine grenzen austesten will, versuche ich die ganze Zeit mich verrückt zu machen.
An folgendem Sachverhalt bin ich am Schrauben: Ich erzeuge unter "Button1" 5 Labels.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| ... Tform1.Button1Click... var i : integer; begin for i := 1 to 5 do begin MyLabel := TLabel.Creat(self); MYlabel.Parent := self; Mylabel.Name := 'MYLabel' + intToStr(i); Mylabel.Caption := 'Meine Label'; end; end; |
soweit so gut. Es funktioniert :P
Hautproblem oder was ich machen möchte ist, die Labels die ich erstellt habe, anzusprechen. So dass ich den 3.Label oder 2.Label verändern kann. Beispiel den Caption. Nur ich bekommes nicht hin. Es wird immer der zur letzt angelegte Label verändert.
Meine Frage an euch ist:
"WIE ode WAS muss ich machen, damit ich die Labels ansprechen kann ?!":? :roll:
Gruß + Danke
Hoda
(08.10.02 13:14 Tino) Titel geändert & Code-Tags hinzugefügt.
LCS - Di 08.10.02 11:42
Hi
Wenn du tatsächlich exakt diesen Code verwendest, hast du zuerst mal das Problem, dass die 5 Labels exakt übereinander liegen. Damit siehst du praktisch immer nur den obersten.
Um ein einzelnes Label anzusprechen könntest du die Methode FindComponent verwenden:
Quelltext
1: 2:
| with FindComponent('MYLabel1') as TLabel do Caption := 'test'; |
Übrigens: An der Aussagekraft deiner Titel musst du noch stark arbeiten :shock:
Gruss Lothar
Rooof - Mi 09.10.02 07:07
Hi
Du könntest dieses Problem allenfalls auch mit einer Liste lösen.
Dieses würde dann ungefähr so aussehen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| ... Tform1.Button1Click... var i : integer; PObjectList: TObjectList; begin PObjectList := TObjectList.create; for i := 1 to 5 do begin MyLabel := TLabel.Creat(self); MYlabel.Parent := self; Mylabel.Name := 'MYLabel' + intToStr(i); Mylabel.Caption := 'Meine Label'; PObjectList.add(Mylabel); end; end; |
Um dann wieder auf das Label zugreiffen zu können, kannst du direkt mit TLabel(PObjectList.Items[index des labels]).Caption := 'Das hier ist neuer Text'; darauf zugreiffen.
Das TLabel vorweg dient zum Casten des Labels, da die Liste nicht weiss, welcher ObjectTyp sich an der Adresse befindet, wo der Pointer drauf zeigt. Einfach so nachbasteln und es sollte funktionieren. Ansonsten Online-Hilfe zur Hand nehmen
Mfg
Rooof
Hoda - Mi 09.10.02 07:35
Titel: Auf dynamisch erstellte Labels zugreifen
Danke Rooof.
Diese Variante werde ich auch testen.
Wie du natürlich weiß, je mehr man über unterschiedlicher Formen des Programmierens kennt, desto mehr ist man kreativ oder? :lol:
Ich bin jetzt dabei die Dynamischen Labels per Drag&Drop zu bewegen.
Mal sehen wie weit ich vorankomme. :roll:
Gruß
Hoda
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!