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 :

Combobox ou dbcombobox style Web


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 11
    Par défaut Combobox ou dbcombobox style Web
    bojur tout le monde,

    Je developpe avec html/php et dans la conception j'utilise un combobox qui comprend:

    <select>
    <option value="1">valuer 1</option>
    <option value="2">valuer 2</option>
    <option value="3">valuer 3</option>
    ....
    </select>

    donc on vois qu'il affiche (valeur1,valeur2, valeur3...) mais il prend comme valeur cachées (1,2,3).

    Dans Delphi j'ai pas trouvé un composant (db)combobox qui fais le même job, car ce dernier affiche juste des valeurs et ces même valeurs qui les prend comme (value).

    Vous avez une idée, ou un composant free qui fais le même job que celui de l'html?

    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    LA property Items de la TCompobox est de Type TStrings.
    Toutes les listes notements la TStrings, possedent une methode AddObject qui associe a une chaine un objet.

    Faut savoir qu'un objet est un pointeur sur une adresse memoire. Donc un entier.
    Tu peux transmettre n'importe quel entier ... le tout est de pas se planter sur la maniere dont on le manipule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Self.ComboBox1.AddItem('Item 1', Pointer(1));
    Self.Edit1.Text := IntToStr(Integer(Self.ComboBox1.Items.Objects[0]));

  3. #3
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 11
    Par défaut
    merci cher confrere pour ta réponse, je vois maintenant comment traiter les combobox, mais le probleme si j'ai un cas de se genre:
    ex:
    TableClient (id,nom,prenom,eta_civil)

    Et que le champs "etat civil" est stoqué dans la table de façon :
    "1" qui vaut "marié"
    "2" qui vaut "Celibataire"
    ....

    Et dans un combobox j'affiche ça:
    Veuillez selectionner l'etat civil:

    Marié
    Celibataire
    ...

    Et dans la table je filtre selon le choix, par exemple "marié"


    Donc je ois faire un filtre du genre "etat_civil='1'", car 1 correspont à "marié".

    LE PROBLEME, comment remplir ça selon des cas venant d'une autre table ou à la place de "1 ou 2 ..." i l ya les id d'une table étrangère?

    Merci de m'éclaircir les idées.

  4. #4
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    le parametre Objet est a la base un objet
    Rien ne t'empeche de creer un objet (classe) et de le passer en arguments

    Par exemple tu as une liste de TPersonnes (nom, prenom, adresse, ...)
    tu utilise une combobox pour lister les personnes (noms) et en choisir une.
    Tu parcours dont le tableaux des personnes et pour chaques element tu ajoute comme item le nom de la personne. Mais tu peux egalement joindre en parametre object, l'instance de TPersonne !!
    De cette maniere en selectionnant un element, on peux recuperer tres rapidement l'instance qui est associée ...

    L'astuce du Integer est faire pour eviter de creer des classes avec uen seule donné a stocker. On peut presque tout convertir en "code" du moment que l'on sais a quoi correspond l'entier utilisé.

    Si tu veux lier l'etat "marié" a une clef de la table [EtatCivil] : 03 / MArié, rien ne t'en empeche.
    Tu recupere cette clef dans un entier key, et tu transmet Pointer(Key) et tu lit Integer(Object[i]).

  5. #5
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 11
    Par défaut
    merci pour la réponse,

    J'avoue que tu m'a bien compris, donc je vois que la seule manière , et ça marche bien.

    Merci encore.

    Mais ça reste toujours une methode un peut longue, car comme j'ai plus haut, en html c'est hyper simple à faire (en utilisant php pour remplir la liste déroulante), peut etre nos amis les génies, vont construire un dbcombobox qui fais tout cela sans programmer quoi que se soit.

    Salutation.

  6. #6
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    heuu j'ai peur de pas bien comprendre ... en quoi est ce plus long ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="1">valuer 1</option>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Self.ComboBox1.Items.AddObject('Value 1', Pointer(1));
    Bon maintenant on peut aussi faire plus que le select HTML

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

Discussions similaires

  1. Trois colonne style Web App
    Par dlalonde dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 13/07/2012, 19h42
  2. Encoding Style - web services
    Par senga82 dans le forum Services Web
    Réponses: 1
    Dernier message: 18/07/2006, 12h36
  3. [VB6] - Propriété Style d'une ComboBox
    Par jlvalentin dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 15/11/2005, 16h33
  4. Etat du style d'un element de ma page web
    Par eja1968 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/11/2005, 15h43
  5. Utilisation ComboBox et DBComboBox
    Par Isa31 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 28/09/2005, 07h18

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