AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Richtungsänderung für kleine Grafik

Ein Thema von Mysterio08 · begonnen am 16. Okt 2009 · letzter Beitrag vom 17. Okt 2009
Antwort Antwort
Mysterio08

Registriert seit: 11. Jan 2009
142 Beiträge
 
#1

Richtungsänderung für kleine Grafik

  Alt 16. Okt 2009, 17:16
Guten Tag,
ich möchte ein kleines "Spiel" (wenn man es denn schon so nennen darf) programmieren. Ich habe mir auf einem TImage Hindernisse einfärben lassen und erstelle mit einem Timer jede zwanzigstel Sekunde 2 gleichgroße Kreise - einen zum anzeigen für den Benutzer und einen um den anderen wieder "unsichtbar" zu machen. Jetzt ist mein Problem, dass ich die Richtugsänderung nicht programmiert bekomme. Ich habe eine RadioGroup mit "nach oben", "nach rechts" etc. und werte nun das OnKeyDown-Ereignis der TForm so aus.
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = Ord('E') then RadioGroup1.ItemIndex := 0;
  if Key = Ord('X') then RadioGroup1.ItemIndex := 0;
  if Key = Ord('A') then RadioGroup1.ItemIndex := 0;
  if Key = Ord('D') then RadioGroup1.ItemIndex := 0
end;
Jetzt gibt es allerdings nie eine Änderung, es muss irgendwo eine Störung geben!
Ich habe in den Timer auch schon folgende Zeile erfolglos geschrieben:
Form1.SetFocus Ich bin gerade echt ratlos!

mfg.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

Re: Richtungsänderung für kleine Grafik

  Alt 16. Okt 2009, 17:38
Hallo...

du setzt ja auch mit jedem Key die Radiogroup auf Index 0.

versuch mal
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = Ord('E') then RadioGroup1.ItemIndex := 0;
  if Key = Ord('X') then RadioGroup1.ItemIndex := 1;
  if Key = Ord('A') then RadioGroup1.ItemIndex := 2;
  if Key = Ord('D') then RadioGroup1.ItemIndex := 3;
end;
  Mit Zitat antworten Zitat
Mysterio08

Registriert seit: 11. Jan 2009
142 Beiträge
 
#3

Re: Richtungsänderung für kleine Grafik

  Alt 16. Okt 2009, 17:42
Sorry, Copy und Paste und dann vergessen, es entsprechend umzuändern... Im Quelltext ist es anders, es klappt aber trotzdem nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Richtungsänderung für kleine Grafik

  Alt 16. Okt 2009, 17:46
Hast du mal versucht die Eigenschaft Delphi-Referenz durchsuchenKeyPreview des Formulars auf true zu setzen?
  Mit Zitat antworten Zitat
Mysterio08

Registriert seit: 11. Jan 2009
142 Beiträge
 
#5

Re: Richtungsänderung für kleine Grafik

  Alt 16. Okt 2009, 18:45
Zitat von Matze:
Hast du mal versucht die Eigenschaft Delphi-Referenz durchsuchenKeyPreview des Formulars auf true zu setzen?
Ja, eben gerade und es funktioniert, vielen Dank dafür!
Jetzt ist noch ein kleines Problem hinzugekommen, ich will die Steuerung ändern, und zwar möchte ich die Num-Taste 2, 4, 6 und 8 verwenden. Ich weiß, dass die 8 den ASCII-Wert #56 hat aber es funktioniert nur mit der 8, mit der ich auch Klammern schreiben kann. Welchen Wert muss ich nehmen?
mfg.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Richtungsänderung für kleine Grafik

  Alt 16. Okt 2009, 19:00
Hallo,

du kannst statt dem OnKeyDown-Ereignis das OnKeyPress-Ereignis nutzen. Dann stehen dir die virtuellen Tastencodesvirtuellen Tastencodes zur Verfügung:

Delphi-Quellcode:
// Numpad 8
if Key = VK_NUMPAD8 then
Grüße, Matze
  Mit Zitat antworten Zitat
Mysterio08

Registriert seit: 11. Jan 2009
142 Beiträge
 
#7

Re: Richtungsänderung für kleine Grafik

  Alt 17. Okt 2009, 16:21
Zitat von Matze:
Hallo,

du kannst statt dem OnKeyDown-Ereignis das OnKeyPress-Ereignis nutzen. Dann stehen dir die virtuellen Tastencodesvirtuellen Tastencodes zur Verfügung:

Delphi-Quellcode:
// Numpad 8
if Key = VK_NUMPAD8 then
Ich habe das gerade mal ausprobiert, ich bekomme immer eine Fehlermeldung: "Inkompatible Typen". Und ich werte schon das OnKeyPress-Ereignis aus
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

Re: Richtungsänderung für kleine Grafik

  Alt 17. Okt 2009, 16:31
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_NUMPAD8 then

end;
Bei FormKeyPress geht dass nicht, weil Key vom Typ Char ist!
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin

end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Richtungsänderung für kleine Grafik

  Alt 17. Okt 2009, 16:39
Sorry, hab's verwechselt. Ich wusste nur mit einem geht's, mit dem anderen nicht.
  Mit Zitat antworten Zitat
Mysterio08

Registriert seit: 11. Jan 2009
142 Beiträge
 
#10

Re: Richtungsänderung für kleine Grafik

  Alt 17. Okt 2009, 16:41
Macht nichts, klappt jetzt wunderbar! Merci
  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 01:16 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