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

Composants VCL Delphi Discussion :

Modifier font + charset d'un HINT


Sujet :

Composants VCL Delphi

  1. #1
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut Modifier font + charset d'un HINT
    Bonjour à tous,


    tout est dans le titre... J'aurais besoin de modifier dynamiquement la police de caractères utilisée pour afficher un hint (ainsi que le charset, pour afficher des caractères cyrilliques, russes, japonais, ...)

    Une idée ?
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  2. #2
    Membre averti
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Points : 338
    Points
    338
    Par défaut
    Trés facile

    regardes ici, tu pouras t'en inspirer.
    http://delphi.developpez.com/sources...no40source0028

  3. #3
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    pas de souci

    ça marche pas mal comme truc, d'ailleurs merci beaucoup, mais j'ai un petit problème de scintillement avec ce hint personnalisé

    en fait, je le met à jour dans la fonction "OnMouseMove" d'un de mes composants, et avec le hint original je n'ai pas de problème d'affichage tandis qu'avec celui-là ça scintille un max:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure OnMouseMove(Sender:TObject; Shift:TShiftState;  X,Y:Integer); begin
    Hint:='quelque chose de dynamique';
    Application.ActivateHint(Mouse.CursorPos);
    ...
    est-ce qu'il y a possibilité d'appliquer un "Machin.DoubleBuffered:=true" quelque part ?
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    ha bin je viens de trouver...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoubleBuffered:=true
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  5. #5
    Membre averti
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Points : 338
    Points
    338
    Par défaut
    Alors ?

  6. #6
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Tout fonctionne maintenant... presque résolu

    mais je ne sais pas comment récupérer l'instance de "TMonHint" qui est utilisée lors d'un affichage !

    par exemple, j'aimerais changer la font du hint dynamiquement.... mais je n'arrive pas à récupérer de référence pointant sur le "TMonHint" utilisé, et donc je ne peux pas modifier la police...


    Une idée ?
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  7. #7
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Est-ce qu'il faut modifier la fonte une fois le hint affiché ? Ou avant son affichage ?

    Dans les deux cas tu peux mettre à jour une variable globale de type TFont pour garder la police à utiliser. Puis le mettre à nil lors de sa destruction.

    S'il faut changer la police après le dessin, il faudra garder l'instance en cours dans un variable à la fin de Create du hint :
    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
    Var DernierHint : TMonHint;
     
    Constructor TMonHint.Create(AOwner: TComponent);
    Begin
      Inherited Create(AOwner);
      // Create n'est surchargé que pour initialiser les variables
      FCreerRegion := False;
      DernierHint := Self;
    End;
     
    // le destructeur est à ajouter à la définition de la classe donnée dans mon source
    Destructor Destroy; Overrride;
    Begin
      DernierHint := Nil;
      Inherited;
    End;
    Il faudra ensuite créer un méthode pour redessiner le hint et l'appeler une fois la variable globale de type TFont mise à jour.
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  8. #8
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    ça roulle

    merci à vous deux
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modifier le CHARSET
    Par freud dans le forum Firebird
    Réponses: 5
    Dernier message: 21/06/2008, 15h11
  2. Font->Charset = GREEK_CHARSET : Pb
    Par influe dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/10/2007, 14h58
  3. [9.2.0.6] Modifier la charset de la base
    Par Cyborg289 dans le forum Oracle
    Réponses: 1
    Dernier message: 27/04/2006, 16h53
  4. Modifier Font d'une cellule dans Excel
    Par nmathon dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 27/05/2005, 14h42
  5. Modifier la police d'une "hint"
    Par emem dans le forum Langage
    Réponses: 3
    Dernier message: 14/06/2004, 07h19

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