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 :

Passage de TRadioGroup, TCheckGroup ou TGroupBox de 32 à 64 bits --> régression graphique [Lazarus]


Sujet :

Lazarus Pascal

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut Passage de TRadioGroup, TCheckGroup ou TGroupBox de 32 à 64 bits --> régression graphique
    Bonjour,

    j'ai découvert ça en migrant un vieux et parfait programme 32 bits (FPC 2.6 / Laz 1.4.0) vers FPC 3.2 / Laz 2.0.12 :
    en haut (Form2), tant qu'on reste dans les clous avec les valeurs par défaut, ça va.
    Mais en bas (Form1), en changeant dans l'IDE la couleur de la fiche et la couleur de la police des 3 objets posés sur la fiche, c'est la misère :

    Nom : groups_color_pb.png
Affichages : 291
Taille : 27,6 Ko

    Et je précise que ce problème n'existe pas en 32 bits.

    Une idée pour une solution ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  2. #2
    Membre actif
    Avatar de Jlmat
    Homme Profil pro
    Consultant en Ressources Humaines, Retraité passionné de programmation
    Inscrit en
    Avril 2008
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Ressources Humaines, Retraité passionné de programmation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 284
    Points : 287
    Points
    287
    Par défaut
    Coucou JP,
    Oui la migration n'est pas simple apparemment. J'ai lu quelque part qu'ils n'ont pas terminé l'écriture des bibliothèques afin qu'elles soient totalement compatible avec Delphi! Bon courage...
    Moi je reste en 32 bits pour l'instant...
    Personnellement j'essaye de réécrire le composant Groupe Radio dont je me sers souvent!
    Parce que je trouve que cela fait parti des Bases. Ils courent tous après le multiplateforme, mais ça doit bien compliquer leur tâche...
    J'espère que Lazarus nous proposera des versions stables...
    A+
    jlmat
    Je programme en Lazarus 3.2.2 sous windows 10 pro

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par Jlmat Voir le message
    Moi je reste en 32 bits pour l'instant...
    Oui mais sous Linux ça va devenir de + en + compliqué de rester en 32 bits…

    Citation Envoyé par Jlmat Voir le message
    Personnellement j'essaye de réécrire le composant Groupe Radio dont je me sers souvent !
    Pas sûr d'en avoir les compétences, d'autant plus que ça ne concerne pas le composant en soi mais plutôt le widgetset gtk-2, à un niveau bien plus bas, et j'ai vraiment autre chose à faire que de passer mon temps à étudier ce genre de code, il faudrait que je mette cette machine en prod', machine achetée il y a 13 mois et toujours pas opérationnelle à 100% à cause de ce genre de c0nn3r13s !
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Bonjour,

    J'ai posté chez Lazarus, avec de nouvelles images.

    En ce qui me concerne, j'ai un peu fouillé le code à coups de ctrl-clics, et ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    checkgroup dans extctrls vient de TCustomCheckGroup qui vient de TCustomGroupBox qui vient de stdctrls.TWinControl
    radiogroup dans extctrls vient de TCustomRadioGroup qui vient de TCustomGroupBox qui idem dessus
      groupbox dans stdctrls vient de TCustomGroupBox   qui vient de stdctrls.TWinControl...
    Ces 3 objets ont donc le même ancêtre, TWinControl, qui vient de TControl qui vient de controls.TLCLComponent qui vient de LCLClasses.TComponent qui vient de classesh.inc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      TLCLComponent = class(TComponent)
      private
        FWidgetSetClass: TWSLCLComponentClass; --> WSLCLClasses: TWSLCLComponentClass = class of TWSLCLComponent; --> TWSLCLComponent = class(TObject)
      public
        constructor Create(TheOwner: TComponent); override;
    et après je suis largué, vu la quantité de fichiers dans le dossier lcl/interfaces.

    Coup de gueule : quand on regarde les sources de Lazarus, dans le dossier lcl/interfaces/gtk2 on trouve un fichier TODOS.txt daté de 2008 ! ! !
    Ne pas s'étonner que certaines choses fonctionnent mal.

    Mais pour mon souci, je n'ai pas trouvé la routine de dessin concernée.
    J'ai fait un autre micro-test, il n'y a pas de problème avec Object.Color := clDefault; mais toutes les autres couleurs ajoutent une ligne de 2 pixels de haut sous la caption, ça se voit bien avec le zoom, à voir dans la 4e image du lien donné.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Bonjour,

    je ne sais pas où on va avec ces histoire de gtkX mais on y va, en vrac !

    Pour essayer d'y voir clair (puisque personne ne me répond d'une manière constructive, là-bas comme ici1), j'ai tenté une compil + exécution (sans aucun code, je le rappelle, toutes les propriétés sont définies dans l'inspecteur d'objets) avec gtk3, et voilà le résultat (à gauche design, à droite running) :

    Nom : gtk3_design-running.png
