为动态查询的字段设置OnGetText事件处理程序

为动态查询的字段设置OnGetText事件处理程序

本文介绍了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事件处理程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-25 06:30