DBGrid Component

5 отговора 240 прегледа
#1

DBGrid Component

Моля за помощ!
Имам една DBGrid компонента. В нея искам да ползвам клавиш Enter за придвижване към следваща клетка, както това става с клавиш Tab. Пробвах със следния код, който върши идеална работа за DBEdit компоненти, но тук не помогна.
if Key = #13 then
begin
Key := #0;
SelectNext(ActiveControl,True,True);
end;

Отговор
в отговор на RumenS #2

Re: DBGrid Component

SelectNext минава в следващата контроло по TAB order-a. Опитай нещо от сорта на:
if DBGrid1.Fields[DBGrid1.selectedField.Index].Index < DBGrid1.Fieldcount-1 then
DBGrid1.SelectedIndex := DBGrid1.selectedField.Index +1
или нещо такова.

AquilaX

____________
умният знае кога да говори, мъдрият знае кога да мълчи
Отговор
в отговор на RumenS #3

Използвай друго

Иползвай event

OnKeyDown

и използвай рашиените кодове
if key=vk_Return then Perform(WM_NEXTDLGCTL,0,0)

това е симулирането на таб а ко е Perform(WM_NEXTDLGCTL,1,0) то е Shift+Tab
:)))

Отговор
в отговор на RumenS #4

Re: DBGrid Component

Prosro e kato vselenataaaa:

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

begin
if Key = 13 then
(DBGrid1 as TWinControl).Perform(WM_KEYDOWN, VK_TAB, 0);
end
;

Дори и да не можеш - ТРЯБВА.
Щом трябва значе МОЖЕШ.
Отговор
в отговор на Shveik #5

Re: DBGrid Component

Ami kakwo ste stane ako ...
prosto se zameni sas slednoto

if Key = 13 then
Key := VK_TAB;

- ne sam go probwal - no mi se struwa 4e ste raboti to4no kakto se iska

---
Е т'ва е живот!
Отговор
в отговор на PhantomAS #6

Става,...

:)

Дори и да не можеш - ТРЯБВА.
Щом трябва значе МОЖЕШ.
Отговор