Affichages : 154
Taille : 57,3 Ko

    Et on constate que si le défaut de "barrage" de la caption des xxxBox a disparu, on gagne la perte de la couleur du panel de droite EDIT , ainsi qu'une diminution de sa taille, alors qu'il est bêtement alClient. ça doit être autre chose car le panneau gauche est alLeft et lui aussi est diminué. /EDIT

    C'est pas tout : j'ai également tenté le widgetset QT5 puisque le menu Projet / Options du projet / Options du compilateur / Configuration et cible et suivre le lien en bas de la fenêtre me le permet mais là, sur un coup de Maj-F9 tout ce que je gagne c'est le classique "Error while linking" et ça me gonfle de passer des heures à chercher quel fichier peut bien manquer et où, d'autant plus que dans la vieille machine ça fonctionne.

    Pour en revenir à mon embrouille gtk2/gtk3, je me demande s'il ne faudrait pas que je recopie certaines parties du code du fichier concerné version gtk3 vers mon projet gtk2 (puisque les changements de taille non prévus et non maîtrisables excluent d'office gtk3 en prod'), mais quel est ce fichier ?
    Thats' the question.

    J'ai fait d'autres essais avec ParentColor des TPanels, c'est la pagaille :
    de g à dt, gtk3 en mode design (j'ai un peu changé les couleurs [fiche à clSkyBlue et panel gauche à clCream] et l'alignement du panel droit à alNone), gtk3 en mode running, et gtk2 en mode runnning.
    Nom : gtk3design-running-gtk2running_50pc.png
Affichages : 141
Taille : 40,6 Ko
    J'affiche à 50 %, ça suffira pour voir que gtk3 est à la ramasse, en ce qui concerne les tailles et les couleurs.

    ---
    1: dans ma naïveté j'avais pensé que certains sous Linux auraient pu tenter la même manip, qui doit prendre 1 minute à tout casser : Nouveau / Projet / Application, poser sur la fiche qui se présente un GroupBox ou similaire, changer sa couleur et la taille de sa font (en 24 c'est impressionnant) et c'est tout, et regarder : même pas besoin de faire F9 :
    Nom : fiche_fuchsia-font24.png
Affichages : 202
Taille : 10,4 Ko

    Et nous dire, en précisant le widgetset.
    Ou alors tout le monde est en vacances ?
    Merci,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    Salut

    J'ai pas Linux... Va falloir un jour que j'installe ça sur une machine pour pouvoir tester.

    Cela ressemble fort à une inversion : le libellé semble dessiné avant le trait alors que celui-ci ne devrait pas et il semble aussi y avoir peut-être un problème de transparence.

    Tu n'as pas un moyen de forcer le dessin du caption histoire de voir si il se redessine correctement ?

    PS : j'ai trouvé un patch pour forcer la longueur d'un caption ICI, peut-être que cela résoudra ton souci si le patch n'est pas dans ton source.
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Bonsoir,

    Citation Envoyé par anapurna Voir le message
    le libelle semble dessiné avant le trait alors que celui-ci ne devrait pas
    et il semble aussi y avoir peut-être un problème de transparence
    Tu n'as pas bien regardé : il y a deux traits ! L'un au-dessus de l'autre, là où il ne devrait pas y en avoir,
    EDIT :
    Nom : zoom_sur_1.png
