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 :

Problème avec TMaskEdit sous Linux [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 134
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 134
    Par défaut Problème avec TMaskEdit sous Linux
    Bonsoir,

    Je n'ai jamais travaillé avec le TMaskEdit, et il se trouve que le programme que j'essaye de convertir depuis D3-7 (et disponible ici) en utilise deux.

    Le problème c'est que l'aide sous Lazarus est inexistante, et que le comportement du binaire (fourni avec les sources) pour Windows se lance correctement : les zones .Text sont bien remplies au runtime, mais sous Linux lorsque la mainform s'affiche, les zones sont vides !

    La chose qu'il a fallu que je mette en œuvre, c'est le remplacement des 2 TSpinButtons liés, puisque ce compo n'existe pas sous Laz, je les ai remplacés par des paires de TButtons configurés pour faire un boulot de Up-Down.

    J'ai regardé le code à la loupe, particulièrement le FormCreate, mais il n'y a rien dedans en relation avec ces TMaskEdit.
    La question est donc : pourquoi les zones .Text arrivent-elles vides au runtime sous Linux quand elles restent pleines sous Windows ?

    Un dernier point (peut-être une piste ?) : quand je force un nombre dans la zone .Text avec l'inspecteur d'objet, puis que j'enregistre le projet et que je sors, quand je le rouvre la zone .Text est vide !...
    Et pourtant, voilà le contenu du fichier .lfm à propos d'un TMaskEdit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      object MaskEditFactor: TMaskEdit
        Left = 267
        Height = 23
        Top = 96
        Width = 33
        CharCase = ecNormal
        MaxLength = 4
        TabOrder = 6
        OnChange = MaskEditFactorChange
        EditMask = '!9.99;1;_'
        Text = '1.00'
      end
    On voit bien que le .Text est correctement renseigné, mais il est vide à l'affichage de la form, en mode design tout comme au runtime.
    En fait, pour que la zone .Text soit remplie au runtime, il me faut vider la zone .EditMask. C'est normal, ça ? Rappel : je ne connais rien au TMaskEdit...

    Debian 32 bits / FPC 3.0 / Laz 1.6.2

    Merci,

  2. #2
    Membre Expert

    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
    Par défaut
    Salut JP.

    J'ai testé ton masque sous Mint.
    En supprimant le point d'exclamation, cela marche.
    EditMask = '9.99;1;_'

    Amicalement
    Thierry

  3. #3
    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
    Yop, Thierry !

    Merci à toi de tester :
    Citation Envoyé par ThWilliam Voir le message
    J'ai testé ton masque sous Mint.
    En supprimant le point d'exclamation, cela marche.
    EditMask = '9.99;1;_'
    Maintenant, je sens que ça va être un problème de widget ou une autre embrouille bas niveau (moi j'ai gtk2), parce que, regarde l'image, si ça fonctionne en designtime, ça foire en runtime...

    Nom : editmask_foireux.png
Affichages : 173
Taille : 10,1 Ko

    à gauche l'inspecteur de propriétés, à droite en haut la fiche en mode design (le "1" c'est moi qui l'ai mis dans la propriété text) et dessous le binaire en pleine exécution.

    J'ai l'impression qu'il va falloir que je me paluche à la mano des FormatString dans un bête TEdit, parce que je le sens très mal ce coup-là : ayant rajouté un bête bouton avec un bête ShowMessage(maskedit_de_test.text); que croyez-vous qu'il s'affiche ? Juste le point de séparation.
    J'arrête le prog, je regarde l'inspecteur de propriétés, la "Text" contient toujours le "1"...

  4. #4
    Membre émérite

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Par défaut
    que croyez-vous qu'il s'affiche ? Juste le point de séparation
    C'est normal puisque tu n'as entré aucune valeur dans le maskedit.
    A part ça à quoi sert ce ;1; ? ça marche très bien sans mais le principal problème de ce composant c'est qu'a moins de rentrer le nombre exact de caractères c'est le bazar, je n'ai jamais trouvé le moyen de les rendre "elastiques".
    Ex: Rentrer 123 si le masque est 9999 il faut penser à sauter le premier caractère sinon on aura 123_ au lieu de
    _123.

    Nom : maskedit.jpg
Affichages : 173
Taille : 13,3 Ko

  5. #5
    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
    Salustre, amigo,

    et merci pour ton test.
    Citation Envoyé par jurassic pork Voir le message
    c'est bizarre, moi je n'ai pas ce problème sous Ubuntu 14.04 LTS 64 bits Lazarus 1.6.0 FPC 3.0 :
    Ami calmant, J.P (sans Té, bonheur, amour)


    C'est quoi ton widgetset ? Qt ?
    Citation Envoyé par Jipété Voir le message
    Maintenant, je sens que ça va être un problème de widget ou une autre embrouille bas niveau (moi j'ai gtk2)

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 241
    Par défaut
    non, non c'est bien gtk2 :

    Nom : CaptureOptionsLazarus.png
Affichages : 181
Taille : 76,4 Ko

  7. #7
    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 jurassic pork Voir le message
    non, non c'est bien gtk2 :
    Merci d'avoir insisté, ça m'a obligé à refaire mes tests sous Debian 8 / FPC 3.0 / Laz 1.6.2 et comprenne qui pourra, ce qui ne fonctionnait pas il y a 2 jours (et a justifié mes tests et ma question) fonctionne aujourd'hui...
    Sans avoir rien changé à la machine virtuelle ni à l'installation de Lazarus...
    Et même en ayant remis le point d'exclamation, Thierry !


    Je clique sur tout en n'étant vraiment pas satisfait de ce fonctionnement qui s'apparente au vaudou...

  8. #8
    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
    Bonsoir,
    Citation Envoyé par mm_71 Voir le message
    C'est normal puisque tu n'as entré aucune valeur dans le maskedit.
    J'ai bien dit que je ne savais pas du tout comment fonctionne ce compo (à quoi il sert, oui, mais comment il le fait, non)

    Citation Envoyé par mm_71 Voir le message
    A part ça à quoi sert ce ;1; ?
    À avoir une valeur positionnée au lancement du prog ? Je reprends le contenu du .dfm d'origine :
    Citation Envoyé par Jipété Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        ...
        EditMask = '!9.99;1;_'
        Text = '1.00'
      end
    Et au lancement dans XP du .exe trouvé dans le .zip, le MaskEdit affiche 1.00...

    Voilà, quoi...

  9. #9
    Membre émérite

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Par défaut
    Et au lancement dans XP du .exe trouvé dans le .zip, le MaskEdit affiche 1.00
    Ok, pigé mais cette syntaxe ne fonctionne manifestement pas sous linux.

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 241
    Par défaut
    hello,
    c'est bizarre, moi je n'ai pas ce problème sous Ubuntu 14.04 LTS 64 bits Lazarus 1.6.0 FPC 3.0 :

    Nom : Capture-TMaskEdit.png
Affichages : 217
Taille : 96,4 Ko

    Nom : Capture_HistoStrechGrays.png
Affichages : 196
Taille : 24,1 Ko


    Ami calmant, J.P (sans Té, bonheur, amour)

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

Discussions similaires

  1. [Lazarus] Problème avec Tpagecontrol sous Linux
    Par Stbiotyk dans le forum Lazarus
    Réponses: 0
    Dernier message: 29/05/2010, 08h56
  2. problème avec internet sous linux
    Par alienware1994 dans le forum Linux
    Réponses: 0
    Dernier message: 17/11/2009, 00h15
  3. probléme avec sprintf() sous linux
    Par moooona dans le forum C++
    Réponses: 5
    Dernier message: 11/04/2008, 01h48
  4. Problème avec .htaccess sous Linux
    Par Mo_Poly dans le forum Apache
    Réponses: 5
    Dernier message: 03/02/2008, 14h38
  5. Problème avec glutFullScreen() sous linux...
    Par MaxPayne dans le forum OpenGL
    Réponses: 1
    Dernier message: 29/11/2004, 11h30

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