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 :

TEdit, TLabel et BaseLine


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut TEdit, TLabel et BaseLine
    Bonjour,

    la notion de BaseLine est-elle "associable" en Lazarus (sous Linux) avec un champ d'affichage de texte (TEdit ReadOnly, TLabel....) ? L'objet de la recherche étant d'aligner verticalement (sur une même ligne) le contenu de plusieurs TLabels par exemple avec des tailles de police différentes.

    Merci.

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 134
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 134
    Par défaut
    Bonjour,
    Citation Envoyé par selzig Voir le message
    la notion de BaseLine est-elle "associable" en Lazarus (sous Linux) avec un champ d'affichage de texte (TEdit ReadOnly, TLabel....) ?
    Réponse rapide : non, puisque cette propriété (des polices) n'est pas publiée par l'objet Font. Est-elle même simplement calculée ? J'en doute, mais ça peut se faire, en prenant en compte la hauteur d'œil de la police à la taille choisie + la hauteur de l'ascendant + la hauteur du descendant + les paddings haut et bas.


    Citation Envoyé par selzig Voir le message
    L'objet de la recherche étant d'aligner verticalement (sur une même ligne) le contenu de plusieurs TLabels par exemple avec des tailles de police différentes.
    D'autres (dans d'autres environnements) s'y sont essayés : lecture1, lecture2, lecture3
    Et un autre a essayé d'aligner par le centre : lecture

    Bon courage (mais sujet intéressant !)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    j'ai pensé à une autre approche peut-être plus "exotique". On prend un caractère simple genre . ou _. On le dessine dans des Canvas temporaires avec les différentes Fontes utilisées en prenant un fond blanc et une couleur noire. Puis à partir du bas du Canvas temporaire, on "recherche" le premier pixel noir. Sa position définit la baseline et donc permet de déterminer le correctif pour l'alignement.

    C'est le on "recherche" qui pour l'instant me paraît abstrait.

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 134
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 134
    Par défaut
    Citation Envoyé par selzig Voir le message
    'ai pensé à une autre approche peut-être plus "exotique". On prend un caractère simple genre . ou _. On le dessine dans des Canvas temporaires avec les différentes Fontes utilisées en prenant un fond blanc et une couleur noire. Puis à partir du bas du Canvas temporaire, on "recherche" le premier pixel noir. Sa position définit la baseline et donc permet de déterminer le correctif pour l'alignement.

    C'est le on "recherche" qui pour l'instant me paraît abstrait.
    Perso je trouve ça un peu compliqué quand de simples additions et soustractions pourraient faire l'affaire : voir ici, et ensuite ici pour Linux sous Qt ; sous gtk il faut utiliser la librairie Pango et le drame, c'est que je n'ai trouvé aucune documentation pour Linux, pour savoir comment utiliser ces librairies.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Oui vous avez certainement raison... je préférerais opter pour la simplicité. Comme il ne s'agit que d'un affichage, j'ai immédiatement pensé dessin.

    Avec Lazarus, les "simples" additions et soustractions sur des polices ne font pas tout. Le placement "automatique" des textes dans les objets visuels me laissent perplexe notamment dans les Cells de TStringGrid où j'ai pas mal travaillé. J'ai rencontré des décalages inexpliqués... Je cherche une approche qui fonctionne à tous les coups sans avoir à ajouter d'incompréhensibles constantes pour le placement des textes dans les Rect qui, à terme, conduisent à une impossibilité de proposer une solution adaptée à tous les cas de figures "usuels".

    En les parcourant, j'ai vu en effet des travaux intéressants dans les liens que vous m'avez communiqués. Dès que j'aurai un peu de temps, je les testerai en grandeur "nature" pour mesurer leur caractère "universel". En attendant, par l'intermédiaire de ce forum, je collecte les "pistes".

    Merci pour votre aide.

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/04/2013, 12h45
  2. [TEdit][TListBox]Recherche instantanée
    Par SamDaKap dans le forum C++Builder
    Réponses: 3
    Dernier message: 19/11/2002, 21h31
  3. comment changer d'attribut de fonte dans un Tlabel?
    Par sb dans le forum Composants VCL
    Réponses: 3
    Dernier message: 21/08/2002, 16h53
  4. Coposant Tlabel
    Par Andry dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/08/2002, 09h41
  5. TEdit : selection du texte et autre fonction
    Par Odulo dans le forum Composants VCL
    Réponses: 5
    Dernier message: 01/08/2002, 14h27

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