我在如下语句中调用color属性
procedure ColorSet(ASender: TControl;SectionName:String);
var
    IniSetting: TIniFile;
    iRed,iGreen,iBlue: Byte;
begin
    IniSetting := TIniFile.Create(g_wsrzSetIniFile);
    iRed := IniSetting.ReadInteger(SectionName,'red',250);
    iGreen := IniSetting.ReadInteger(SectionName,'green',250);
    iBlue := IniSetting.ReadInteger(SectionName,'blue',250);
    ASender.Color := RGB(iRed,iGreen,iBlue);     
    IniSetting.Free;
end;编译时在语句ASender.Color := RGB(iRed,iGreen,iBlue);提示color没有定义。在当前单元里我已经包含了Controls,Graphics单元。请大侠们帮下忙,谢谢!

解决方案 »

  1.   

    type
      TMyControl = class(TControl)...TMyControl(ASender).Color := RGB(iRed,iGreen,iBlue);     
      

  2.   

    TO:aririi
    我目的是想控制panel,frame,dbgrid的颜色。如果用你的方法我是不是应该又加些代码呢?谢谢
      

  3.   

    这还不简单?if ASender is tPanel then tpanel(ASender).color ...
    if ASender is Tframe then tFrame(ASender).color ...
    if ASender is .....................
    你也可以用别的方式,但要检查是否存在Color 这个属性。还有,你的颜色保存的时候可以不用分开为R,G,B,颜色是整形,你强制类型转化一下即可;