我需要从文件中读取相应的配置信息,在客户端程序中自动创建我想要的界面,当然了,界面上放置了许多控件,读取文件自动生成没有问题,可是我怎么把生成控件的动作(事件)绑定到相应的函数呢,也就是说我的事件不在客户端写,客户端程序不改动。能不能把相应的函数放到类似ini文件中,需要的时候读取出来直接赋给自动创建控件的事件呢?   我做的项目是通讯电源监控的,系统需要纳入多种不同设备,为了避免接入新设备就更改客户端程序,所以想让用户定制界面写入配置文件,让客户端调用生成相应的图形界面。这样就不必要老是修改程序了。先谢了!

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,stdCtrls;type
      TForm1 = class(TForm)
        procedure FormShow(Sender: TObject);
      private
        { Private declarations }
        procedure myClick(sender:Tobject);
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormShow(Sender: TObject);
    var
    btn1:TButton;
    begin
        btn1:=TButton.create(self);//动态生成button控件
        btn1.Parent:=self;
        btn1.OnClick:=myClick;//动态生成button的事件代码。
    end;procedure TForm1.myClick(sender:Tobject);
    begin
        ShowMessage('124');
    end;end.
      

  2.   

    可以从网上下载一个有关INI 的程序看看
      

  3.   

    这有何难?你可以把函数封装到dll里,主程序里写好通用的调用函数,然后相应的配置放到ini文件里,包括调用的函数名等等,关键是要一一对应上
      

  4.   

    发布一个动态链接库取代INI,动态链接库里记录各种函数,如果有新设备更新,只需更新DLL文件。调用时采用指态动态指向所需的过程,也可放在链接库中实现,即客户端只参过程名,而实际调用的过程根据参数来决定