Bonjour,
Est-ce que quelqu'un connaitrait un équivalent de ce composant, qui permet de choisir une police dans une ComboBox remplie par toutes les polices disponibles.
Merci.
Bonjour,
Est-ce que quelqu'un connaitrait un équivalent de ce composant, qui permet de choisir une police dans une ComboBox remplie par toutes les polices disponibles.
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ComboBox1.Items.Assign(Screen.Fonts);
ensuite avec la propriété Style de la combobox (csOwnerDrawFixed ou csOwnerDrawVariable) on peu déssiner la police dans la combobox grace à l'evenement OnDrawItem.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer; ARect: TRect; State: TOwnerDrawState); var CBX : TComboBox; FNM : string; begin CBX := (control as TComboBox); FNM := CBX.Items[index]; CBX.Canvas.FillRect(ARect); CBX.Canvas.Font.Name := FNM; CBX.Canvas.TextRect( ARect, ARect.Left + 2, ARect.Top + 2, FNM); end; procedure TForm1.FormCreate(Sender: TObject); begin ComboBox1.Style := csOwnerDrawVariable; ComboBox1.ItemHeight := 21; ComboBox1.Items.Assign(Screen.Fonts); end;
[ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
Ma messagerie n'est pas la succursale du forum... merci!
Merci docteur !
Je vais bien vite faire un composant qui fasse cela tout seul...
bon code alors
n'oublie pas d'intercepter les messages WM_FONTCHANGE dans ton composant pour qu'il se "rafraichisse" automatiquement quand des polices sont ajouté ou supprimé du système.
[ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
Ma messagerie n'est pas la succursale du forum... merci!
C'est possible sous Linux, ça ?
Dans l'ensemble, tous les messages fonctionnent aussi sous nux
mmm en fait, dans Delphi, Screen.Fonts appel la méthode privée GetFont qui remplie à la volée la liste...
[ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
Ma messagerie n'est pas la succursale du forum... merci!
Bonjour,
J'ai juste un problème, qui est que l'assignation d'une police (valide, prise dans la liste) à un Canvas ne semble pas avoir d'effet sous Lazarus-0.9.28-2 / Linux.
Par exemple, pour reprendre la suggestion de Dr Who (mais aussi sur un essai plus simple) :
Ca marche bien en assignant la même police à un TEdit, et aussi sous Delphi 2007. Je ne peux pas essayer avec Lazarus/Windows pour l'instant car le PC où il est installé est en carafe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3Canvas.Font.Name := FNM; Canvas.Invalidate; //provoquant re-paint
Ca marche, chez vous ? Vous avez une idée ?
Merci.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager