Variablenamen dynamisch setzen?

Impulse

Grünschnabel
Hi Leute.

Ich hab mal im Forum gesucht aber nix gefunden...
Hier die Frage:
Gibt es in Delphi auch die Möglichkeit Variablenamen mehr oder weniger dynamisch zu setzen? Das heisst wenn ich aus ner Liste z.B. Strings einlese wie:
myvar1
myvar2
myvar3
Gib es nen Weg diese dann auch als Variablenname benutzen? Das wiederum heisst, dass ich dann im Code beispielweise schreibe:
myvar1:= 'xyz';
myvar2:= 'abc';
Die "Listen-Variablen" wären dann nicht im Prozedur-Header deklariert, ich würde sie aber trotzdem gern benutzen und weiss aber vorher den Namen nicht, da er erst aus der Liste kommt... :)
------------------------------------------------------------------------
Und noch ne Frage:
Kann ich, wenn ich ne Variable deklariert habe und dann aus nem String den Variablenname auslese (wie z.B. 'myvar1=xyz' <- geparsed auf VarName und Value), diese Variable irgendwie setzen?

In C++ müsste das gehen. (kein Plan aber ich glaub mit irgendwas wie ${VarName} = Value;) <- Hm, das wird wohl nen Smilie werden...

Danke schonmal, Imp
 

derGugi

Erfahrenes Mitglied
1) ich denke nicht, dass das geht. Delphi erwartet strikt die Definition von Variablen. Du kannst also nicht einfach irgendwo während dem Ausführen des Scriptes eine neue Variable anlegen.
Aber nichts ist unmöglich ;) muss halt nur wissen wie.. :p

2)Du kannst ja einfach diesen String aufteilen und dann prüfen if myStringPart1 = 'myvar1' then myvar1:=myStringPart2.
Eine andere Möglichkeit fällt mir ned ein.
 

Sanchez

Grünschnabel
verkettet Listen sind nicht nötig, mit dynamischen Arrays geht das viel einfacher (sind ja eigentlich versteckte Listen)

einfach mit setlength die Größe des Arrays setzen.
 

WieGehts

Erfahrenes Mitglied
Variblen können nicht dynamisch gesetzt werden, aber dein Problem ist trotzdem ganz einfach zu lösen: verwende TStringList oder TList. da kannst du deine "Variablen" eintragen - einzeln oder in Listen und auf den "Inhalt der Variablen" zugreifen (MyTStringList.Names bzw. MyTSringList.Values). Schau einfach mal in die OH von Delphi unter TStringList.

Hoffe die damit helfen zu können