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

Delphi Discussion :

Bug avec Edit1.Text[1]=


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Points : 65
    Points
    65
    Par défaut Bug avec Edit1.Text[1]=
    Bonjour, j'aurai aimé savoir s'il été possible dans une Tedit, de faire en sorte que pour chaque lettre soit assigné une action,je m'éxplique :

    Imaginons que dans mon Tedit, je tappe, Vodka (pris au pif )

    et bien pour chaque lettre tapé il y ai une action du genre :
    if If edit1.caractere1 = 'V' then
    Action etc......

    Est-ce possible ? , merci !


    Edit, semblerai que ce soit

    if Edit1.Text[1]='V' then
    ....

    mais si j'éfface le contenu du TEdit,j'ai une jolie erreur mémoire ...

  2. #2
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Oui, en utilisant les événements OnKeyPress, OnKeyDown ou On KeyUp

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Points : 65
    Points
    65
    Par défaut
    Laquelle de ces techniques est la plus pratique ?

  4. #4
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Vas voir dans l'aide de chaque événement et tu pourras choisir en fonction de ce que tu veux faire

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Points : 65
    Points
    65
    Par défaut
    Je veux que ce soit le contenu qui éxécute une action selon les caracteres, et non pas selon les touches préssées dedans.

    Car si je suis la logique et que je tape "machin" pusi que j'éfface le "c" par éxemple, il ne véra pas la différence je pense.

    donc j'aimerai un coup de main pour le
    Edit1.Text[1] qui fonctionne mais qui fait beuguer si on éfface le contenu du TEdit par la suite :s !

    Merci bien cepandant !

  6. #6
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Bon, j'en reviens à
    si j'éfface le contenu du TEdit,j'ai une jolie erreur mémoire ...
    Pour éviter cette erreur ton code devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (Length(Edit1.Tex) > 0) and (Edit1.Text[1]='V') then

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par defluc
    Bon, j'en reviens à
    Pour éviter cette erreur ton code devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (Length(Edit1.Tex) > 0) and (Edit1.Text[1]='V') then
    Merci ! c'est parfait.

    Par contre, est il possible de convertir un caractere en sa valeur décimale ? (comme le ferai une lettre en valeur héxa convertie en décimale)

    Je m'éxplique encore :

    imaginons que le 1er caractere soit a, est il possible de récuperer sa valeur décimale ? pour pouvoir l'utiliser ailleur...Mais je crois que je m'emporte lol.
    Merci déjâ pour tout.

    (je vais faire un nouveau post ) ce sera plus clair; Merci pour tout !

  8. #8
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 943
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 943
    Points : 5 655
    Points
    5 655
    Par défaut
    Kao,

    Vu ton autre post, dans lequel je t'ai donné la réponse, et vu celui-ci, avec le non contrôle de la longueur d'une chaîne avant utilisation indexée de ses caractères, il est plus que temps que tu apprennes les bases du langage que tu utilises.

    La programmation n'est pas une simple accumulation de trucs et astuces. Si on veut progresser, il faut faire l'effort d'apprendre les bases, sinon on ne va pas bien loin.
    Si les cons volaient, il ferait nuit à midi.

  9. #9
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par devoluti0n
    Merci ! c'est parfait.

    Par contre, est il possible de convertir un caractere en sa valeur décimale ? (comme le ferai une lettre en valeur héxa convertie en décimale)

    Je m'éxplique encore :

    imaginons que le 1er caractere soit a, est il possible de récuperer sa valeur décimale ? pour pouvoir l'utiliser ailleur...Mais je crois que je m'emporte lol.
    Merci déjâ pour tout.

    (je vais faire un nouveau post ) ce sera plus clair; Merci pour tout !
    Il faut utiliser la fonciton Ord pour avoir la valeur décimal d'un caractère

    Code delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var
      i : integer;
      s : String;
    begin
      i := Ord('A'); // i contient la valeur numérique du caractère A
      s := Chr(64); // s contient le caractère de valeur 64 en ascii le @
    end;
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

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

Discussions similaires

  1. [Free Pascal] Bug avec les variables fichiers Text
    Par Hibou57 dans le forum Free Pascal
    Réponses: 11
    Dernier message: 07/08/2007, 19h37
  2. Bug avec requete
    Par arsgunner dans le forum ASP
    Réponses: 8
    Dernier message: 14/06/2004, 16h25
  3. [C#] Bug (?) avec la propriété TransparencyKey de la Form
    Par FrigoAcide dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/05/2004, 14h14
  4. Problème avec fichier texte
    Par jpdelx dans le forum ASP
    Réponses: 7
    Dernier message: 13/11/2003, 13h17
  5. [CR9] Bug avec les champs à valeur vide ?
    Par Djob dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 15/07/2003, 21h21

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