Heyho, ich habe in einem Programm sagen wir mal 4 Labels als Positionsmarker gesetzt und möchte deren Eigenschaften top,left mit einem Timer auf Shapes übertragen, dass die Shapes wissen wo sie
hin müssen.
da dachte ich im groben an so was
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
i : integer;
begin
inc(i);
ShapeRot.top:=Label[i].top;
ShapeRot.left:=Label[i].left;
end;
So, dass das nicht klappen kann ist mit bewusst. Ich hatte nach StringToComponent gesucht, allerdings nichts passendes gefunden.
Eine lösung für mich war dann, die Label Eigenschaften zu Beginn in 2 Arrays einzulesen. Ein Array für top und ein Array für left.
Delphi-Quellcode:
const maxarr = 4;
...
topwerte : array[1..maxarr] of integer;
leftwerte : array[1..maxarr] of integer;
...
//um dann im form create die werte einzulesen...
topwerte[1]:=Label1.top;
leftwerte[1]:=Label1.left;
.
.
.
topwerte[4]:=Label4.top;
leftwerte[4]:=Label4.left;
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
i : integer;
begin
inc(i);
ShapeRot.top:=topwerte[i];
ShapeRot.left:=leftwerte[i];
end;
Soweit eine Lösung ich habe nur für mich das "Problem" , dass ich bei 40 Labels allein 80 Zeilen Code zum einlesen habe.
Hätte jemand die Lösung wie ich das mit dem Arrays umgehen kann?
LG Zeref