在一个Form上有很多控件(可见的,不可见的).能不能实现这样的功能,如果控件有 Font 的属性,就把 Font.size = 9 ,否则不处理!

解决方案 »

  1.   

    所有的控件的ParentFont属性设为true;
    Form的Font.size设为9
      

  2.   

    所有的控件的ParentFont属性设为true;
    Form的Font.size设为9
    ==================================
         这是所谓的难问题……
      

  3.   

    uses TypInfo;
    {$R *.dfm}function TForm1.SetCtrlFont(ctrl: TComponent): boolean;
    var
       pi : PPropInfo; AFont: TFont;
    begin
       result := false;
       pi := getPropInfo(pTypeInfo(ctrl.ClassInfo ), 'Font' );
       if ( pi <> nil ) then
       begin
         AFont := TFont.Create;
         AFont.Style := [fsBold];
         SetOrdProp(ctrl, pi, Longint(AFont));
         AFont.Free;
         result := true;
       end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var I: integer;
    begin
     for I:=0 to self.ComponentCount-1 do
     begin
        SetCtrlFont(self.Components[i]);
     end;
    end;
      

  4.   

    我的要求是:
    1.设计的时候,可能不是所有的控件的ParentFont属性设为true;
    2.要求的运行中动态改变.
    3.有可能改为9, 也可能改为12, 则所以控件都变 12
      

  5.   

    to :aiirii(ari-爱的眼睛) 
     我试试!谢谢
      

  6.   

    to :aiirii(ari-爱的眼睛) :  高手就是高手, 一说就明白我的意思!非常感谢!给分!!!!!!