J'essaie d'itérer tous les contrôles d'un formulaire et d'activer le lissage des polices ClearType. Quelque chose comme ceci:Mise à jour des polices récursivement sur un formulaire Delphi
procedure TForm4.UpdateControls(AParent: TWinControl);
var
I: Integer;
ACtrl: TControl;
tagLOGFONT: TLogFont;
begin
for I := 0 to AParent.ControlCount-1 do
begin
ACtrl:= AParent.Controls[I];
// if ParentFont=False, update the font here...
if ACtrl is TWinControl then
UpdateControls(Ctrl as TWinControl);
end;
end;
Maintenant, est-il un moyen facile de vérifier si ACtrl
ont une propriété Font
pour que je puisse passer le Font.Handle
à somethink comme:
GetObject(ACtrl.Font.Handle, SizeOf(TLogFont), @tagLOGFONT);
tagLOGFONT.lfQuality := 5;
ACtrl.Font.Handle := CreateFontIndirect(tagLOGFONT);
Merci à l'avance.
Ah oui, un peu de magie RTTI :) Merci! – ciscocert
Dans ce cas, vous souhaiterez peut-être itérer toutes les propriétés de type TFONT, plutôt que simplement celle appelée "Police". Certains contrôles ont plusieurs propriétés de police, par exemple pour l'en-tête et le corps dans les listes. – Roddy