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 :

Machines maraboutées sous Linux/GTK2, bug insolvable


Sujet :

Lazarus Pascal

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut Machines maraboutées sous Linux/GTK2, bug insolvable
    Bonjour,

    m'en vais vous conter la misère découverte ce week-end, et une comme ça je n'avais encore jamais vu, et s'il y en a d'autres planquées dans des coins, faut pas s'étonner que des fusées explosent et que des voitures sans conducteur deviennent folles : je sens que l'avenir qui se prépare va être terrible...

    Soit une seule et unique bête fiche d'un petit programme ; sur cette fiche un TPageControl avec 3 TTabSheets ; sur le 2e onglet (parce que c'est comme ça et, non, je n'ai pas testé sur les autres onglets) deux TMemos et d'autres trucs (TGroupBox, TRadioGroup, TButton, TCheckbox, TPanel contenant un tas de trucs dont un TMemo aussi, on va voir pourquoi je précise ce point), bref, du bazar habituel.

    Pour faciliter l'utilisation des onglets et comme beaucoup de choses se passent au clavier (déplacement du curseur des TTrackBars, entre autres), j'ai implémenté un événement OnKeyDown lié à la fiche (oui, avec KeyPreview à True ) et en utilisant donc les touches "s", "d" ou "p", je peux basculer sur le 1er, le 2e ou le 3e onglet. Fastoche et bien sympatoche !

    L'un des deux TMemos du 2e onglet me servait lors du debug à afficher des résultats de calcul ; maintenant que tout tourne bien, je n'en ai plus besoin et j'ai donc commenté les lignes de code y afférant et passé la propriété "Visible" de l'objet à "False". J'aurais pu le supprimer mais en cas de besoin, ça va plus vite de juste basculer la propriété, donc bon, je l'ai gardé.

    Et c'est ensuite au runtime qu'on rigole : si je bascule sur le 2e onglet avec la touche "d", rien à signaler tout est parfait, mais si j'y accède par la souris, ben, les deux TMemos posés directement sur cet onglet deviennent, vous l'avez compris, visibles, hé oui !

    Regardez la copie d'écran : à gauche l'inspecteur d'objet (en haut l'arbo des objet avec un TMemo sélectionné, dessous les propriétés de l'objet), et à droite pendant l'exécution le TMemo bien visible car j'ai utilisé la souris.

    Nom : memo_non_visible.png
