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 :

Question : Case of end


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut Question : Case of end
    Voilà, tout d'abord bon soir à tous!

    Voilà je commence delphi et je vous avoue que j'ai un peu du mal .

    J'aimerai utiliser un "case.. of.. end"

    mais je vous explique:

    je suis entrain de faire un bête petit programme, et sur un de mes form j'ai un LISTBOX, avec aussi un editbox. Le but est donc d'écrire un NOM dans l'editbox et ensuite clicker sur un button 'ok' pour que le nom se rajoute dans le LISTBOX en question.

    J'aimerai donc utiliser le CASE OF END comme ceci:

    Si on tape rien dans l'editbox, ça me donne un message : Veuillez entrer un nom !
    Si on met des carectères speciaux comme ' / .\ >!& ' ça mettrai : Un truc du style 'Pas de symbols'


    Voila je sens que c'est pas du tout clair, m'enfin si quelqu'un pouvais me dire comment je dois faire, je vous serais très reconnaissant!

    Merci bcp,

    Amicalement

    Cedric ( akuMz )

  2. #2
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Par défaut
    bonsoir

    je pense que le CASE n'est pas bon pour ce que tu veux faire.

    vérifier un champ vide peut se faire au niveau de l'appui sur le bouton du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if edit1.text = '' then showmessage
    quand aux caractères interdits il peuvent être gérés directement à la saisie
    par l'évennement "OnKeyPress" du edit1,
    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure edit1KeyPress(Sender: TObject; var Key: Char);
    begin  //  les caractère autorisés sont énumérés
      if not (Key in ['0'..'9', Chr(VK_BACK), Chr(VK_DELETE)]) then
      Key := #0;
    end;
    à plus et bienvenu

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut
    Salut,

    au faite mon but est d'utiliser justement ce CASE. Je dois faire un programme en utilisant un peu de tout. Dans mon programme en question ça ne servait pas vraiment a quelque chose de mettre un "case" mais j'ai remarqué que pour les profs, ça était important

    Voila ce que j'ai:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    procedure TFormListe.Button2Click(Sender: TObject);
    var
     NombreEleves : Integer;
    begin
     NombreEleves := StrToInt(Label1.Caption);
     
     If Edit1.Text = ''
     Then ShowMessage('Entrez un nom!')
     Else
            begin
            ListBox1.Items.Add(Edit1.Text);
            NombreEleves := NombreEleves+1;
            Label1.Caption := IntToStr(NombreEleves);
            end;
     Edit1.text := '';
     ActiveControl := Edit1;
    end;
    et ce que je voudrai donc:

    Si on ne remplit rien -> msg d'erreur
    Si on met un chiffre -> autre msg d'erreur
    Si on remplit avec un nom -> c'est bon

    Merci

  4. #4
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Par défaut
    utilises la mise en forme pour le code, sinon tu vas te faire rapeller à l'orde!

    maintenant si tu veux utiliser le 'CASE OF' pour le fun, tu peux modifier le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure edit1KeyPress(Sender: TObject; var Key: Char);
    begin       // Saisir que des lettres
      case key of
        '0'..'9' : showmessage('cequetuveux');
        '/'      : showmessage('cequetuveux');
      end
      else label1.caption := 'encorecequetuveux'
    end;
    c'est pas le plus simple car tu dois tout énumérer

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,

    Le case of n'est pas adapté à ce que tu veux faire, car il ne peut pas gérer des chaines de caractères, ce que te renvoie un TEdit.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut
    Citation Envoyé par thewho
    Bonjour,

    Le case of n'est pas adapté à ce que tu veux faire, car il ne peut pas gérer des chaines de caractères, ce que te renvoie un TEdit.
    ah bon,

    d'accord donc je dois chercher quelque chose d'autre ou quelque part d'autre ou rajouter un CASE OF!

    merci beaucoup

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut
    pff jm'en sors pas!

    j'ai vraiment du boulot quoi..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    procedure TFormListe.Button2Click(Sender: TObject);
    var
     NombreEleves : Integer;
     
    begin
     NombreEleves := StrToInt(Label1.Caption);
     
     If Edit1.Text = ''
     Then ShowMessage('Entrez un nom!')
     Else
            begin
            ListBox1.Items.Add(Edit1.Text);
            NombreEleves := NombreEleves+1;
            Label1.Caption := IntToStr(NombreEleves);
            end;
     Edit1.text := '';
     ActiveControl := Edit1;
    end;
    Voila ce que j'ai

    Et ce que j'ai essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    procedure TFormListe.Button2Click(Sender: TObject);
    var
     NombreEleves : Integer;
     Key: Char;
     
     
    begin       // Saisir que des lettres
      case key of
        '0'..'9' : showmessage('cequetuveux');   // Donc les chiffres = msg d'erreur
        ''      : showmessage('cequetuveux');  // RIEN ecris = msg d'erreur
      end
     
     Else    // si il y a bien ecris qq'chose
            begin
            ListBox1.Items.Add(Edit1.Text);
            NombreEleves := NombreEleves+1;
            Label1.Caption := IntToStr(NombreEleves);
            end;
     Edit1.text := '';
     ActiveControl := Edit1;
    end;
    help ?

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,
    Citation Envoyé par akuMz
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    procedure TFormListe.Button2Click(Sender: TObject);
    var
     NombreEleves : Integer;
     Key: Char;
     
     
    begin       // Saisir que des lettres
      case key of
        '0'..'9' : showmessage('cequetuveux');   // Donc les chiffres = msg d'erreur
        ''      : showmessage('cequetuveux');  // RIEN ecris = msg d'erreur
      end
     
     Else    // si il y a bien ecris qq'chose
            begin
            ListBox1.Items.Add(Edit1.Text);
            NombreEleves := NombreEleves+1;
            Label1.Caption := IntToStr(NombreEleves);
            end;
     Edit1.text := '';
     ActiveControl := Edit1;
    end;
    As-tu bien réfléchi à ce que tu as écrit ?

    Tu fais un case key of alors que la variable key n'est pas initilisée. Comment veux-tu que ça puisse fonctionner ?

    Ton code ne doit pas compiler (pas testé, je n'ai pas Delphi sous la main, et puis il faudrait refaire une fenêtre, etc...), car la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ''      : showmessage('cequetuveux');  // RIEN ecris = msg d'erreur
    ne passe certainement pas : un char, comme ta variable key ne peut pas être vide, et il n'y a pas de valeur pour dire "cette variable de type char n'a pas été initialisée", toutes les valeurs de 0 à 255 étant valides comme caractères.

    De plus, c'est le contenu de l'éditeur, de type strring, qui t'intéresse, qui n'a rien à voir avec ta variable key, de type char.

    Et comme tu as pu le lire dans mon précédent message, le case of ne sait pas gérer les string.

    Je vais t'orienter un peu : comme tu ne veux saisir que des lettres, ton case key of doit être appliqué dans l'évènement OnKeyPress de ton éditeur, à toi la balle.

Discussions similaires

  1. problème question+ case 1;
    Par Vestigo dans le forum C
    Réponses: 6
    Dernier message: 06/09/2007, 17h23
  2. question case when
    Par ljoly dans le forum Oracle
    Réponses: 13
    Dernier message: 17/07/2006, 16h57
  3. Equivalent "Select Case when then else end" sur Paradoxe
    Par Seuh.m dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/06/2006, 08h23
  4. [VB6] Petite question avec "select case ... end case"
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 22
    Dernier message: 04/05/2006, 10h24
  5. questions sur le if then end if;
    Par ghostlord79 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/02/2004, 16h35

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