Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Listbox übernimmt Keydown das für Form gedacht war... (https://www.delphipraxis.net/132518-listbox-uebernimmt-keydown-das-fuer-form-gedacht-war.html)

Super_Chemiker 14. Apr 2009 14:46


Listbox übernimmt Keydown das für Form gedacht war...
 
Hi, ich hab schon wieder ein Problem:
Ein Form soll auf KeyDown reagieren:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Play) then begin
  if (key = (VK_ESCAPE)) then
     begin
       //code
     end
     else if (key = (VK_DOWN)) then
     begin
       //code
     end
     else if (key = (VK_UP)) then
     begin
       //code
     end
     else if (key = (VK_LEFT)) then
     begin
       //code
     end
     else if (key = (VK_RIGHT)) then
     begin
       //code
     end;
  end;
end;
wenn ich Escape drücke geht alles, aber wenn ich die Pfeiltasten drücke, passiert nichts außer, dass bei einer Listbox die blaue Hinterlegung auf und ab geht.

Danke schon mal für Eure Hilfe
mfG


EDIT: überall wo //code steht, steht in meinem Projekt code, aber ich will hier nichts überfüllen

Sunlight7 14. Apr 2009 14:54

Re: Listbox übernimmt Keydown das für Form gedacht war...
 
Hast Du auf dem Formular KeyPreview auf True gestellt?

Super_Chemiker 14. Apr 2009 14:56

Re: Listbox übernimmt Keydown das für Form gedacht war...
 
Ja, im FormCreate Ereignis und vorsichtshalber später nochmal(nachdem die ListBox 'gefüllt' wurde)

Fussball-Robby 14. Apr 2009 15:00

Re: Listbox übernimmt Keydown das für Form gedacht war...
 
Ich kann das Verhalten nicht nachvollziehen. Habe ein leeres Formular mit einer Listbox drauf. Im FormKeyDown habe ich deinen Code mit ShowMessages eingefügt. Drücke ich nun die Pfeiltasten, wird sowohl die Messagebox angezeigt als auch die Markierung der Listbox geändert. Hast du mal einen Breakpoint auf das OnKeyDown gesetzt und geguckt ob wirklich nichts ankommt?

Super_Chemiker 14. Apr 2009 15:04

Re: Listbox übernimmt Keydown das für Form gedacht war...
 
ok:
wenn ich einen breakpoint auf
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
setze, dann bekommt nach dem debuggen der rote punkt ein weißes X...
kann mir einer erklären was das bedeutet? Mit Breakpoints hab ich keine Erfahrung...

Klaus01 14. Apr 2009 15:05

Re: Listbox übernimmt Keydown das für Form gedacht war...
 
die Methode wird wegoptimiert, also nie ausgeführt.

Grüße
Klaus

Super_Chemiker 14. Apr 2009 15:10

Re: Listbox übernimmt Keydown das für Form gedacht war...
 
OK, danke für alles, ich kleiner Depp habe da was falsch gemacht :arrow: er hat es ausgeführt, aber ich habe einen Fehler reinprogrammiert sodass ich die Auswirkung nicht sehen konnte.

Andere Frage: kann ich es irgendwie machen, dass die Listbox garnicht reagiert? Das könnte bei mir den Benutzer iritieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 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