![]() |
Variable Variablen
Hallo,
gibt es in Delphi die Möglichkeit, variable Variablen zu nutzen, also eine Variable anhand eines Strings zu benennen? Ich möchte in einer Schleife mehreren Labels (label1..labelx) eine caption zuweisen und dazu nicht jedes Label einzeln angeben. Ich hatte mir gedacht, dass es vllt. geht, eine for-Schleife mit i:=1 to x zu machen und dann mit sowas wie Labeli das jeweilige Label ansprechen. Gibt es diese Möglichkeit unter Delphi? Wenn nicht, habt ihr Vorschläge wie ich das sonst lösen könnte? Gruß Nottrott |
Re: Variable Variablen
Du kannst die Möglichkeit nutzen, dass jede Komponente der VCL ihren Namen kennt. "Normale" Variablen können das allerdings nicht.
Also für Label, etc. schau mal nach "findcomponent" |
Re: Variable Variablen
Normalerweise verwendet man dafür Arrays, da du aber wahrscheinlich die Labels per Formulareditor erstellt hast, wirst du wohl findcomponent verwenden müssen.
|
Re: Variable Variablen
WOW
3 Minuten :shock: Danke, werd ich gleich mal ausprobieren. Nottrott |
Re: Variable Variablen
Zitat:
Hier noch ein Beispiel:
Delphi-Quellcode:
Je nach Design, solltest du mit "if findcomponent() is TLabel" abfragen, ob du auch wirklich ein Label erwischt hast.
for i:=1 to 10 do TLabel(findcomponent('Label'+inttostr(i))).caption:='Hallo';
|
Re: Variable Variablen
Da ist im übrigen zwar die leichteste Methode, aber auch etwas... naja, unsauber.
Die saubere wäre, die Labels dynamisch in einem Array zu erstellen und das dann mit ner Schleife durchzugehen. (Alternativ könnte man auch einmal alle Labels per findcompoent finden, in das Array packen und dann durch das Array durchgehen, dann muss man die Labels nicht dynamisch erzeugen) |
Re: Variable Variablen
Zitat:
|
Re: Variable Variablen
Zitat:
|
Re: Variable Variablen
Hallo
In einer TSTringList können "NameValuePaare getrennt mit=" abgelegt werden. Mit Values['Nachname'] bekommst du dann z.b. "Müller" wenn die Liste wie folgt befüllt war Nachname=Müller Vorname=Franz |
Re: Variable Variablen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:56 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