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 :

[TLabeledEdit] Problème de typographie : les jambes des lettres descendantes sont tronquées [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 159
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 159
    Par défaut [TLabeledEdit] Problème de typographie : les jambes des lettres descendantes sont tronquées
    Bonjour,

    tout est dans le titre et j'ai farfouillé dans lazarus/Version/ide/*.lpi (ça va vite il n'y en a que trois) sans rien trouver.

    À partir de là, je ne sais plus trop quoi faire, regardez dans l'inspecteur d'objets comment je vois ce défaut :
    Nom : jambages_tronqués.png
Affichages : 316
Taille : 8,6 Ko

    Et dans un programme, là, c'est avec un TLabeledEdit où je ne peux pas définir la hauteur de la zone du label ni son layout, même si l'Inspecteur d'objets me les montre :
    Nom : jambages_tronqués-2.png
Affichages : 214
Taille : 2,4 Ko

    La récapitulation :
    Nom : 4tlabelededit.png
Affichages : 237
Taille : 15,4 Ko

    Une idée pour corriger ça ? (dans l'inspecteur d'objets ça n'est pas trop grave, dans l'ihm c'est dramatique).
    Une astuce pour autoriser la prise en compte des modifs dans l'inspecteur d'objets m'irait bien, genre passer de private à public ou similaire ou qqchse dans ce genre.

    Merci et bon week-end,

    Debian / Gtk 2.8 / FPC 3.2 Laz 2.0.12

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 140
    Par défaut
    Ah oui c'est embêtant.

    Est-ce que cela arrive avec d'autres fontes ?

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 159
    Par défaut
    Citation Envoyé par circular17 Voir le message
    Ah oui c'est embêtant.

    Est-ce que cela arrive avec d'autres fontes ?
    Hélas oui, et il semblerait que ça concerne le TLabel également :

    Nom : 4fontsdifférentes+2labels_v2.png
Affichages : 204
Taille : 20,2 Ko

    Et surprise, on peut changer la taille de la police du EditLabel.

    EDIT : PS : suis-je le seul à subir cette engeance ?

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 249
    Par défaut
    Hello,
    le problème est soulevé ici dans le forum anglophone principal de Lazarus. Le gtk2 est de moins en moins compatible avec les versions récentes d'Ubuntu qui s'orientent plutôt vers GTK3 (version GTK3 de Lazarus inexploitable car remplie de bugs) et GTK4. L'alternative qui me semble la meilleure est d'utiliser QT5 qui permet d'avoir des IHM similaires sous les différents O.S.
    Et pas de problème de jambage sous Ubuntu 20.04 Lazarus 2.0.6 QT5 :

    Nom : LazJambageQT5.PNG
Affichages : 198
Taille : 7,2 Ko

    Ami calmant, J.P

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 159
    Par défaut
    Bonjour,

    merci pour le lien, il s'y trouve des choses très intéressantes, genre
    I wrote a bugreport but nobody cares.
    source

    ainsi que l'idée de la Height à 18 pour-les-labels (à 16 ça fonctionne aussi mais ne prenons pas de risques) qui permet d'avoir les empattements visibles, exemple avec les 2 TLabel en haut :
    Nom : label-height18.png
Affichages : 193
Taille : 20,5 Ko

    mais aussi le fait que plein d'environnements sont impactés et plein ne le sont pas, allez comprendre.

    Malheureusement pour moi, il y a longtemps de ça j'avais découvert une combine pour dériver d'un compo standard un autre compo hérité du standard et dont on pouvait modifier une (ou des) propriété(s) en la(les) redéfinissant dans une nouvelle unité, mais impossible de remettre la main dessus...

    Et je ne suis pas très chaud pour basculer en Qt, ma dernière tentative ayant été assez désagréable.

    D'un autre côté, le post du lien date de fin 2021, peut-être qu'"ils" vont finir par corriger le défaut ?

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 159
    Par défaut
    Bonsoir,

    comme j'avais un peu de temps à perdre, j'ai farfouillé ici et là et j'ai découvert la fonction AdjustFontForOptimalFill, qui s'applique au TLabel et qui, comme son nom l'indique, va adapter la font à la taille du container.

    Démonstration avec le haut de la form de test, où j'ai réduit la hauteur des labels à 10 :
    Nom : avant_clic.png
Affichages : 175
Taille : 8,1 Ko

    Le bouton AFFOF contient le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      label1.OptimalFill:=True;
      label2.OptimalFill:=True;
      if label1.AdjustFontForOptimalFill then ShowMessage('AFFOF');
      if label2.AdjustFontForOptimalFill then ShowMessage('AFFOF');
    end;
    Je le clique et voilà :
    Nom : après_clic.png
Affichages : 179
Taille : 8,5 Ko

    Mais attention ! Le problème des jambages tronqués est toujours là, et je n'ai pas vu les ShowMessage, contrairement à ce que raconte l'aide, aide qui présente le même défaut de jambages tronqués, j'en ai encadré certains :
    Nom : jambages-tronqués-dans-laide.png
Affichages : 193
Taille : 114,0 Ko

    On n'est pas sorti de l'auberge…

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 159
    Par défaut
    Tiens, pour une fois ce n'est pas moi qui ai écrit ce code qui produit un rendu pour le moins catastrophique :

    Nom : underscore_invisible_à_droite.png
Affichages : 164
Taille : 58,3 Ko

    Le nombre de fois où je me suis pris les pieds dans le tapis, pensant que l'objet s'appelait Frame1 alors que c'est Frame1_1, c'est quelque chose...

    Bon, je dis ça je dis rien, je me doute bien que ça ne sera jamais corrigé, alors faites attention.

    EDIT :
    Au fait, quelqu'un sait comment faire réapparaitre ces informations, en bas de l'inspecteur d'objets, qui ont disparu sans que je sache comment ni pourquoi...
    Nom : jambages_tronqués.png
Affichages : 316
Taille : 8,6 Ko

    Merci,

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 159
    Par défaut
    Yep !

    Si je me sens le courage, je vais probablement poster ça chez Lazarus (si je retrouve mes identifiants, tellement peu utilisés...) :

    +++++++++++++++++++++++++++++++++++++++++++
    Descending letters are truncated in the EditLabel of a TLabeledEdit

    Starting with a TLabeledEdit on a TForm and a TButton below for increasing the height of the font of theEditLabel text, here are the lines of code I've used :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Caption := 'EditLabel.Font.Height = ' + intToStr(LabeledEdit1.EditLabel.Font.Height);
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      LabeledEdit1.EditLabel.Font.Height := LabeledEdit1.EditLabel.Font.Height+1;
      Caption := 'EditLabel.Font.Height = ' + intToStr(LabeledEdit1.EditLabel.Font.Height);
    end;
    Then F9, and click the button, here it goes :
    Nom : EditLabel_problem.gif
Affichages : 147
Taille : 190,1 Ko

    Comments :
    Little Height sizes (6 7 8 9) are really bad !

    From size 0 (the default) to size 33 (not tried higher), only 3 Heights are fine : 22, 30 and 31.

    And looking carefully, you'll notice that with Height 1 the text is located at the top of the EditLabel, which is a wrong place, even if text is not readable.

    And I'm not sure the Layout is working fine (not noticed any change when playing with values)

    Context is Debian 11.3, Gtk 2.24, FPC 3.2 Lazarus 2.0.12
    +++++++++++++++++++++++++++++++++++++++++++
    Qu'est-ce que vous en pensez ?

    Et ça serait bien que des gens avec la toute dernière 2.2.2 fassent ce petit test, des fois que ça soit corrigé...

    Merci,

  9. #9
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 940
    Billets dans le blog
    6
    Par défaut
    You're right !
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 159
    Par défaut
    Bonne nouvelle !

    Je viens de tester dans une machine virtuelle (même os que le host) avec un Laz 2.2.0 et ça fonctionne parfaitement,

    Une sacré épine ôtée de mes pieds meurtris,

    Par contre, le canard est toujours vivant en ce qui concerne l'aide : comparez les "g" à gauche avec ceux à droite...
    Nom : canard_still_alive.png
Affichages : 136
Taille : 18,4 Ko

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/04/2015, 13h27
  2. [Débutant] Problème pour retrouver les index des contrôles ajoutés dynamiquement
    Par BasicZX81 dans le forum VB.NET
    Réponses: 10
    Dernier message: 04/09/2012, 22h03
  3. Supprimer les accents des lettre
    Par cortex024 dans le forum C#
    Réponses: 11
    Dernier message: 08/12/2011, 17h29
  4. Réponses: 5
    Dernier message: 29/10/2009, 12h25
  5. Réponses: 0
    Dernier message: 28/10/2009, 15h10

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