Entwickler-Ecke
Multimedia / Grafik - Position eines Images auslesen..
Adam Weishaupt - Sa 20.03.04 18:52
Titel: Position eines Images auslesen..
Guten Tag,
sagen wir mal ImageX (X soll irgendeine Zahl sein) ist auf den Koordinaten Left=600 Top=150.
Jetzt will ich, dass ImageY (Y soll irgendeine Zahl sein) die Positionen mit ImageX wechselt.
z.B.
Delphi-Quelltext
1: 2: 3: 4: 5:
| ImageY.Left := 500; ImageY.Top := 200;
ImageX.Left := 600: ImageX.Top := 150; |
Wenn man auf ImageY klickt, sollen sich die Positionen von den beiden Images umtauschen.
Wie finde ich heraus was
X bei Image
X ist bzw. welches Image auf der Position ist?
Moderiert von
Peter Lustig: Delphi-Tags hinzugefügt
patrick - Sa 20.03.04 19:06
du warst schon 3 zeilen an der lösung dran: :D
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Image1Click(Sender: TObject); var oldx,oldy:integer; begin oldx:=image2.Left; oldy:=image2.Top; image2.Left:=image1.Left; image2.Top:=image1.Top;
image1.Left:=oldx; image1.Top:=oldy; end; |
für image2 sieht das genauso aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Image2Click(Sender: TObject); var oldx,oldy:integer; begin oldx:=image2.Left; oldy:=image2.Top; image2.Left:=image1.Left; image2.Top:=image1.Top;
image1.Left:=oldx; image1.Top:=oldy; end; |
Adam Weishaupt - Sa 20.03.04 19:22
danke fuer die antwort, aber bei mir ist es so:
ich weiss ja nicht, ob es image2 oder image3 oder image sonstwas ist..
ich will die position z.b. top=500 , left= 150 auslesen, um herauszufinden welches image dort ist..
soll heissen, ich weiss nicht, welches image von z.b. 50 an der position ist und will es herausfinden ;-)
danke nochmal
derDoc - Sa 20.03.04 19:53
Eine Lösung wäre eine
Variable Image vom Typ
TImage zu definieren und in einer for-Schleife für
i von 1 bis zur Anzahl der Images folgendes machen
Delphi-Quelltext
1: 2: 3: 4: 5:
| Image := TImage(FindComponent('Image'+IntToStr(i))); if (Image.Left = 150) and (Image.Top = 500) then begin end; |
Adam Weishaupt - Sa 20.03.04 20:05
es funktioniert, vielen dank an euch beiden :-)
Adam Weishaupt - Sa 20.03.04 20:23
hmm... es funktioniert doch nicht so, wie ich es gedacht habe..
hier der quelltext, den ich geschrieben habe:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| var a: Boolean; old: TImage;
[...]
procedure TForm1.Image9Click(Sender: TObject); var i, oldx, oldy: Integer; begin oldx:=image9.left; oldy:=image9.top; if a=false then begin image9.Left:=616; image9.top:=160; a:=true; end else if a=true then begin for i:=1 to 45 do begin old := TImage(FindComponent('Image'+IntToStr(i))); if (old.Left = 616) and (old.Top = 160) then begin old.top:=oldx; old.left:=oldy; image9.Left:=616; image9.top:=160; end; end; end; end; |
das problem ist, dass das alte Image (variable: old) ganz ploetzlich nach ganz unten der form.clientheight verschwindet, statt zur alten position von image9.. oh man ein problem nach dem anderen ^^
noch was: die variable: a testet, ob schon ein image auf den koordinaten 616,160 schon ein image ist.. bei true ist eins da, bei false nicht ;-)
Adam Weishaupt - Sa 20.03.04 20:34
LOOOOOOOOL
ich habe es allein herausgefunden ;-)
ich habe oldx und oldy verwechselt.. nochmals danke an patrick und derDoc :-D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!