![]() |
Bild mit Maus verschieben!
Wie kann man mit Delphi ein Spiel programmieren wo man auf ein Bild klicken kann und das in einem bestimmten Feld verschieben kann?
Also wenn man z.B. die Maus nach rechts macht, dass dann zeitgleich auch das Bild nach rechts geht. ![]() So ähnlich wie bei dem Programm aber erstmal nur für ein einziges Bild. Ich muss ja irgendwie ein Feld dafür erstellen was die Bewegungen der Maus mit bekommt und demnach reagieren kann. Oder würdet ihr mir eine andere Programmiersprache als Delphi für solche Spielereien empfehlen? |
AW: Bild mit Maus verschieben!
Schau dir mal die Ereignisse OnMouseDown und OnMouseUp einer TImage-Komponente an, sowie Mouse.Pos (heißt doch so, oder?) bzw. alternativ die Funktion GetCursorPos.
|
AW: Bild mit Maus verschieben!
Als kleiner Denkanstoß:
![]() |
AW: Bild mit Maus verschieben!
Klatsch ne Shape (Shape1) auf die Form und füge diesen Code ein...
Delphi-Quellcode:
Ersetze anschließend Shape mit Image...
TForm1 = class(TForm)
Shape1: TShape; procedure Shape1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Shape1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Shape1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); private { Private-Deklarationen } public sh1MouseDown: Boolean; sh1MousePos: TPoint; end; {...} procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin sh1MouseDown := True; sh1MousePos := Point( X, Y ); end; procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if sh1MouseDown then begin Shape1.Left := Shape1.Left + X - sh1MousePos.X; Shape1.Top := Shape1.Top + Y - sh1MousePos.Y; end; end; procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin sh1MouseDown := False; end; MfG |
AW: Bild mit Maus verschieben!
kann man das hier:
Delphi-Quellcode:
nicht raus lassen?
Shift: TShiftState;
hab es versucht aber er sagt dann immer dass es nicht gehn würde weil nicht genügend parameter drin sind aber die shift taste brauch ich ja nicht wirklich warum muss ich sie dann umbedingt deklarieren? |
AW: Bild mit Maus verschieben!
Weil das Event so deklariert ist. Diese Methoden darfst du nicht per Hand anlegen (falls du es tust, dann müsstest du im OnCreate diese Einzeln den OnX Events des Shapes zuweisen).
Gugg einfach mal beim Objektinspektor! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz