Thema: Label[i]

Einzelnen Beitrag anzeigen

Zeref Darkmage
(Gast)

n/a Beiträge
 
#1

Label[i]

  Alt 3. Apr 2018, 10:06
Delphi-Version: 2007
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
  Mit Zitat antworten Zitat