OnKeyDown事件 if Key=VK_UP then .... else if Key=VK_DOWN then ... else if Key=VK_RIGHT then ... else if Key=VK_LEFT then ...
其实dbgrid自己完全可以用方向键移动浏览的。不知道你想实现什么功能。 不过可以这样试试呀 if key = 40 then dbgrid1.datasource.dataset.next; if key = 38 then ...........................Prior; if key = 37 then dbgrid1.selectedindex := dbgrid1.seletedindex -1; if key = 38 then ..............................................+1; 当然还要判断eof,bof什么的,不知道是不是你想要的
DBGridOnKeyDown(.........;key:word); begin case key of begin vk_uP: begin if not dbgrid.datasource.dataset.bof then dbgrid.datasource.dataset.prior;//呵呵,忘了怎么写了 end; vk_down: begin if not dbgrid.datasource.dataset.eof then dbgrid.datasource.dataset.next;//呵呵,忘了怎么写了 end; vk_left://假如列的索引为0则向上移动一行,且社顶索引为列count-1 //如果不为零列索引-1 begin
end; vk_right://同理VK_LEFT begin end; end; end;
if (key = 38 ) or (key = 40) then begin if ADOqueryLot.active then Edit1.text := ADOquery1.fieldbyname'fieldname').AsString; end;
else if Key=VK_DOWN then ...
else if Key=VK_RIGHT then ...
else if Key=VK_LEFT then ...
不过可以这样试试呀
if key = 40 then dbgrid1.datasource.dataset.next;
if key = 38 then ...........................Prior;
if key = 37 then dbgrid1.selectedindex := dbgrid1.seletedindex -1;
if key = 38 then ..............................................+1;
当然还要判断eof,bof什么的,不知道是不是你想要的
begin
case key of
begin
vk_uP:
begin
if not dbgrid.datasource.dataset.bof then
dbgrid.datasource.dataset.prior;//呵呵,忘了怎么写了
end;
vk_down:
begin
if not dbgrid.datasource.dataset.eof then
dbgrid.datasource.dataset.next;//呵呵,忘了怎么写了 end;
vk_left://假如列的索引为0则向上移动一行,且社顶索引为列count-1
//如果不为零列索引-1
begin
end;
vk_right://同理VK_LEFT
begin
end;
end;
end;
begin
if ADOqueryLot.active then
Edit1.text := ADOquery1.fieldbyname'fieldname').AsString;
end;