Spójność czcionki w całym projekcie?

Czy istnieje szybki i skuteczny sposób zastosowania globalnej czcionki do wykorzystania w projekcie?

Chodzi mi o to, że chciałbym ustawić konkretną nazwę czcionki, której będą używać wszystkie elementy sterujące w moim projekcie, takie jakTButton, TEdit, TLabel itp.

Zazwyczaj ustawienie czcionki dla formularza zamiast określonej kontrolki spowoduje zmianę wszystkich formantów w tym formularzu na określoną czcionkę.

Jest jednak pewien problem, jeśli jednak ręcznie zmieniłaś czcionkę na określonej kontrolce, to ustawienie czcionki przez formularz nie będzie już aktualizować tych kontrolek, które zostały wcześniej zmienione ręcznie.

Pomysł 1

Myślałem o użyciu pętli For i iteracji każdego komponentu na moich formularzach i ustawieniu czcionki w ten sposób, na przykład:

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;

Ale robienie tego wydaje się bardzo bałaganiarskie, będzie to również znaczna ilość kodu dla prostego zadania.

Pomysł 2

Wiem, że mógłbym ręcznie zmieniać czcionki w czasie projektowania, jeden po drugim, dla każdej kontrolki, ale z kilkoma formularzami, aby przejść przez to, może to zająć trochę czasu i nawet wtedy mogłem przegapić kontrolę.

Pomysł 3

Podobnie jak w przypadku idei 2, innym sposobem może być wyświetlenie formularza jako tekstu (DFM) i znalezienie i zastąpienie czcionki w ten sposób.

Zasadniczo dążę do spójności w mojej aplikacji, a posiadanie jednej czcionki używanej w całym to, co chciałem osiągnąć.

Czy brakuje mi tutaj czegoś zupełnie oczywistego, czy to, co próbuję zrobić, jest zbyt trudne do wykonania?

questionAnswers(3)

yourAnswerToTheQuestion