Delphi dbgird 问题
我想实现用鼠标轮滚在dbgrid的行间移动的同时,把dbgrid选中的行中个字段的数据分别显示在多个Edit中,请问怎么写代码?注意:使用的是鼠标轮滚,而不是鼠标点击!...
我想实现用鼠标轮滚在dbgrid的行间移动的同时,把dbgrid选中的行中个字段的数据分别显示在多个Edit中,请问怎么写代码?注意:使用的是鼠标轮滚,而不是鼠标点击!
展开
2013-11-09
展开全部
private OldGridWnd1:TWndMethod;
procedure NewGridWnd1(var Message: TMessage); procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
edit1.Text:=adoquery1.fieldbyname('name).AsString;
end;procedure TForm1.NewGridWnd1(var Message: TMessage);
var
IsNeg : Boolean;
begin
if Message.Msg = WM_MOUSEWHEEL then
begin
IsNeg := Short(Message.WParamHi) < 0;
if IsNeg then
DBGrid1.DataSource.DataSet.MoveBy(1)
else
DBGrid1.DataSource.DataSet.MoveBy(-1)
end
else
OldGridWnd1(Message);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
OldGridWnd1 := DBGrid1.WindowProc;
DBGrid1.WindowProc := NewGridWnd1;
end;
procedure NewGridWnd1(var Message: TMessage); procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
edit1.Text:=adoquery1.fieldbyname('name).AsString;
end;procedure TForm1.NewGridWnd1(var Message: TMessage);
var
IsNeg : Boolean;
begin
if Message.Msg = WM_MOUSEWHEEL then
begin
IsNeg := Short(Message.WParamHi) < 0;
if IsNeg then
DBGrid1.DataSource.DataSet.MoveBy(1)
else
DBGrid1.DataSource.DataSet.MoveBy(-1)
end
else
OldGridWnd1(Message);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
OldGridWnd1 := DBGrid1.WindowProc;
DBGrid1.WindowProc := NewGridWnd1;
end;
2013-11-09
展开全部
在dbgrid对应的datasource的ondatachange事件中写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询