Delphi Tips & Tricks softsale > Delphi Tips & Tricks      

< poprzednia rada następna rada >

Nawigacja w DBGrid przy pomocy klawisza Enter

Niekiedy użytkownik chce, aby nawigacja w gridzie odbywała się przy pomocu klawisza Enter a nie Tab. Klawisz Tab działa w ten sposób, że po przejściu do ostatniej kolumny grida kursor jest przesuwany do następnego wiersza. Poniższa procedura realizuje nawigację w gridzie za pomocą klawisza Enter (w tym przypadku należy pamiętać o ustawieniu własność KeyPreview formy na true).

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
   { jeżeli klawisz Enter}
   if Key = #13 then
      if not (ActiveControl is TDBGrid) then
         begin { jeżeli nie DBgrid }
            Key := #0;
            { przesuń się do następnego elementu kontrolnego }
            Perform(WM_NEXTDLGCTL, 0, 0);
         end
   else
   if (ActiveControl is TDBGrid) then { jeżeli to nie DBGrid }
      with TDBGrid(ActiveControl) do
      if selectedindex < (fieldcount -1) then
          { przesuń się po polu tablicy }
          selectedindex := selectedindex +1
      else
         begin
            selectedindex:=0;
            // odkomentowanie tej linii spowoduje takie
            // działanie jak TAB, jeśli w options dbgrida
            // ustawiono dgtabs na true
            // table1.next;
         end
end;

Wyjście z DBGrida np przez klawisz Esc do elementu kontrolnego, na który ustawiamy focus (tu przycisk).

procedure TForm1.DBGrid1KeyPress(Sender: TObject;
                                   var Key: Char);
   begin
   if key=#27 then
      begin
         button1.setfocus;
      end;

SOFTSALE - Oprogramowanie i Szkolenia
softsale@softsale.com.pl

03-565 Warszawa , ul. Borzymowska 43 lok. 301C
tel/fax:4084840,GSM:0607612428