VK_UP nie działa VK_HOME dziala

0

Witam

nie mam bladego pojęcia co ja robie źle niby nie które działają a niektóre nie oczywiście na formie jest ustawione KeyPreview na True do działających można zaliczyć VK_DELETE VK_HOME VK_SHIFT do nie działających zaliczamy VK_UP VK_DAWN VK_LEFT VK_RIGHT co ja robie źle?

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

if (Key = VK_DELETE) then begin button2.Click; end;
if (Key = VK_home) then begin button2.Click; end;
if (Key = VK_SHIFT) then begin button2.Click; end;
if (Key = VK_UP) then begin button2.Click; end;
if (Key = VK_RIGHT) then begin button2.Click; end;
if (key=$37) then begin button2.Click; end;
//if Key in [VK_LEFT, VK_RIGHT,  VK_DOWN, VK_UP] then begin button2.Click; end;
end;
0

Jakiś komponent blokuje Ci te klawisze, u mnie takie jaja występują po dodaniu TVirtualStringTree.

Musisz dodać własną procedurę obsługi wiadomości.
Przykład jak to zrobić masz tu:
http://www.swissdelphicenter.ch/torry/showcode.php?id=1055

//Dodajesz do Private

procedure MsgHandler(var Msg: TMsg; var Handled: Boolean);

//Potem obsługujesz klawisze:

procedure TForm1.MsgHandler(var Msg: TMsg; var Handled: Boolean);
begin
 Handled := false;

 if (Msg.message = WM_KEYDOWN) then
 Begin
   case Msg.wParam of 
   VK_UP: 
        begin
        //tu zadania do wykonania
        Handled := true;
        end;
   VK_DOWN:
        begin
        //tu zadania do wykonania
        Handled := true;
        end;
   end;    // case
 end;

  inherited;
end;

Powinno działać.

0

temat zamkniety chodzilo o to ze kursor sie ustawial na buttonie i button przejmowal zdarzenia nacisniecia up down :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1