遍历窗体控件,设置FontName

function HasProperty(const AObject: TObject;const APropName:String):Boolean;
 var
   PropInfo:PPropInfo;
begin
  PropInfo:=GetPropInfo(AObject.ClassInfo,APropName);
  Result:=Assigned(PropInfo);
end;

function GetObjectProperty(
     const AObject   : TObject;
     const APropName : string
     ):TObject;
 var
   PropInfo:PPropInfo;
 begin
   Result  :=  nil;
   PropInfo:=GetPropInfo(AObject.ClassInfo,APropName);
   if Assigned(PropInfo) and
       (PropInfo^.PropType^.Kind = tkClass) then
     Result  :=  GetObjectProp(AObject,PropInfo);
 end;

procedure SetFontName(Component: TComponent; FontName: string);
var
  PropInfo: PPropInfo;
  lCtl:TControl;
  lFont:TFont;
begin
  if Component = nil then exit;
  PropInfo := GetPropInfo(Component, 'FONT');
  if PropInfo = nil then exit;
  if (PropInfo.PropType^.Name <> 'TFont') then Exit;
  lCtl:=TWinControl(Component);
  lFont:=TFont(GetObjectProperty(lCtl,'FONT'));
  lFont.Name:=FontName;

end;

procedure TForm1.FormCreate(Sender: TObject);
Var
  lComponent: TComponent;
  i: Integer;
  lFontName: String;
Begin
  lFontName:='黑体';//'宋体';
  For i := 0 To Self.ComponentCount - 1 Do
  Begin
    lComponent := Self.Components[i];
    if HasProperty(lComponent, 'FONT') then
      SetFontName(lComponent,lFontName);
  End;
end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值