IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Choisir une police ?


Sujet :

Lazarus Pascal

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 66

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Points : 50
    Points
    50
    Par défaut Choisir une police ?
    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.

  2. #2
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    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!

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 66

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    Merci docteur !
    Je vais bien vite faire un composant qui fasse cela tout seul...

  4. #4
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    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!

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 66

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    C'est possible sous Linux, ça ?

  6. #6
    Membre expérimenté
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Points : 1 688
    Points
    1 688
    Par défaut
    Dans l'ensemble, tous les messages fonctionnent aussi sous nux

  7. #7
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    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!

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 66

    Informations forums :
    Inscription : Septembre 2009
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    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) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Canvas.Font.Name := FNM;
    Canvas.Invalidate;
    //provoquant re-paint
    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.

    Ca marche, chez vous ? Vous avez une idée ?

    Merci.

Discussions similaires

  1. une fenetre de dialogue qui permet de choisir la police
    Par bracket dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 05/01/2009, 15h35
  2. [VB6] Permetre à l'utilisateur de choisir une Police
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 17/10/2005, 18h46
  3. Comment choisir une langue differente de la locale?
    Par julian_ross dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 01/03/2004, 18h08
  4. [Composants] TRichEdit: Une police pour chaque ligne
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/03/2003, 15h59
  5. [SWING][FONT] choisir la police par défaut
    Par narmataru dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 21/02/2003, 10h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo