本文介绍了Delphi:为动态查询的字段设置OnGetText事件处理程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想将自己的过程设置为OnGetText动态查询中的字段事件
I want to set my own procedure to OnGetText event of fields in a dynamic query
我的过程如下:
procedure TMainFrm.MyFieldGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
...
end;
- ... Captions是String数组常量
我在ADOQuery的OnAfterOpen事件中设置事件处理程序:
I set the event handler in OnAfterOpen event of ADOQuery :
procedure TImportFrm.ADOQueryAfterOpen(DataSet: TDataSet);
var
I : Integer;
begin
for I := 0 to ADOQuery.FieldCount - 1 do
ADOQuery.Fields[I].OnGetText := MainFrm.MyFieldGetText;
end;
但是,打开ADOQuery后,没有文本显示,看起来像Text值为空!
But after opening ADOQuery , there is no Text to display , it looks like the Text value is empty !
似乎我的程序没有关系,因为当我设置一个空的程序(没有代码)时,没有显示文本
发生什么问题?
谢谢...
推荐答案
尝试这样:
procedure TMainFrm.MyFieldGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if Sender.FieldName = 'XX' then
begin
Text := .... String(Sender.Value);// ( or Text := Sender.AsString);
end;
if Sender.FieldName = 'YY' then
begin
Text := .... String(Sender.Value);// ( or Text := Sender.AsString);
end;
...
end;
这篇关于Delphi:为动态查询的字段设置OnGetText事件处理程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!