![]() |
Delphi-Version: 5
Bewegung eines Bildes mit den Pfeiltasten starten
Hallo,
Ich arbeite gerade an einem Schulprojekt und habe folgendes Problem: Ich möchte die Bewegung eines Bildes mit der Pfeiltaste starten. Das Bild soll sich danach ohne Tastendruck in die Richtung weiterbewegen, bis eine andere Pfeiltaste gedrückt wird. Es wäre schön wenn mir jemand weiterhelfen könnte. Gruß Jaja |
AW: Bewegung eines Bildes mit den Pfeiltasten starten
Man kann sich eine Variable nehmen, in der man die Richtung speichert, wenn der Nutzer eine Taste drückt. Entsprechende Events empfängt und bietet die TForm, solange keine Elemente den Fokus haben (Buttons, Eingabefelder etc.; Bilder und Labels können keinen Fokus haben).
Dann kann man einen Timer nehmen, der guckt, worauf die Variable steht, und dann das Bild verschiebt. |
AW: Bewegung eines Bildes mit den Pfeiltasten starten
Zitat:
|
AW: Bewegung eines Bildes mit den Pfeiltasten starten
Variablen kann man an verschiedenen Stellen deklarieren, die dann einen gewissen Gültigkeitsbereich haben. Die einfachsten sind lokale Variablen, die nur für eine Methode sichtbar sind (also für dich ungeeignet, da du dieselbe Variable in der Setz-Methode als auch in der Timer-Methode benutzen möchtest) und in einer Variablensektin direkt unter dem Methodenkopf im Implementation deklariert werden. Dann gibt es in Klassen deklarierte Variablen, die Feld genannt werden. Steuerelemente, die du auf die Form packst, werden so deklariert. Felder haben eine Sichtbarkeit (es gibt eine Standardsichtbarkeit). Dann gibt es noch zwei Sorten globale Variablen: Eine Variablensektion im Interfaceabschnitt hat sozusagen eine public-Sichtbarkeit, während eine Deklaration in einer Variablensektion im Implementationsabschnitt eine private-Sichtbarkeit (also nur in der Unit) hat. Delphi deklariert deine Form als erstere, letzteres wird extrem selten genutzt. Ich würde dir als Anfänger empfehlen, deine Variable einfach unter die gerade erwähnte Form-Variable zu schreiben, also als globale public-Variable.
|
AW: Bewegung eines Bildes mit den Pfeiltasten starten
Delphi-Quellcode:
Den Rest musst du alleine machen.
type
TRichtung = 1..4; var Richtung: TRichtung; procedure TForm1.FormCreate(Sender: TObject); begin KeyPreview := True; //Formular bekommt alle Tastaturanschläge mit Timer1.Interval := 100; // 1/10 Sekunde Timer1.Enabled := True; end; procedure TForm1.Timer1Timer(Sender: TObject); const Interval = 10; begin case Richtung of 1: Image1.Left := Image1.Left + Interval; 2: Image1.Top := Image1.Top + Interval; 3: Image1.Left := Image1.Left - Interval; 4: Image1.Top := Image1.Top - Interval; end; //Damit es nicht aus dem Formular verschwindet if Image1.Left > ClientWidth then Image1.Left := 0; if Image1.Left < 0 then Image1.Left := ClientWidth; if Image1.Top > ClientHeight then Image1.Top := 0; if Image1.Top < 0 then Image1.Top := ClientHeight; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_RIGHT: Richtung := 1; VK_DOWN : Richtung := 2; VK_LEFT : Richtung := 3; VK_UP : Richtung := 4; end; end; |
AW: Bewegung eines Bildes mit den Pfeiltasten starten
Moin...8-)
Zitat:
|
AW: Bewegung eines Bildes mit den Pfeiltasten starten
Danke für die Hilfe. Funktioniert jetzt.
Jaja |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:33 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 by Thomas Breitkreuz