我在PANEL里面设置了30个IMAGE,命名是IMAGE1-IMAGE30,程序下有一个INI文件,里面的格式是:
[image1]
name=编号
active=1
lt=52
weight=3.4
number=8
[image1]
name=编号2
active=0
lt=12
weight=2.7
number=12我想在FORMCREATE事件里写段代码:设置IMAGE1的HINT信息就是这个文件里面的信息.
比如:IMAGE1的HINT是 NAME编号 LT52 WEIGHT3.4 NUMBER8. 
以前记得多个按钮可以共用一个事件,可以区分某个按钮的命名,不知道这个能不能适用.

解决方案 »

  1.   

    可以將INI文件讀出生成一個字符串,然後賦給IMAGE的HINT。如果用一個事件,可以根據INI中信息與IMAGE對應起來。
      

  2.   

    我就是想用一段代码将所有的IMAGE全部设置好,IMAGE后面的数字是对应的 不想一个IMAGE写一段 拜托给个简单的代码
      

  3.   

    不好意思 前面的INI文件有错误 第二段应该是
    [image2]
    name=编号2
    active=0
    lt=12
    weight=2.7
    number=12
      

  4.   

    先把INI的内容读到内存中写入就好了。
      

  5.   

    var 
      i: integer;
      ini: TIniFile; 
      res: string; 
    begin 
      ini := TIniFile.Create('c:\MyIni.ini'); 
      try 
        for i:=0 to ComponentCount -1 do
        begin
          if Components[i] is TImage then
             (Components[i] as TImage).HINT:=
                'NAME'+ini.ReadString((Components[i] as TImage).Name, 'Name', '')+' '+ 
                'LT'+ini.ReadString((Components[i] as TImage).Name, 'lt', '')+' '+
                'WEIGHT'+ini.ReadString((Components[i] as TImage).Name, 'weight', '')+' '+
                'NUMBER'+ini.ReadString((Components[i] as TImage).Name, 'number', '')+' '+
        end,
        MessageDlg('Value of Section:  ' + res, mtInformation, [mbOK], 0); 
      finally 
        ini.Free; 
      end; 
    end; 
      

  6.   

    有点笔误。var  
      i: integer;
      ini: TIniFile;   
    begin  
      ini := TIniFile.Create('c:\MyIni.ini');  
      try  
        for i:=0 to ComponentCount -1 do
        begin
        if Components[i] is TImage then
          (Components[i] as TImage).HINT:=
            'NAME'+ini.ReadString((Components[i] as TImage).Name, 'Name', '')+' '+  
            'LT'+ini.ReadString((Components[i] as TImage).Name, 'lt', '')+' '+
            'WEIGHT'+ini.ReadString((Components[i] as TImage).Name, 'weight', '')+' '+
            'NUMBER'+ini.ReadString((Components[i] as TImage).Name, 'number', '')+' '+
        end;
        finally  
        ini.Free;  
      end;  
    end;
      

  7.   

    还有 这个ComponentCount需要声明吗
      

  8.   

    我现在是需要从数据库读取设备总数 然后在界面上放上相应的TIMAGE 那么我是不是从数据库直接取总数写入这个INI文件这样清楚点
      

  9.   

    将image信息组合写入字符串,hint的值就是字符串的值就可以了。
    区分button事件,可以共用一个相应事件,传入的参数本来就是TObject,button控件就是从Tobject继承过来的,强制转化为Tbutton,对比Tag值就可以区分是哪个按钮了。
      

  10.   

    发现一个BUG,我的这些TIMAGE是在一个PANEL中的,我发现从0-3,似乎不存在,调试分析了一下,似乎0是FORM上的一个IMAGE,然后直接跳到4才是PANEL里面的IMAGE1,我想直接针对PANEL里面的IMAGE,具体该怎么折腾.
      

  11.   


    能给个代码吗,我现在已经需要的是只对PANEL里面的IMAGE操作,不对整个窗体里的IMAGE操作,现在我没用Components,用的是Controls。
      

  12.   

    自己搞定了 其实只是把Components[i]改成Planel1.controls[i]而已