AGB  ·  Datenschutz  ·  Impressum  







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

Fehler bei Tasten-Druck

Ein Thema von cylon · begonnen am 29. Dez 2003 · letzter Beitrag vom 3. Jan 2004
Antwort Antwort
Seite 1 von 2  1 2      
cylon

Registriert seit: 15. Dez 2003
78 Beiträge
 
Delphi 3 Professional
 
#1

Fehler bei Tasten-Druck

  Alt 29. Dez 2003, 22:04
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;
Let's look @ my Homepage @ www.lycoweb.de

cya cylon
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#2

Re: Fehler bei Tasten-Druck

  Alt 29. Dez 2003, 22:57
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???
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Fehler bei Tasten-Druck

  Alt 30. Dez 2003, 07:36
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.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#4

Re: Fehler bei Tasten-Druck

  Alt 30. Dez 2003, 10:38
Zitat:
Ich habe deinen Code mal geändert.
Wobei das Aktiv := Aktiv + 1; immernoch falsch sitzt!

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.
  Mit Zitat antworten Zitat
cylon

Registriert seit: 15. Dez 2003
78 Beiträge
 
Delphi 3 Professional
 
#5

Re: Fehler bei Tasten-Druck

  Alt 30. Dez 2003, 12:51
Zitat:
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)
Das erste Paket soll ja auch schon von Anfang an markiert sein...
Wenn man dan "Nach-Unten" drückt, soll das zweite markiert werden...

Zitat:
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.
Vielleicht sollte ich ne Verzögerung mit sleep() einbauen..
Mir fällt nur grad nich ein wie viele Millisekunden eine Sekunde hat...
Let's look @ my Homepage @ www.lycoweb.de

cya cylon
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#6

Re: Fehler bei Tasten-Druck

  Alt 30. Dez 2003, 12:54
OK! Habs gerafft!
  Mit Zitat antworten Zitat
cylon

Registriert seit: 15. Dez 2003
78 Beiträge
 
Delphi 3 Professional
 
#7

Re: Fehler bei Tasten-Druck

  Alt 30. Dez 2003, 13:02
@ Sharky
Es funktioniert ...

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??
Let's look @ my Homepage @ www.lycoweb.de

cya cylon
  Mit Zitat antworten Zitat
cylon

Registriert seit: 15. Dez 2003
78 Beiträge
 
Delphi 3 Professional
 
#8

Re: Fehler bei Tasten-Druck

  Alt 30. Dez 2003, 13:37
Ich hab jetzt die Methode auch mal mit dr "Nach-Oben" Taste geproggt...
Da ist allerdings das hier rausgekommen
Angehängte Dateien
Dateityp: zip zero.zip (397,5 KB, 3x aufgerufen)
Let's look @ my Homepage @ www.lycoweb.de

cya cylon
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Fehler bei Tasten-Druck

  Alt 30. Dez 2003, 16:15
Zitat von SleepyMaster:
Wobei das Aktiv := Aktiv + 1; immernoch falsch sitzt!

Hai SleepyMaster,

Nö, unter den definierten Bedingungen (Form.Create) stimmt mein Code.
Du musst nur genau untersuchen wass geschehen soll!
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
cylon

Registriert seit: 15. Dez 2003
78 Beiträge
 
Delphi 3 Professional
 
#10

Re: Fehler bei Tasten-Druck

  Alt 30. Dez 2003, 17:27
Kann mir dann mal jemand sagen, was an dem Code falsch ist, den ich zum Download gestellt hab????
Let's look @ my Homepage @ www.lycoweb.de

cya cylon
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:42 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