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 :

Option plus forte que fieldbyname('Nom').AsString


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 40
    Points
    40
    Par défaut Option plus forte que fieldbyname('Nom').AsString
    Bonjour,
    j'ai un petit souci lors de la selection depuis une liste
    en effet, j'ai EDIT (EdPr) qui fait appel à un DBGrid(liste de produit)
    dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EdPr.Text:= Fiche_QFAV.fieldbyname('Nom').AsString;
    (nom c'est le nom du produit dans ma base)
    le problèle ici c'est lorsque j'ai deux produit nommés comme suit :
    xbox 360 code produit : 01
    cable USB xbox 360 Code produit : 02

    lorsque je filtre dans EdPr en tapant xbox les deux produit apparaissent je choisi xbox 360
    en cliquant sur entrée et dans mon DBGRID qui est sensé m'affiché le produit selectionné je recois le nom du produit xbox 360 mais pour le code et le prix je recoi d'autre information celles du cable USB xbox 360



    je souhaiterai savoir s'il y a une option plus sure que fieldbyname('Nom').AsString

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Points : 187
    Points
    187
    Par défaut
    Citation Envoyé par LandGreen Voir le message
    lorsque je filtre dans EdPr en tapant xbox les deux produit apparaissent je choisi xbox 360
    en cliquant sur entrée et dans mon DBGRID qui est sensé m'affiché le produit selectionné je recois le nom du produit xbox 360 mais pour le code et le prix je recoi d'autre information celles du cable USB xbox 360

    Bonjour,

    Pouvons nous avoir un aperçu du code qui intervient au click?

    Mon premier reflex serait de regarder ce qui se passe lors du filtre et au click.

    Pour ce qui est d'un composant plus précis, il y a bien le DBLookupComboBox qui permet de faire apparaitre une valeur et renvoyer la clef unique qui correspond, mais je n'ai pas l'impression que le problème vienne de là en vue des symptômes.

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    j'ai EDIT (EdPr) qui fait appel à un DBEDIT (liste de produit)
    c'est quand même confus cette demande! Pourquoi un appel à un DBEdit ?
    Et PetitBoutdeCode nous ajoute un DBLookupComboBox

    une image écran de l'interface, une explication sur le "filtre" ?

    lorsque je filtre dans EdPr
    donc il y a saisie, quelque chose de codé dans le onChange ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 40
    Points
    40
    Par défaut
    OnChange de EdPr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DBPr.Visible:=true;
    F_DM.AQ_Pr.Filtered:=false;
    if edPr.Text ='' then exit;
    F_DM.AQ_Pr.Filter := 'Nom LIKE ('+''''+'*'+edPr.Text+'*'+''''+')';
    F_DM.AQ_Pr.filtered := True;
    OnClient Dbgrid de Dbpr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EdPr.Text:=F_DM.AQ_Pr.fieldbyname('Nom').AsString;

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 40
    Points
    40
    Par défaut
    c'est quand même confus cette demande! Pourquoi un appel à un DBEdit ?
    c'est un DBGrid je me suis trompé

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 40
    Points
    40
    Par défaut
    voici une petite vidéo démo

    https://www.mediafire.com/file/nbfr6...Xbox.webm/file
    https://www.mediafire.com/file/nbfr6...Xbox.webm/file

    on remarque que l'utilisateur a choisoi le produit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    code-----nom-------prix
    4072 ---xbox 360---360
    mais lorsqu'il a cliqué voici ce qu'il affiche les composants
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    code-----nom-------prix
    4073 ---xbox 360---100
    ça me rend fou

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Points : 187
    Points
    187
    Par défaut
    Et PetitBoutdeCode nous ajoute un DBLookupComboBox
    Oui je pensais que pour faire ressortir un élément précis c'est plus pratique puisqu'on peut comparer la clé unique plutôt que la chaine de caractère qui peut avoir plusieurs correspondances .

    Mais effectivement, avec les explications en plus ce morceau de réponse était HS

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par PetitBoutDeCode Voir le message
    Oui je pensais que pour faire ressortir un élément précis c'est plus pratique puisqu'on peut comparer la clé unique plutôt que la chaine de caractère qui peut avoir plusieurs correspondances .

    Mais effectivement, avec les explications en plus ce morceau de réponse était HS
    comment faire appel au Nom Produit (champ Nom) à partir de la clé unique qui est Code (C_pr) ?

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par LandGreen Voir le message
    comment faire appel au Nom Produit (champ Nom) à partir de la clé unique qui est Code (C_pr) ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    F_DM.AQ_Pr.Locate('C_pr',F_DM.AQ_Pr.FieldValues['C_pr'], [loPartialKey]);

  10. #10
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Points : 187
    Points
    187
    Par défaut
    Citation Envoyé par LandGreen Voir le message
    comment faire appel au Nom Produit (champ Nom) à partir de la clé unique qui est Code (C_pr) ?
    Pour le coup, j'ai le même soucis sur Delphi 6 avec un Edit qui me sert de filtre, dès que je passe un nombre de caractères il ne me trouve plus de résultats, pour pallier au problème (c'est pas le plus esthétique) j'ai du jouer sur la Query, sur le OnChange de l'Edit je ferme la query, modifi le paramètre que je veux changer, puis ouvre à nouveau la query

    à l'exécution ça ne me semble pas moins efficace que le filtre, mais c'est nettement moins propre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure FMain.FiltreChange(Sender: TObject);
    begin
      With Query Do
      Begin
        Close;
        SQL.Clear;
        If Length(Filtre.Text) > 0 Then
          SQL.Add(requete_avec_filtre)
        Else
          SQL.Add(requete_sans_filtre);
        Open;
      End;
    end;
    Ca fonctionne mais bon, si quelqu'un à une autre solution je serais également preneur .

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par PetitBoutDeCode Voir le message
    Pour le coup, j'ai le même soucis sur Delphi 6 avec un Edit qui me sert de filtre, dès que je passe un nombre de caractères il ne me trouve plus de résultats, pour pallier au problème (c'est pas le plus esthétique) j'ai du jouer sur la Query, sur le OnChange de l'Edit je ferme la query, modifi le paramètre que je veux changer, puis ouvre à nouveau la query

    à l'exécution ça ne me semble pas moins efficace que le filtre, mais c'est nettement moins propre :
    je vous remercie, cependant je pense que j'ai trouvé l'anomalie,
    bon ce problème apaprait lorsque j'accède au produit via une autre fiche nommée fiche produit,
    je pense qu'il garde en mémoire le code produit puis il fait appel
    maintenant, est ce qu'il existe un code qui permet d'effacer toutes les filtre : SQL ou Adoquery ?

  12. #12
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Points : 187
    Points
    187
    Par défaut
    Citation Envoyé par LandGreen Voir le message
    maintenant, est ce qu'il existe un code qui permet d'effacer toutes les filtre : SQL ou Adoquery ?
    J'en ai fait un parce que j'en avais marre de réinitialiser mes query une par une à chaque changement de Form ^^ :

    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
    procedure ResetDataSource(Form:TForm);
    Var I : Integer;
    Begin
        For I := 0 To TForm(Form).ComponentCount -1 Do
          If TForm(Form).Components[I].ClassName = 'TADOQuery' Then
          Begin
            TADOQuery(TForm(Form).Components[I]).BeforePost  := nil;
            TADOQuery(TForm(Form).Components[I]).AfterPost   := nil;
            TADOQuery(TForm(Form).Components[I]).BeforeOpen  := nil;
            TADOQuery(TForm(Form).Components[I]).AfterOpen   := nil;
            TADOQuery(TForm(Form).Components[I]).Filtered    := False;
            TADOQuery(TForm(Form).Components[I]).Filter      := '';
          End;
     
    End;
    A modifier en fonction des composants et évènements que l'on veut réinitialiser

    PS: j'ai passé en paramètre une Form mais on peut très bien le faire avec un TTabSheet ou autre en modifiant un peu ce code, c'est un exemple

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par PetitBoutDeCode Voir le message
    J'en ai fait un parce que j'en avais marre de réinitialiser mes query une par une à chaque changement de Form ^^ :

    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
    procedure ResetDataSource(Form:TForm);
    Var I : Integer;
    Begin
        For I := 0 To TForm(Form).ComponentCount -1 Do
          If TForm(Form).Components[I].ClassName = 'TADOQuery' Then
          Begin
            TADOQuery(TForm(Form).Components[I]).BeforePost  := nil;
            TADOQuery(TForm(Form).Components[I]).AfterPost   := nil;
            TADOQuery(TForm(Form).Components[I]).BeforeOpen  := nil;
            TADOQuery(TForm(Form).Components[I]).AfterOpen   := nil;
            TADOQuery(TForm(Form).Components[I]).Filtered    := False;
            TADOQuery(TForm(Form).Components[I]).Filter      := '';
          End;
     
    End;
    ça ne marche pas malheursement

  14. #14
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Points : 187
    Points
    187
    Par défaut
    J'ai peut être oublié quelque chose en enlevant le superflu pour votre cas, voici le code complet :

    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
    30
    31
    32
    33
    34
    35
    36
    procedure ResetDataSource(Form:TObject);
    Var I : Integer;
    Begin
      If Form.ClassName = 'FMain' Then // A remplacer par la valeur recheché
      Begin
        For I := 0 To TForm(Form).ComponentCount -1 Do
          If TForm(Form).Components[I].ClassName = 'TwwDBGrid' Then
            TwwDBGrid(TForm(Form).Components[I]).DataSource := Nil
          Else If TForm(Form).Components[I].ClassName = 'TDataSource' Then
            TDataSource(TForm(Form).Components[I]).DataSet := Nil
          Else If TForm(Form).Components[I].ClassName = 'TwwDBEdit' Then
          Begin
            TwwDBEdit(TForm(Form).Components[I]).DataField  := '';
            TwwDBEdit(TForm(Form).Components[I]).DataSource := nil;
          End
          Else If TForm(Form).Components[I].ClassName = 'TADOQuery' Then
          Begin
            TADOQuery(TForm(Form).Components[I]).BeforePost  := nil;
            TADOQuery(TForm(Form).Components[I]).AfterPost   := nil;
            TADOQuery(TForm(Form).Components[I]).BeforeOpen  := nil;
            TADOQuery(TForm(Form).Components[I]).AfterOpen   := nil;
            TADOQuery(TForm(Form).Components[I]).Filtered    := False;
            TADOQuery(TForm(Form).Components[I]).Filter      := '';
          End
          Else If TForm(Form).Components[I].ClassName = 'TDateTimePicker' Then
            TDateTimePicker(TForm(Form).Components[I]).Date  := Now();
      End
      Else If Form.ClassName = 'TData' Then // DEUXIEME CLASSNAME POSSIBLE
      Begin
        For I := 0 To TDataModule(Form).ComponentCount -1 Do
          If TDataModule(Form).Components[I].ClassName = 'TDataSource' Then
            TDataSource(TDataModule(Form).Components[I]).DataSet := Nil;
      End;
     
     
    End;
    Et l'appel à la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResetDataSource(MaForm); //Dans cet exemple Maform.Classname = 'FMain'
    Encore une fois ce code a été fait pour un cas bien précis, il est donc a adapter ^^

  15. #15
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 415
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par PetitBoutDeCode Voir le message
    J'ai peut être oublié quelque chose en enlevant le superflu pour votre cas, voici le code complet :

    [CODE]procedure ResetDataSource(Form:TObject);
    V
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResetDataSource(MaForm); //Dans cet exemple Maform.Classname = 'FMain'
    la seule instruction qui me pose problème sur la FICHE PRODUIT est bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      F_DM.AQ_Pr.SQL.Clear;
      F_DM.AQ_Pr.SQL.Text := 'select * from produits order by nom ';
      F_DM.AQ_Pr.Open;
    maintenant comment réinitialiser cette instruction lors de l'appel de la Fiche VENTE

  16. #16
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Points : 187
    Points
    187
    Par défaut
    Citation Envoyé par LandGreen Voir le message
    la seule instruction qui me pose problème sur la FICHE PRODUIT est bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      F_DM.AQ_Pr.SQL.Clear;
      F_DM.AQ_Pr.SQL.Text := 'select * from produits order by nom ';
      F_DM.AQ_Pr.Open;
    maintenant comment réinitialiser cette instruction lors de l'appel de la Fiche VENTE
    Dans le FormShow de la Fiche VENTE?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    F_DM.AQ_Pr.SQL.Close;
    F_DM.AQ_Pr.SQL.Clear;
    F_DM.AQ_Pr.Filtered := False;
    F_DM.AQ_Pr.Filter     := '';

  17. #17
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Alors, globalement, si tu filtres une tables tu récupères son contenu et le curseur se positionne quelque part (à priori le dernier enregistrement).

    Quand tu saisis quelque chose tu fais un filtrage du contenu de la grille.

    Si tu cliques sur ta grille tu forces un nouveau filtrage de la liste en affectant la valeur du nom de produit au champ de saisie qui te sers de filtre. Ca redéclenche un rafraichissement, et se repositionne sur le dernier élément de la liste.

    C'est pour cette raison que les éléments affichés à l'écran ne sont pas ceux du premier produit cliqué, mais ceux du dernier élément affiché puisque c'est celui sur lequel se positionne le curseur dans la base.

    Pour contourner ce problème de conception de ta part :
    1 - lorsque tu cliques sur un élément de la grille, ne changes pas la valeur du champ qui te sers à faire le filtrage, les données resteront dessus (et si ton TDBGrid a l'option, active l'affichage de la ligne qui est sélectionnée)
    2 - si tu cliques sur la grille, au lieu de faire un filtrage par libellé (puisqu'il est inutile vu que tu as choisi l'élément), récupère sa clé par le FieldByName() qui convient et travaille sur une table ou une requête en se positionnant dessus manuellement

Discussions similaires

  1. <option> plus large que <select>
    Par sunvialley dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 09/11/2006, 16h02
  2. [CSS] option plus grand que select
    Par simoryl dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 11/01/2006, 19h27

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