AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi KeyDown reagiert auf vk_next aber nicht auf vk_down...
Thema durchsuchen
Ansicht
Themen-Optionen

KeyDown reagiert auf vk_next aber nicht auf vk_down...

Ein Thema von Der_Ventilator · begonnen am 30. Jun 2006 · letzter Beitrag vom 6. Jul 2006
Antwort Antwort
Der_Ventilator

Registriert seit: 11. Apr 2004
Ort: Kanada
136 Beiträge
 
Delphi 2010 Professional
 
#1

KeyDown reagiert auf vk_next aber nicht auf vk_down...

  Alt 30. Jun 2006, 12:06
Also der Titel sagt schon, dass meine Komponente zwar auf vk_next (bild ab) reagiert, aber nicht auf vk_down.
Warum? Was ist an der Taste anders?

Delphi-Quellcode:
type
  Tgliste2 = class(TCustomControl)
...

procedure Tgliste2.KeyDown (var Key: Word; Shift: TShiftState);
begin
  inherited;
    
  //Komponente kriegt sonst keinen Focus
   if not focused then
   begin
     parent.Setfocus;
     self.SetFocus;
   end;

  if assigned(OnKeyDown) then OnKeyDown(key,Shift);


  case key of
    vk_up : Runterscrollen;
    vk_down : Raufscrollen;
    vk_next : Runterscrollen;
    vk_prior: Raufscrollen;
  end;
end;
Codito, ergo sum. - I code therefore I am
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: KeyDown reagiert auf vk_next aber nicht auf vk_down...

  Alt 30. Jun 2006, 12:19
Hi,

vielleich wird ja im OnKeyDown die Variable Key auf 0 gesetzt (Übergabe als Var).

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#3

Re: KeyDown reagiert auf vk_next aber nicht auf vk_down...

  Alt 30. Jun 2006, 12:33
Du musst WM_GETDLGCODE abfangen, und zum geerbten Ergebnis DLGC_WANTARROWS hinzufügen. Das geht aber glaub ich erst ab TWinControl.
Wenn DLGC_WANTARROWS nicht im Ergebnis dieser Windowsnachricht steht, sendet Windows die Arrow Keys erst garnicht an dieses Handle.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: KeyDown reagiert auf vk_next aber nicht auf vk_down...

  Alt 30. Jun 2006, 13:06
@Sidorion: Wie du bereits geschrieben hast geht das erst ab TWinControl. Tcontrol etc. braucht das auch nicht können weil dies keinen Focus erhalten kann und somit auch keine KeyMessages etc. erhält.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#5

Re: KeyDown reagiert auf vk_next aber nicht auf vk_down...

  Alt 30. Jun 2006, 14:05
dann kriegt er aber auch kein vk_next. Hab grad nopchmal gekuckt, TCustomControl leitet von TWinControl ab. Da sollte es so gehen.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Der_Ventilator

Registriert seit: 11. Apr 2004
Ort: Kanada
136 Beiträge
 
Delphi 2010 Professional
 
#6

Re: KeyDown reagiert auf vk_next aber nicht auf vk_down...

  Alt 6. Jul 2006, 19:47
Nach dem Einbinden von
Delphi-Quellcode:
procedure WMGetDlgCode(var Msg: TMessage); message WM_GETDLGCODE;

procedure Tgliste2.WMGetDlgCode(var Msg: TMessage);
begin
  inherited;
  Msg.Result := Msg.Result or DLGC_WANTARROWS;
end;
(Quelle Delphi Source)

funktionieren nun auch die Pfeiltasten.

Danke.
Codito, ergo sum. - I code therefore I am
  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 19:59 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