如何在FireMonkey中全局更改字体?

时间:2011-12-18 14:43:51

标签: delphi delphi-xe2 firemonkey

我正试图找到一种全局更改FireMonkey项目中字体的方法。 在不必更改所有组件的字体属性的情况下,最简单的方法是什么? 如果有办法设置整个应用程序或整个表单的字体(如在VCL中)?

3 个答案:

答案 0 :(得分:1)

你应该可以用Duck Duck Delphi做到这一点......

这将改变表单上组件的所有字体:

Form1.duck.all.on('Font').setTo('Name','Arial').setTo('Color',TAlphaColors.Red);

我还没有尝试过,但是其中任何一个“应该”在同一个应用程序范围内工作:

Application.duck.all.each.on('Font').setTo('Name','Arial').setTo('Color',TAlphaColors.Red);
Screen.duck.all.each.on('Font').setTo('Name','Arial').setTo('Color',TAlphaColors.Red);

Duck Duck Delphi可以在这里找到:

https://bitbucket.org/sivv/duckduckdelphi

答案 1 :(得分:0)

FireMonkey styles是实现此目的的方法。请注意,FMX中未提供VCL与ParentXXX一起使用的方式。

article详细介绍了该主题。

答案 2 :(得分:0)

Just to set a new  TFont.FontService , you can change default font size and 
family 



unit ChangeDefaultFont; 

interface
uses
  System.SysUtils, System.Types, System.UITypes, System.Classes,FMX.graphics;

type
TDefaultFont = class (TInterfacedObject, IFMXSystemFontService)
public
  function GetDefaultFontFamilyName: string;
  function GetDefaultFontSize: Single;
end;

implementation

{ TDefaultFont }

function TDefaultFont.GetDefaultFontFamilyName: string;
begin
  Result := 'Tahoma';
end;

function TDefaultFont.GetDefaultFontSize: Single;
begin
  Result := 26.0;
end;
initialization
   TFont.FontService := TDefaultFont.Create;
end.