プロジェクトで使用するグローバルフォントを迅速かつ効果的に適用する方法はありますか?これによりプロジェクト全体のフォント一貫性?
私は私のプロジェクト内のすべてのコントロールは、通常のフォームではなく、特定のフォントを設定するなどのTButton、TEDIT、TLabelとして
を使用することを具体的なフォント名を設定したいわけコントロールは、そのフォームのすべてのコントロールを指定されたFontに変更します。
ただし、特定のコントロールのフォントを手動で変更した場合、フォームでフォントを設定すると以前に手動で変更されたコントロールは更新されなくなります。
アイデア1
私のような、ループのために使用して、この方法を私のフォーム上の各コンポーネントを反復処理し、フォントの設定を考えていた:
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
with TForm(Self) do
begin
for i := 0 to ComponentCount - 1 do
begin
if Components[i] is TButton then
begin
TButton(Components[i]).Font.Name := 'MS Sans Serif';
TButton(Components[i]).Font.Size := 8;
TButton(Components[i]).Font.Style := [fsBold];
end;
if Components[i] is TLabel then
begin
TLabel(Components[i]).Font.Name := 'MS Sans Serif';
TLabel(Components[i]).Font.Size := 8;
TLabel(Components[i]).Font.Style := [fsBold];
end;
end;
end;
end;
しかし、これを行うことは非常に思えます手ごわい、それはまた、単純な作業のためのコードのかなりの量になります。
アイデア2
私は手動で時間がかかる可能性があり、その後も、私はコントロールを逃したのかもしれません。この通過するが、いくつかの形式で、各コントロールのいずれかによって設計時1でフォントを変更することができます知っています。アイデア2と同様
アイデア3
、別の方法は、テキスト(DFM)としてフォームを表示し、その方法フォントを検索と置換することができました。
基本的に私は自分のアプリケーション内で一貫性のために行くと、全体を通して使用1つのフォントを持っていますが、私は達成するために探していたものです。
私はここで完全に明白な何かを見逃していますが、私はそのような仕事のために過度のことをしようとしていますか?
コントロールのフォントを手動で変更した場合は、その「ParentFont」プロパティも「False」に設定します。 True(デフォルト)(Parent)フォントを返すように設定する – kludg
卑劣なことに、私はこのプロパティが変更されていたことを認識していませんでした! –
フォームを作成する前に、 'Application.DefaultFont.Name:= 'MS Sans Serif';' Sergが指摘するようにフォーム内でParentFontをtrueに設定します。メッセージダイアログでフォントを設定するには、 'Screen.MessageFont.Name'プロパティを設定します。 –