Esiste un metodo rapido ed efficace per applicare un carattere globale da utilizzare in un progetto?La coerenza dei font nel progetto?
Con questo voglio dire vorrei impostare un nome di carattere specifico che tutti i controlli nel mio progetto utilizzeranno come TButton, TEdit, TLabel ecc
In genere l'impostazione del tipo di carattere per la forma piuttosto che una specifica il controllo cambierà tutti i controlli su quel Form per il Font specificato.
C'è un piccolo problema con questo però, se hai modificato manualmente un Carattere su un controllo specifico, quindi l'impostazione del Carattere tramite il Modulo non aggiornerà più quei controlli che sono stati precedentemente modificati manualmente.
Idea 1
Stavo pensando di utilizzare un ciclo For e iterazione attraverso ogni componente sulle mie forme e l'impostazione del carattere in questo modo, come ad esempio:
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;
Ma fare questo sembra molto disordinato, sarà anche una notevole quantità di codice per un compito semplice.
Idea 2
So che potrei modificare manualmente i caratteri in fase di progettazione uno per uno per ogni controllo, ma con diverse forme di passare attraverso questo potrebbe richiedere tempo e anche allora potrei di mancato un controllo .
Idea 3
Simile a Idea 2, un altro modo potrebbe essere quello di visualizzare il modulo come testo (DFM) e Trova e sostituisci il tipo di carattere in quel modo.
Fondamentalmente sto andando per la coerenza all'interno della mia applicazione, e che hanno uno dei caratteri utilizzata in tutto è quello che stavo cercando di raggiungere.
Mi manca qualcosa di completamente ovvio qui, è quello che sto cercando di fare eccessivo per un tale compito?
Se si modifica manualmente il carattere del controllo, si imposta anche la proprietà 'ParentFont' su' False'; impostalo 'True' per restituire il carattere predefinito (Parent) – kludg
Subdolo, non mi ero reso conto che questa proprietà si stava modificando! –
Prima di creare qualsiasi modulo, impostare 'Application.DefaultFont.Name: = 'MS Sans Serif';' Con ParentFont impostato su true nei moduli come indicato da Serg. Per impostare il carattere nelle finestre di dialogo dei messaggi, impostare la proprietà 'Screen.MessageFont.Name'. –