Affichages : 180
Taille : 913 octets
    La chaine GroubBox1 zoomée très fort sur la fin du 1 : on distingue 2 traits gris clair de 1 pixel l'un au-dessus de l'autre, c'est ça qui est là à tort !
    Ensuite on a un trait gris-rose de 1 px surmonté d'un autre rose foncé de 1 px aussi, c'est le début du cadre après le texte./EDIT


    Citation Envoyé par anapurna Voir le message
    tu n'as pas un moyen de forcer le dessin du caption histoire de voir si il se redessine correctement ?
    Je ne vois vraiment pas comment faire ça.


    Citation Envoyé par anapurna Voir le message
    PS : j'ai trouvé un patch pour forcer la longueur d'un caption ICI
    peut-être que cela résoudra ton souci si le patch n'est pas dans ton source
    Euh, la discussion remonte à 2014, et le dernier post indique que le patch est inclus dans la 1.2 donc en 2.0.12 je suis tranquille de ce côté-là.

    Mais du coup j'ai le nom d'un fichier (lcl/interfaces/gtk2/gtk2wsstdctrls.pp), j'y ai jeté un coup d'œil, hélas je n'y comprends pas grand chose…
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #8
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    Salut

    Wous Windows il n'y a pas ce problème de transparence et donc de double ligne :

    Nom : Capture laz1.PNG
Affichages : 154
Taille : 2,1 Ko

    M'est d'avis qu'il faut sûrement regarder de ce côté-là.
    Je le répète, je n'ai pas lazarus sous GTK donc je ne peux pas chercher plus avant.
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Oui, il va falloir comparer le code de gtk2wsstdctrls.pp entre les versions 1.4.0 et 2.0.12, mais c'est pas mon boulot !

    Et si je faisais partie de la bande de dev's, d'abord je testerais ce que dit le monsieur (moi !) avec la même version, et si confirmé, je testerais avec la 2.0.10 et remonter en version jusqu'à ne plus avoir le bug, puis comparer cette dernière sans bug et la suivante avec.
    Y en aurait pas pour longtemps mais moi, je n'ai que 1.4.0 et 2.0.12, et pas trop les compétences…

    Je sens que je vais poster sur le bug tracker de lazarus/freepascal puisque leur forum a l'air inefficace.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Bonjour,

    Hé bien non, le problème n'était pas dans les codes Lazarus / FreePascal…

    Voilà ce que je viens de poster sur leur forum :
    Hi !

    Linux drives me nuts !

    Interactions between theme's engine and other mysterious stuff ended up with problem solved, simply by changing a choice in Debian Main Menu / Preferences / Parameters' Personalization / Interface : I had Crux selected, it's now fine with Clearlooks.
    Go figure…

    I apologize for the inconvenience.

    Regards,
    Y a de quoi se l'attraper et se la mordre, hein !

    Bref, quand même et comme dit in english, désolé pour le dérangement.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  11. #11
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    Salut

    Cela veut dire que tu n’étais pas en GTK2 ?
    Va falloir vraiment que je me penche sur Linux.
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Citation Envoyé par anapurna Voir le message
    cela veut dire que tu n’était pas en GTK2 ?
    Ben si, justement.
    Qu'est-ce qui te fait poser cette question ?

    Et, aparté, je me marre (jaune !) avec cette histoire de gtkX car j'ai découvert gtk2 il y a très longtemps (20 ans ?), depuis "ils" ont pondu gtk3 qui arrive avec une armée de bugs et plutôt que de les corriger, ils attaquent gtk4 ! Je ne sais pas comment tout ça va finir…

    Citation Envoyé par anapurna Voir le message
    va falloir vraiment que je me penche sur linux
    Bon courage si tu ne connais pas…
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/12/2015, 10h26
  2. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  3. Pb BDE suite a passage en Windows 2000 pro
    Par ARIF dans le forum Paradox
    Réponses: 4
    Dernier message: 18/11/2002, 11h39
  4. [VB6]Passage par référence d'une prop. d'objet à une fct
    Par -gYs- dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 02/09/2002, 08h55
  5. Passage de parametre a une anim Flash 5
    Par debug dans le forum Intégration
    Réponses: 4
    Dernier message: 03/06/2002, 17h59

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