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

Composants VCL Delphi Discussion :

[D7] réaction d'une TCombobox à la souris / clavier


Sujet :

Composants VCL Delphi

  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut [D7] réaction d'une TCombobox à la souris / clavier
    Bonjour,

    Sur un formulaire j'ai divers composants dont :
    - 2 TDateTimePicker,
    - 2 TBitBtn et
    - un TCombobox qui est invisible (ne me demandez pas pourquoi car je reprends une application existante).

    Toujours est-il, lors de la validation du formulaire, la propriété ItemIndex de cette TCombobox invisible est différente selon que j'ai effectué ma saisie avec la souris ou avec le clavier.
    En effet, avec la souris : CBMode.ItemIndex = -1 et avec le clavier CBMode.ItemIndex = 0

    Quelqu'un peut-il m'expliquer ce phénomène ?
    Merci par avance.

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 949
    Par défaut
    1/ pas grand-chose à voir avec les bases de données

    2/ difficile de te répondre dans l'absolu sans disposer du code de la Form. Quantité d'événements peuvent être programmés (OnKey... OnMouse...etc...) dans lesquels une ligne peut modifier l'index de la CB.

    à toi de plonger dans le code

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par qi130
    1/ pas grand-chose à voir avec les bases de données
    c'est tout-à-fait vrai => j'ai modifié complètement mon message d'origine car je pensais que le problème venait d'ailleurs...

    Citation Envoyé par qi130
    2/ difficile de te répondre dans l'absolu sans disposer du code de la Form. Quantité d'événements peuvent être programmés (OnKey... OnMouse...etc...) dans lesquels une ligne peut modifier l'index de la CB.
    là encore j'aurais dû donner plus d'infos :
    j'ai fait un grep sur 'CBMode' et voici le code de la seule procédure qui modifie l'index de la combobox. Information supplémentaire : cette procédure est appelée pour chacun des 2 TDateTimePicker sur l'événement OnCloseUp :
    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
    23
    24
    25
    26
    27
    28
    29
    begin
      with DMSphere.qryDataFetch3 do
      begin
        SQL.Clear;
        SQL.Add('SELECT DISTINCT REG_DEVSAI '+
                'FROM REGLEMENTS '+
                'WHERE REG_DATENCAIS BETWEEN :d1 AND :d2 '+
                'AND REG_ACTIF = ''O'' ');
        ParamByName('d1').AsDate := Trunc(DTPDu.Date);
        ParamByName('d2').AsDate := Trunc(DTPAu.Date + 1);
        Open;
        First;
        CBMode.Items.Clear;
        while not Eof do
        begin
          CBMode.Items.add(FieldByName('reg_devsai').AsString);
          Next;
        end;
      end; // with
      for i := 0 to CBMode.Items.Count - 1 do
      begin
        if CBMode.Items[i] =
           DMSphere.GetAlphaNumeric1_PARAM_INT(ADMINISTRATOR_USER, INTCODE_DEVISE_REFERENCE) then
        begin
          CBMode.ItemIndex := i;
          Exit;
        end;
      end;
    end;
    Merci encore si tu passes par là petit génie.

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Ok : j'ai trouvé.

    Le problème venait du choix de l'événement OnCloseUp des DateTimePicker : avec la souris cet événement se produit, ce qui n'est pas le cas lorsque l'on modifie les dates avec le clavier (donc lors de saisie de dates avec le clavier la procédure n'était pas appelée).

    Conclusion : j'ai changé l'événement au profit de OnChange qui est appelé dans les 2 modes.

    Merci à qi130 de m'avoir mis sur la voie.

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

Discussions similaires

  1. Comment élargir une TComboBox ?
    Par steph_1 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 17/11/2005, 16h15
  2. Réponses: 6
    Dernier message: 16/11/2005, 10h34
  3. Parser une ligne saisie au clavier.
    Par Sylmandel dans le forum C++
    Réponses: 5
    Dernier message: 17/10/2005, 11h12
  4. Affichage d'une chaîne saisie au clavier
    Par Frenchghost dans le forum Assembleur
    Réponses: 17
    Dernier message: 29/12/2004, 14h11

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