AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Bewegung eines Bildes mit den Pfeiltasten starten
Thema durchsuchen
Ansicht
Themen-Optionen

Bewegung eines Bildes mit den Pfeiltasten starten

Ein Thema von Jaja · begonnen am 6. Mär 2019 · letzter Beitrag vom 7. Mär 2019
Antwort Antwort
Jaja

Registriert seit: 6. Mär 2019
3 Beiträge
 
#1

Bewegung eines Bildes mit den Pfeiltasten starten

  Alt 6. Mär 2019, 17:43
Delphi-Version: 5
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
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.049 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Bewegung eines Bildes mit den Pfeiltasten starten

  Alt 6. Mär 2019, 17:57
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.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Jaja

Registriert seit: 6. Mär 2019
3 Beiträge
 
#3

AW: Bewegung eines Bildes mit den Pfeiltasten starten

  Alt 6. Mär 2019, 18:14
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.
Danke für die schnelle Antwort. Ich weiß aber leider nicht wie ich die Variable in der Timer Prozedur abfrage.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.049 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Bewegung eines Bildes mit den Pfeiltasten starten

  Alt 6. Mär 2019, 19:55
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.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
155 Beiträge
 
#5

AW: Bewegung eines Bildes mit den Pfeiltasten starten

  Alt 6. Mär 2019, 22:30
Delphi-Quellcode:
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;
Den Rest musst du alleine machen.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#6

AW: Bewegung eines Bildes mit den Pfeiltasten starten

  Alt 7. Mär 2019, 06:02
Moin...
Zitat:
Ich arbeite gerade an einem Schulprojekt
Nachfrage: ...wirklich mit D5? Wenn ja, dann kannst du dem Lehrer Mal von der Community Edition erzählen. Aktuell und kostenlos.
  Mit Zitat antworten Zitat
Jaja

Registriert seit: 6. Mär 2019
3 Beiträge
 
#7

AW: Bewegung eines Bildes mit den Pfeiltasten starten

  Alt 7. Mär 2019, 23:01
Danke für die Hilfe. Funktioniert jetzt.

Jaja
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz