Es wurden mehrere Variablen vom Typ Integer und String irgendwo deklariert.
Leider brauche ich diese an mehreren Stellen und es geht einfach nicht anders als mit einem case-of darauf (an mehreren Stellen) zuzugreifen, Werte zu lesen und zu schreiben.
Demnach gibt es mehrere case-of. Bei Änderungen im Code müssen die immer alle angepasst werden. Das soll weg.
Damit das alles weniger und besser lesbarer Code wird, würde ich gerne diese Integer- und String-Variablen in ein Array packen.
Im Kopf bin ich das alles schon durchgegangen und der Code wird danach insgesamt weniger und besser. Nur die geht man sowas an?
Ich weiß nicht, ob mein Text verständlich ist.
Aber grundsätzlich geht es darum: wie packt man Variablen in ein Array
Hier ein Beispiel
Delphi-Quellcode:
case Column.Index of
1:
VST.Header.Columns[Column.Index].Width := Variable1;
2:
VST.Header.Columns[Column.Index].Width := Variable2;
3:
VST.Header.Columns[Column.Index].Width := Variable3;
...
Delphi-Quellcode:
case Column.Index of
1:
VST.Header.Columns[Column.Index].Position:= Variable1_1;
2:
VST.Header.Columns[Column.Index].Position:= Variable2_2;
3:
VST.Header.Columns[Column.Index].Position:= Variable3_3;
...
Daraus soll am Ende werden
VST.Header.Columns[i].Position:= [variable-i-aus-array-X];
Einfach ein Array mit diesen Werten füllen funktioniert nicht. Die eigentlichen Variablen haben aussagekräftige Namen und werden woanderswo auch einzeln mal verwendet).
Kann man vielleicht in einer Datenstruktur ein Property (array) deklarieren, welches dann, jenachdem auf welchen Index man zugreift, den Wert dieser Variable zurückgibt? Das impliziert, dass man wieder eion case-of braucht. Aber nur eines und nicht 4.