Affichages : 190
Taille : 17,6 Ko

    Un truc qui va faire plaisir à Jon : le problème n'existe pas sous Windows (XP pour le moment, pas testé ailleurs), d'où le titre bien orienté.

    Une machine Linux tourne sous Laz 1.4 / FPC 2.6 et l'autre sous Laz 1.6rc1 / FPC 3.0 mais je ne pense pas que ça ait beaucoup d'importance car ce matin, je faisais générer depuis la machine avec 1.6/3.0 et exécuter sur l'autre machine avec un résultat identiquement foireux.
    Les deux machines (l'une physique et l'autre virtuelle) exécutent à peu près le même Debian avec à peu près la même version de GTK2.

    Je vous laisse imaginer maintenant ce qui pourrait se passer en cas d'information importante affichée dans un Memo1 et masquée par l'affichage d'un Memo2 intempestif dont on a prévu qu'il ne soit pas visible mais qu'en fait il est bien là...

    J'ai un peu la haine, ce matin, surtout si je précise que tous les autres objets avec Visible à False sur l'onglet concerné ne s'affichent pas, comme prévu.
    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 extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 382
    Points : 9 741
    Points
    9 741
    Par défaut
    Non, rien.
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  3. #3
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Points : 1 884
    Points
    1 884
    Par défaut
    Salut JP,

    As-tu essayé ceci pour ton memo ? Laisser Visible true dans l'EDI, et coder Visible false p.ex dans l'événement OnShow de ta fiche.
    Et toujours exécuter le programme en dehors de l'EDI.

    Cordialement
    Thierry

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Salut Thierry,

    C'était bien tenté ; j'ai suivi scrupuleusement tes directives, mais quand ça veut pas, ça veut pas : les deux mémos sont non seulement parfaitement visibles après un clic sur le tab du 2e onglet, mais également en appuyant sur la touche "d"...

    Retour en arrière (propriété Visible à False dans l'EDI, rien dans FormShow) et au moins ils ne sont pas visibles en appuyant sur "d", même si c'est complètement mystérieux.

    Ah, pour faire plaisir à Jon, testé cet aprème chez des amis sous 7, paniproblèm comme on dit sous les Tropiques
    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
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Points : 1 884
    Points
    1 884
    Par défaut
    Un vrai mystère ton truc !!!

    Et si dans l'événement OnCreate de la fiche, tu codais :
    Si tu le vois encore, alors là...

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Bien joué !

    Par contre, l'autre mémo, qui n'est pas visible au lancement du programme mais peut le devenir si l'utilisateur clique sur le bouton fait pour, ben... ça ne fonctionnait plus, du coup.

    Donc pour celui-ci, lui et son bouton de commande dans un TPanel mis juste exprès pour eux deux et ça le fait bien aussi !

    Presque je cliquerais sur ,
    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

  7. #7
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 950
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 950
    Points : 9 279
    Points
    9 279
    Par défaut
    hello,
    Jipété je n'arrive pas à reproduire ton problème sous Ubuntu 14.04 LTS 64 bits Lazarus 1.6 FPC 3.0. C'est sans doute que mon projet est trop simple (3 tabsheets avec 2 mémos dans le 2ème tabsheet) et dans ce cas il faudrait que tu nous mettes en pièce jointe ton projet.
    Ami calmant, J.P (pas té)
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Yep !

    Tu te moqueras pas, hein ? J'ai pas fait le ménage dans les sources, c'est un vrai bazar de machins en commentaires par ci par là, des notes perso, presque du roman parfois...
    Il y a des vieux trucs qui traînent, y a que moi qui puisse s'y retrouver, là-dedans !

    Courage et merci, et comme toi, je pense que c'est lié à la quantité d'objets du projet, et à leur imbrication (une quantité de panels qui embarquent des panels qui en embarquent d'autres, et d'autres objets, bref, le bronx !)
    colorjob.zip

    D'un autre côté, ne perds pas de temps avec ça, Thierry ayant trouvé une solution de contournement.
    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

  9. #9
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 950
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 950
    Points : 9 279
    Points
    9 279
    Par défaut Timer marabouteur
    hello,
    bon Jipété, il semblerait que cela soit ta procédure du timer TimerPickTimer qui pose problème.
    Car quand je mets ceci au début de ta procédure (c'est à dire que je n'exécute pas ce qui est dedans) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    begin
      TimerPick.Enabled := False;
      exit;
    Le mémo Memo2 reste bien invisible lorsqu'on clique sur l'onglet TabSheet2.

    Ami calmant, J.P (pas té)
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Salut, djipépaté,

    et merci d'avoir passé du temps là-dessus.

    Pour qu'on soit bien d'accord, quand tu écris
    Citation Envoyé par jurassic pork Voir le message
    Car quand je mets ceci au début de ta procédure (c'est à dire que je n'exécute pas ce qui est dedans) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    begin
      TimerPick.Enabled := False;
      exit;
    ça veut dire que si tu enlèves cet exit; le Memo2 redevient visible (à tort), on est bien d'accord ?

    C'est quand même hallucinant car cette procédure de Timer n'est appelée que lorsqu'on bascule sur l'onglet 3 (pour faire son boulot de ColorPicker) ou sur l'onglet 1 (une astuce pour mettre le focus sur un TrackBar sans utiliser un autre Timer : y a déjà celui-là, je l'utilise en OneShot pour cette affaire de focus, franchement pas de quoi fouetter un chat.) Et quand je bascule sur l'onglet 2, il est désactivé dans l'événement "Change" du PageControl.

    Mais le plus rigolo, c'est que si je suis ta suggestion et que je rajoute cet exit; à l'endroit où tu l'as suggéré, dans mon cas ça ne change rien : le Memo2 est visible.

    Une dernière manip : à partir de l'inspecteur d'objet, j'ai supprimé l'attache entre le Timer et son événement OnTimer, j'en conclus que c'est comme s'il n'y avait plus de Timer, d'accord ? Et que crois-tu qu'il arrivât ? Le Memo2 est toujours visible...

    Perds pas de temps là-dessus (d'autant plus que les calculs de dégradés sont un peu foireux, faut que je m'y repenche).

    Bonne journée, ou bonne soirée ou bonne nuit, je ne sais pas trop où tu es mais je remarque que tu postes toujours à des heures où en France continentale on est plutôt couché,
    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 BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Bonsoir je passais par là ; et un truc bête mais qui sait ? a tester si tu met également la propriété Enabled à False, le résultat est le même ?

    Bonne fin de soirée
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Bonjour, et désolé de ne pas avoir répondu hier soir, mais j'étais complètement à bloc sur un autre truc assez perturbant et n'ai pas vu ta réponse.

    Citation Envoyé par BeanzMaster Voir le message
    si tu mets également la propriété Enabled à False, le résultat est le même ?
    Mais bien sûr, hélas.

    La seule solution, pour le moment, c'est de rajouter, dans le FormCreate, if not Memo2.Visible then Memo2.Parent := nil;.
    Comme ça je conserve la compatibilité de fonctionnalité avec l'inspecteur d'objets de l'EDI et hop, tutti va bene !

    Bonne journée,
    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

Discussions similaires

  1. JCheckbox icones persos - Bug sous linux mais pas sous Windows
    Par Hemophilius dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 04/11/2011, 15h34
  2. bug sous win 7 / ok sous linux
    Par Quatre dans le forum Général Python
    Réponses: 10
    Dernier message: 27/01/2011, 07h25
  3. [Bug] Problème accent sous Linux
    Par millie dans le forum Millie
    Réponses: 6
    Dernier message: 12/12/2008, 23h32
  4. Java virtual machine non détectée sous linux
    Par Battant dans le forum Général Java
    Réponses: 3
    Dernier message: 31/07/2008, 20h16
  5. Bug LoadVars sous Linux
    Par Chouquette dans le forum Flash
    Réponses: 2
    Dernier message: 05/06/2007, 20h50

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