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

Langage Delphi Discussion :

Interdire la saisie dans TlabeledEdit déclaré ReadOnly


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Interdire la saisie dans TlabeledEdit déclaré ReadOnly
    Bonjour à tous les forumers

    Quelqu'un sait-il comment interdire la saisie dans un LabeledEdit qui est déclaré ReadOnly = True ?

    Non seulement ce LabeledEdit est capable de prendre le focus mais de surcroît on peut saisir une string dedans !

    Comment lui interdire la saisie ?

    Merci à tous et bonne journée

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    J'ai du mal à comprendre

    Si la propriété ReadOnly est mis à True, cela empêche l'édition (et tout changement dans son contenu).

    Je viens d'essayer, et je ne peux pas saisir d'informations ... donc pas de problème
    Merci d'ajouter un sur les tags qui vous ont aidé

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Pourtant je ne l'invente pas
    La peopriété ReadOnly de ce LabeledEdit est à true et il prend malgré tout le focus puique le curseur de saisie clignote, et on peut sauisir un texte !

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    avec ReadOnly, oui on prend avoir le focus, faire du copier, visualiser le Hint, etc mais pas faire de modification.

    pour ne rien pourvoir faire, il faut mettre la propriété Enabled à False.
    Merci d'ajouter un sur les tags qui vous ont aidé

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Ok je crois comprendre
    Mais ce n'est pas ergonomique, car l'utilisateur, s'il est capable d'écrire dans un editbox qui est déclaré ReadOnly, comment peut-il savoir que celà ne sert à rien ?

    N'y a t-il pas un moyen de l'empécher d'écrire quand l'editbox est en ReadOnly ?

  6. #6
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Salut

    Normalement, pour un Edit mis en ReadOnly, tu ne peux pas modifier le contenu, de quelque manière que ce soit ! C'est bizarre, parce que j'utilise souvent cette propriété, et je n'ai jamais eu de problèmes avec. As tu essayé sur un nouveau projet vide, pour être sûr ?

    Maintenant, il se peut que tu ais un bug, et donc, dans ce cas, tu peux utiliser une solution de contournement, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.EditKeyPress(Sender : TObject, var Key : Char);
    begin
      Key:=#0;
    end;

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    Si tu ne veux aucune saisie dans le cas où ReadOnly est True, tu peux lier ton composant à un évènement à OnKeyPress.

    Le but sera d'éviter toutes les saisies de caractères. Un petit exemple, à modifier, en fonction de tes besoins.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm.LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if (Sender as TLabeledEdit).ReadOnly then
        Key := #0;
    end;
    Il est possible de créer un évènement sur OnEnter pour mettre le focus sur un autre composant dès que TLabeledEdit prend le focus. Exemple :

    procedure TForm.LabeledEdit1Enter(Sender: TObject);
    begin
    AutreComposant.SetFocus;
    end;
    L'ennui avec Enabled à False, c'est la modification de l'affichage, mais il est possible de contourner cette limitation en incluant TLabeledEdit dans un panel. Avec cette option, tu mets Enabled du Panel à False. Tu conserves l'affichage, mais TLabeledEdit ne peut pas être modifié.

    Voici quelques propositions pour résoudre ta difficulté, à toi de choisir

    A+

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut J'y ai pensé mais ce n'est pas parfait
    Car la première lettre de la frappe reste affichée

  9. #9
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    il y a quand même une bizarrerie


    comme Mick605, j'utilise la propriété ReadOnly sans soucis : Je ne peux rien modifier dans le Edit...

    J'ai testé avec tLabeledEdit et sa propriété readonly à True, et cela fonctionne comme prévu.....

    es tu sur qu'à l’exécution le readonly n'est pas affecté a false ? parce que vraiment le comportement est plus que curieux
    Merci d'ajouter un sur les tags qui vous ont aidé

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Non mais le TLabeledEDit est dans un groupBox
    La seule différencde est que le TLabeledEDit est dans un GroupBox !

    Est-ce que celà peut jouer ? car un GroupBox posséde un TabOrder mais pas de ReadOnly, il est évident que le GroupBox possède le focus pour pouvoir atteindre le TLabeledEDit qui lui appartient, et comme le GroupBox n'a pas de ReadOnly tous ses composants n'héritent-ils pas d'un pseudo ReadOnly à false même si le leur est à True ?

    Ce peut être une explication...

  11. #11
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    j'ai ce cas de figure aussi, et cela fonctionne très bien

    en mode debug, regardes la propriété du readonly, par exemple en regardant au moment d'un KeyPress comme le suggère seabs, tu verras très vite si la propriété à changé
    Merci d'ajouter un sur les tags qui vous ont aidé

  12. #12
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Je suis entièrement d'accord avec Olivier.

    Peux tu nous dire la version de Delphi que tu utilises ?

    Donne nous aussi les codes des évenements OnKeyDown, OnKeyPress, OnKeyUp, OnChange, si ils existent ...

Discussions similaires

  1. Interdire la saisie dans une zone de texte
    Par beegees dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 03/04/2008, 12h53
  2. Interdire la saisie dans une cellule
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/11/2007, 12h49
  3. Interdire la saisie dans une combobox
    Par natie_49 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 19/12/2006, 12h27
  4. Réponses: 4
    Dernier message: 22/10/2006, 00h23
  5. comment interdire la saisie dans une combolist
    Par awatif dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 06/10/2006, 23h03

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