¿Existe alguna manera rápida y efectiva de aplicar una fuente global para usar en un proyecto?Consistencia de fuentes en todo el proyecto?
Con esto quiero decir me gustaría establecer un nombre de fuente específica que todos los controles en mi proyecto utilizarán como TButton, TEdit, etc. TLabel
Normalmente Ajuste de la fuente para el formulario en lugar de una específica control cambiará todos los controles de ese formulario a la fuente especificada.
Hay un ligero problema con esto, sin embargo, si ha cambiado manualmente una fuente en un control específico, entonces al configurar la fuente mediante el formulario ya no se actualizarán los controles que se han cambiado previamente manualmente.
Idea 1
Yo estaba pensando en usar un bucle y la iteración a través de cada componente en mis formularios y ajuste de la fuente de esta manera, como por ejemplo:
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;
Pero haciendo esto parece muy desordenado, también será una cantidad considerable de código para una tarea simple.
Idea 2
Sé que podría cambiar manualmente las fuentes en tiempo de diseño, uno por uno para cada control, pero con varias formas de pasar a través de esto podría llevar tiempo e incluso entonces puede ser de las llamadas perdidas de un control .
Idea 3
similares a Idea 2, otra forma podría ser para ver el formulario como texto (DFM) y Buscar y reemplazar la fuente de esa manera.
Básicamente voy por la coherencia dentro de mi aplicación, y tener una fuente utilizada en todo es lo que estaba buscando lograr.
¿Me falta algo completamente obvio aquí, es lo que estoy tratando de hacer demasiado para una tarea así?
Si cambia manualmente la fuente del control, también establece su propiedad 'ParentFont' en' False'; configurarlo 'True' para devolver la fuente predeterminada (principal) – kludg
Sneaky, ¡no me di cuenta de que esta propiedad se había cambiado! –
Antes de crear cualquier formulario, establezca 'Application.DefaultFont.Name: = 'MS Sans Serif';' Con el ParentFont configurado en verdadero en sus formularios como señala Serg. Para establecer la fuente en los cuadros de diálogo del mensaje, configure 'Screen.MessageFont.Name'property. –