Hallo,
ich möchte ein Bild Bewegen. Ich lade dazu eine .png in ein TImage und mithilfe des Timer (und OnMouseDown usw) soll es dann bewegt werden. Da ich mehrere Bilder laden möchte, soll das alles dynamisch vorgehen. Aber wie kann ich im Timer das Bild auch als "Bild" bewegen, weil ich nicht mehr weiß wie das erstellte bild heißt bzw. ich weiß es aber komme nicht mehr ran?
Am besten sieht man es im code mit dem "???":
Hier ein gekürzter Ausschnitt:
Delphi-Quellcode:
procedure FormShow...
begin
// ...
// mehrmals mit verschiedenen bilder, in einer schleife:
figur := TImage.Create(Self);
figur.Picture.LoadFromFile('figuren/rb.png');
figur.OnMouseDown := @Image1MouseDown; //Timer starten = Bewegung starten
figur.OnMouseUp := @Image1MouseUp; //Timer beenden = Bewegung beenden
figur.OnClick := @Image1click;
figur.parent := Form1;
figur.Name := 'Image987'; //Nur zum Test
figur.Height := laenge-10;
figur.Width := breite-10;
figur.top := 1*2*laenge+4;
figur.left := 1*2*breite+4;
figur.Stretch:=True;
figur.visible := True;
figur.Show;
end;
procedure TForm1.Image1Click(Sender: TObject);
begin
if Sender is TImage then begin
Label1.Caption := TImage(Sender).Name; // Bild Name merken bei Click
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
Bild := TImage;
begin
// Bild wird bewegt,...
{
ABER:
Image1.Left:= ScreenToClient(Mouse.CursorPos).x; geht ja nicht
Wie komme ich an das Bild das bei "Label1.Caption" gemerkt habe?! Bzw. muss ich dort anders vorgehen?
}
Bild = ????
Bild.Left:= ScreenToClient(Mouse.CursorPos).x,
Bild.Top:= ScreenToClient(Mouse.CursorPos).y;
end;
Wer kann mir bitte weiterhelfen?
LG
Monday
Umgebung: Lazarus