Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Orkenzo 27 Listopadu 2011, 20:57:38
-
Potřeboval bych přiřadit do proměnné jejichž název mám uložený v proměné třeba String1. Samozdřejmě proměnná je předem deklarovaná.
Př:
String:='Promenna';
if jinapromenna <= 10 then String1:=String+'a'
else String1:=String+'b';
Jak bych teď přiřadil něco do názvu proměnné v String1? Samozdřejmě tohle je banální situace...ale může se stát že je to docela složité. například v Object packalu mám několik editů a potřeboval bych jejich obsah dostat do arraye.
a[1]:=Edit1.Text;
a[2]:=Edit2.Text;
a[3]:=Edit3.Text;
a[4]:=Edit4.Text;
...atd.
Napadá vás jak tohle udělat bez zbytečného a dlouhého vypisování? Díky
-
To nelze. Můžeš mít pole editů, k těm se v cyklu dostaneš.
-
Mimochodem, v Pythonu to jde. Nemluvě o tom, že při použití gtk.Builder se widgety označují jménem jako řetězcem.
locals()["aoeu"]="htnaoeu"
Ale je to trochu nehezké.
-
Mimochodem, v Pythonu to jde. Nemluvě o tom, že při použití gtk.Builder se widgety označují jménem jako řetězcem.
locals()["aoeu"]="htnaoeu"
Ale je to trochu nehezké.
No vidíš, já bych to s ohledem na mé znalosti řešil v Pythonu tímto:
exec('%s = "hodnota"' %String1)
Ovšem v Pascalu to moc nepomůže..
-
V Pascalu to, ale IMHO nejde.
-
Jak bych teď přiřadil něco do názvu proměnné v String1? Samozdřejmě tohle je banální situace...ale může se stát že je to docela složité. například v Object packalu mám několik editů a potřeboval bych jejich obsah dostat do arraye.
a[1]:=Edit1.Text;
a[2]:=Edit2.Text;
a[3]:=Edit3.Text;
a[4]:=Edit4.Text;
...atd.
Napadá vás jak tohle udělat bez zbytečného a dlouhého vypisování? Díky
Ja teda Obj.Pascalu uz nijak zvlast nerozumim, ale neni mozne misto Edit1, Edit2... pouzit uz rovnou prvky pole (Edit[1]...)? Pak by to vypadalo nejak takto:
for i := 1 to Length(Edit) do
begin
a[i] := Edit[i].Text;
end;