• 事件方法必须是类的方法


    我的本意是想在一个通用unit单元中定义一个通用的查询函数,在这个通用查询函数中调用字段的ongettext方法来解析值为代码的字段(如:表的性别字段存储的是代码,'1':男,'2'女),在DBGridEh中性别显示的是名称男或女,而表中字段存储的是'1'或'2'
    由于想尽可能做的通用,不希望用联合查询,要用Ongettext
    难道要在每个TADOQuery控件中写Ongettext事件,可是所有的TADOQuery都放在了datamodule1中,查询sql是在不同窗体中写的
    要怎么做?
    
    type
       TEventHandlers = class { 建一个虚拟类}
           procedure GetName(Sender: TField; var Text: String; DisplayText: Boolean);
       end;
     
    ...
    var 
      EvHandler:TEventHandlers;
     
    implementation
     
    {方法实现}
    procedure TEventHandlers.GetName(Sender: TField; var Text: String; DisplayText: Boolean); 
    begin 
        with datamodule1.query1 do 
        begin 
            close; 
            sql.Clear; 
            sql.Add('select [name] from [sex] where [code]=:x'); 
            Parameters[0].Value:=Sender.Value; 
            open; 
            Text:=Fields[0].AsString; 
        end; 
    end;
     
     
     
    {使用}
    datamodule1.query1.FieldByName('XB').OnGetText:= EvHandler.GetName; 
    
  • 相关阅读:
    练习5-3 数字金字塔 (15分)
    JSTL标签
    ssm+mysql+jsp打造在线考试系统WeKnow-学生端
    JSP常用内置对象
    mybatis入门2
    mybtis入门
    数据源的作用
    ssm动态查询向前台传json
    ssm中的注解
    ssm中的模糊查询
  • 原文地址:https://www.cnblogs.com/tk-del/p/3393980.html
Copyright © 2020-2023  润新知