delphi 中 关于memo 控件的小问题

来源:百度知道 编辑:UC知道 时间:2024/06/02 15:01:12
我设置了DBmemo 和 DBGrid 同一个数据源
当DBGrid 中的指针变化时 在DBmemo 里就显示出对应字段的记录
我现在想实现这样一个功能:当DBGrid 中的指针变化时,在DBmemo 里先不显示对应字段的记录,当按下一个BUTTON后再显示 请问怎么实现??

如果你想用DBMemo来实现这功能,虽然是可以但是效果并不好,其做法如下:
1.首先不设置dbmemo的DataSource属性。
2.在button的onclick事件上设置dbmemo的dataSource属性和Datafield属性。
3.在DBGrid的OnCellClick事件上设置dbmemo的dataSource属性为nil。
例程:
//按钮的Onclick事件
procedure TForm1.Button1Click(Sender: TObject);
begin
dbmemo1.DataSource:=dataSource1;
dbmemo1.DataField:='fname';
dbmemo1.DataSource:=nil;
end;
//Dbgrid的CellClick事件
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
dbmemo1.DataSource:=nil;
end;
但这样的做法效果明显不太好,因为在dbmemo里面的值还是会出现一下再消失。所以建议将dbmemo改为memo。其实现方法如下:
//button的click事件中写上这个就可以了,其中fields[X]表示你想显示dbGrid里面的那一个字段。
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Text:=dbgrid1.Fields[1].AsString;
end;