![]() |
Fehler bei Tasten-Druck
bei diesem code hier und bei druck der "Nach-Unten-Taste" , wird sofort die unterste if-Methode aktiviert, obwohl doch erst die zweite, dann die dritte usw. dran wären. Woran liegt das????
Delphi-Quellcode:
procedure TFormZero.FormCreate(Sender: TObject);
begin Aktiv := 1; ImageNS.Picture.LoadFromFile ('Graphiken\newgame_a.bmp'); end;
Delphi-Quellcode:
procedure TFormZero.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if key= vk_down then; begin Aktiv := Aktiv + 1; if Aktiv = 1 then; //Neues Spiel begin ImageNS.Picture.LoadFromFile ('Graphiken\newgame_a.bmp'); ImageSL.Picture.LoadFromFile ('Graphiken\loadgame.bmp'); ImageO.Picture.LoadFromFile ('Graphiken\options.bmp'); ImageC.Picture.LoadFromFile ('Graphiken\credits.bmp'); ImageB.Picture.LoadFromFile ('Graphiken\beenden.bmp'); end; if Aktiv = 2 then; //Spiel laden begin ImageNS.Picture.LoadFromFile ('Graphiken\newgame.bmp'); ImageSL.Picture.LoadFromFile ('Graphiken\loadgame_a.bmp'); ImageO.Picture.LoadFromFile ('Graphiken\options.bmp'); ImageC.Picture.LoadFromFile ('Graphiken\credits.bmp'); ImageB.Picture.LoadFromFile ('Graphiken\beenden.bmp'); end; if Aktiv = 3 then; //Optionen begin ImageNS.Picture.LoadFromFile ('Graphiken\newgame.bmp'); ImageSL.Picture.LoadFromFile ('Graphiken\loadgame.bmp'); ImageO.Picture.LoadFromFile ('Graphiken\options_a.bmp'); ImageC.Picture.LoadFromFile ('Graphiken\credits.bmp'); ImageB.Picture.LoadFromFile ('Graphiken\beenden.bmp'); end; if Aktiv = 4 then; //Credits begin ImageNS.Picture.LoadFromFile ('Graphiken\newgame.bmp'); ImageSL.Picture.LoadFromFile ('Graphiken\loadgame.bmp'); ImageO.Picture.LoadFromFile ('Graphiken\options.bmp'); ImageC.Picture.LoadFromFile ('Graphiken\credits_a.bmp'); ImageB.Picture.LoadFromFile ('Graphiken\beenden.bmp'); end; if Aktiv = 5 then; //Beenden begin ImageNS.Picture.LoadFromFile ('Graphiken\newgame.bmp'); ImageSL.Picture.LoadFromFile ('Graphiken\loadgame.bmp'); ImageO.Picture.LoadFromFile ('Graphiken\options.bmp'); ImageC.Picture.LoadFromFile ('Graphiken\credits.bmp'); ImageB.Picture.LoadFromFile ('Graphiken\beenden_a.bmp'); end; end; end; |
Re: Fehler bei Tasten-Druck
Das das erste "Paket" nicht angezeigt wird ist logisch:
Beim start wird Aktiv auf 1 gesetzt und dann wird Aktiv := Aktiv + 1; ausgeführt (Aktiv = 2) Wegen dem Rest: KA Schreibst du sonst irendwo noch auf Aktiv??? |
Re: Fehler bei Tasten-Druck
Hai cylon,
warum hast Du eigentlich hinter jedem [b]then[/] ein ; stehen? Ausserdem kannst Du dir das Laden der Bilder vereinfachen. Es werden ja immer nur zwei Bilder verändert. Zu deinem Problem: Kann es sein das Du einfach zu lange die "Nach-Unten-Taste" drückst? Das Event wird ja nach einigen ms, je nach Einstellung, wiederholt ausgeführt. Ich habe deinen Code mal geändert.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin Aktiv := 1; ImageNS.Picture.LoadFromFile('Graphiken\newgame_a.bmp'); ImageSL.Picture.LoadFromFile('Graphiken\loadgame.bmp'); ImageO.Picture.LoadFromFile('Graphiken\options.bmp'); ImageC.Picture.LoadFromFile('Graphiken\credits.bmp'); ImageB.Picture.LoadFromFile('Graphiken\beenden.bmp'); end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = vk_down then begin Aktiv := Aktiv + 1; case Aktiv of 1: begin ImageNS.Picture.LoadFromFile('Graphiken\newgame_a.bmp'); ImageB.Picture.LoadFromFile('Graphiken\beenden.bmp'); end; 2: begin ImageNS.Picture.LoadFromFile('Graphiken\newgame.bmp'); ImageSL.Picture.LoadFromFile('Graphiken\loadgame_a.bmp'); end; 3: begin ImageSL.Picture.LoadFromFile('Graphiken\loadgame.bmp'); ImageO.Picture.LoadFromFile('Graphiken\options_a.bmp'); end; 4: begin ImageO.Picture.LoadFromFile('Graphiken\options.bmp'); ImageC.Picture.LoadFromFile('Graphiken\credits_a.bmp'); end; 5: begin ImageC.Picture.LoadFromFile('Graphiken\credits.bmp'); ImageB.Picture.LoadFromFile('Graphiken\beenden_a.bmp'); Aktiv := 0; end; end; end; end. |
Re: Fehler bei Tasten-Druck
Zitat:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin Aktiv := 1; ImageNS.Picture.LoadFromFile('Graphiken\newgame_a.bmp'); ImageSL.Picture.LoadFromFile('Graphiken\loadgame.bmp'); ImageO.Picture.LoadFromFile('Graphiken\options.bmp'); ImageC.Picture.LoadFromFile('Graphiken\credits.bmp'); ImageB.Picture.LoadFromFile('Graphiken\beenden.bmp'); end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = vk_down then begin //Aktiv := Aktiv + 1; case Aktiv of 1: begin ImageNS.Picture.LoadFromFile('Graphiken\newgame_a.bmp'); ImageB.Picture.LoadFromFile('Graphiken\beenden.bmp'); end; 2: begin ImageNS.Picture.LoadFromFile('Graphiken\newgame.bmp'); ImageSL.Picture.LoadFromFile('Graphiken\loadgame_a.bmp'); end; 3: begin ImageSL.Picture.LoadFromFile('Graphiken\loadgame.bmp'); ImageO.Picture.LoadFromFile('Graphiken\options_a.bmp'); end; 4: begin ImageO.Picture.LoadFromFile('Graphiken\options.bmp'); ImageC.Picture.LoadFromFile('Graphiken\credits_a.bmp'); end; 5: begin ImageC.Picture.LoadFromFile('Graphiken\credits.bmp'); ImageB.Picture.LoadFromFile('Graphiken\beenden_a.bmp'); Aktiv := 0; //Wofür das??? end; end; Aktiv := Aktiv + 1;//<- Hier mussed hin! end; end. |
Re: Fehler bei Tasten-Druck
Zitat:
Wenn man dan "Nach-Unten" drückt, soll das zweite markiert werden... Zitat:
Mir fällt nur grad nich ein wie viele Millisekunden eine Sekunde hat... :wall: :wall: :gruebel: |
Re: Fehler bei Tasten-Druck
OK! Habs gerafft!
|
Re: Fehler bei Tasten-Druck
@ Sharky
Es funktioniert :dancer: ... Aber wenn ich die "Nach-Unten" Taste gedrückt halte, flimmern die ganzen Bilder... Kann man da nicht so was wie nen Buffer einbauen?? Also, dass das Bild im BackBuffer gebildet wird und dann nur noch in den FrontBuffer übertragen wird... Oder gibts noch ne andre Methode, das Flimmern zu verhindern?? |
Re: Fehler bei Tasten-Druck
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab jetzt die Methode auch mal mit dr "Nach-Oben" Taste geproggt...
Da ist allerdings das hier rausgekommen |
Re: Fehler bei Tasten-Druck
Zitat:
Hai SleepyMaster, Nö, unter den definierten Bedingungen (Form.Create) stimmt mein Code. Du musst nur genau untersuchen wass geschehen soll! |
Re: Fehler bei Tasten-Druck
Kann mir dann mal jemand sagen, was an dem Code falsch ist, den ich zum Download gestellt hab???? :stupid:
|
Re: Fehler bei Tasten-Druck
Zitat:
versuche es mal so:
Delphi-Quellcode:
procedure TFormZero.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if key = vk_down then begin Aktiv := Aktiv + 1; if (Aktiv = 6) then Aktiv := 1; case Aktiv of 1: begin ImageNS.Picture.LoadFromFile('Graphiken\newgame_a.bmp'); ImageB.Picture.LoadFromFile('Graphiken\beenden.bmp'); end; 2: begin ImageSL.Picture.LoadFromFile('Graphiken\loadgame_a.bmp'); ImageNS.Picture.LoadFromFile('Graphiken\newgame.bmp'); end; 3: begin ImageO.Picture.LoadFromFile('Graphiken\options_a.bmp'); ImageSL.Picture.LoadFromFile('Graphiken\loadgame.bmp'); end; 4: begin ImageC.Picture.LoadFromFile('Graphiken\credits_a.bmp'); ImageO.Picture.LoadFromFile('Graphiken\options.bmp'); end; 5: begin ImageB.Picture.LoadFromFile('Graphiken\beenden_a.bmp'); ImageC.Picture.LoadFromFile('Graphiken\credits.bmp'); end; end; end; if key= vk_up then begin Aktiv := Aktiv - 1; if (Aktiv = 0) then Aktiv = 5; case Aktiv of 1: begin ImageNS.Picture.LoadFromFile('Graphiken\newgame_a.bmp'); ImageB.Picture.LoadFromFile('Graphiken\loadgame.bmp'); end; 2: begin ImageSL.Picture.LoadFromFile('Graphiken\loadgame_a.bmp'); ImageNS.Picture.LoadFromFile('Graphiken\options.bmp'); end; 3: begin ImageO.Picture.LoadFromFile('Graphiken\options_a.bmp'); ImageSL.Picture.LoadFromFile('Graphiken\credits.bmp'); end; 4: begin ImageO.Picture.LoadFromFile('Graphiken\credits_a.bmp'); ImageC.Picture.LoadFromFile('Graphiken\beenden.bmp'); end; 5: begin ImageB.Picture.LoadFromFile('Graphiken\beenden_a.bmp'); ImageC.Picture.LoadFromFile('Graphiken\newgame.bmp'); end; end; end; end; |
Re: Fehler bei Tasten-Druck
Jo..Inzwischen hab ich nach langem Grübeln :gruebel: auch selbst den Fehler gefunden..
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:49 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