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

Windows Discussion :

Détection d'un changement dans un EDITTEXT


Sujet :

Windows

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 83
    Points
    83
    Par défaut Détection d'un changement dans un EDITTEXT
    Bonjour,

    je voudrais pouvoir agir sur la couleur de fond d'un champ EDITTEXT lorsque l'opérateur a saisi un nombre (deux couleurs en fonction de la valeur de ce nombre) et je ne sais pas comment procéder :
    j'imagine qu'il doit y avoir un test à faire sur WM_COMMAND retourné dans ma procédure de gestion de l'objet mais je ne vois pas précisément quoi, quelqu'un peut m'aider ?
    Petite précision, comme j'ai une quarantaine d'EDITTEXT sur ma fenêtre, je ne peux pas attendre que l'opérateur ait cliqué sur le bouton "valider" pour faire ce test, je voudrais qu'il soit fait à chaque déplacement de champ EDITTEXT.

    Merci

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 83
    Points
    83
    Par défaut
    Merci Raymond mais je débute en programmation API et ce que je vois là me semble bien compliqué pour détecter un changement dans un EDITTEXT ! En Vba il y a une fonction événementielle qui se charge de cela en 1 ligne. Je pensais naïvement qu'en C il y avait quelque chose de plus ou moins équivalent
    Si quelqu'un a un autre exemple plus à ma portée je suis preneur

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    case WM_COMMAND:
        switch(LOWORD(wParam))
        {
        case IDC_MONEDIT:
            switch(HIWORD(wParam)
            {
            case EN_CHANGE:
                /*Changement!*/
            }
        }
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 83
    Points
    83
    Par défaut
    Merci Médinoc, c'est exactement ce que je cherchais, je fais un test pour savoir qui de mes control edit a changé et cela marche très bien.

    Maintenant dans ce test je voudrais changer la couleur de fond de mon edit text mais je ne trouve aucun exemple ou aide dans les FAQs (le lien donné par Raymond est pour VisualC++).

    Abuserais-je si je demandais encore un peu d'aide ?

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Il faut répondre au message WM_CTLCOLOREDIT, envoyé par l'EDITTEXT à la fenêtre qui le contient.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 83
    Points
    83
    Par défaut
    Merci Médinoc, j'ai travaillé sur mon prog avec tes indications et il y a du mieux, cependant je n'arrive pas à changer la coleur de fond juste pour mon contrôle qui a changé, ils changent tous en même temps !!

    J'ai fait une extraction de mon prog en enlevant tout ce qui n'est pas utile à mon problème du jour, si vous pouvez m'expliquer ce que je dois insérer (un test, un handle...) pour que seule la couleur de fond de mon EDITTEXT ayant changé soit modifiée cela m'aiderait grandement.

    Merci



    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    /***************/
    /* res.h       */
    #define IDE_V_MOY_ROTATION      105
    #define IDE_POUSS_MOY_ARBRE     106
    #define ID_ACQUERIR_PPC               230
    #define ID_GENERER  231
    #define ID_QUITTER  232
    
    /****************/
    /* res.rc       */
    #include <windows.h>
    #include "res.h"
    
    VOIES DIALOG 50, 50, 600, 475
    STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
    CAPTION "Configuration du fichier .PPC à créer"
    FONT 8, "Verdana"
    
    BEGIN
    ////////////////////////////////////////////////////////////////
    GROUPBOX "Paramètres particuliers", -1, 0, 0, 600, 195
    
    EDITTEXT IDE_V_MOY_ROTATION, 20, 15, 50, 17, ES_AUTOHSCROLL
    EDITTEXT IDE_POUSS_MOY_ARBRE, 120, 15, 50, 17, ES_AUTOHSCROLL
    LTEXT "Vitesse moyenne rotation", -1, 20, 30, 160, 12    
    LTEXT "(pompe ou moteur)", -1, 20, 40, 160, 12        
    LTEXT "Poussée moyenne ", -1, 120, 30, 160, 12    
    LTEXT "sur arbre", -1, 120, 40, 160, 12     
    
    ////////////////////////////////////////////////////////////////
    GROUPBOX "Paramètres moteur", -1, 0, 305, 300, 150
    
    
    DEFPUSHBUTTON "Charger un fichier", ID_ACQUERIR_PPC, 380, 315, 140, 20
    DEFPUSHBUTTON "Générer le fichier PPC", ID_GENERER, 380, 395, 140, 20
    DEFPUSHBUTTON "Quitter", ID_QUITTER, 415, 435, 70, 20
    END
    
    /***************************************/
    /*   main   
    /***************************************/
    #include <windows.h>
    #include <iostream>
    #include "res.h"
    
    // Handle de la fenêtre
    HWND MainHandle;
    
    // Handle du EditBox
    HWND EditHandle;
    
    using namespace std;
    
    // Variables globales
    char v_moy_rotation    [20];
    char pouss_moy_arbre    [20];
    
    HINSTANCE hinst;
    
    // Prototypes
    int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
    BOOL APIENTRY WinProc(HWND, UINT, WPARAM, LPARAM);
    
    HBRUSH hbr;
    
    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
    // Entrée du programme
    int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
    {
    hbr = CreateSolidBrush(RGB(255,255,150));//jaune 255,255,0
    hinst = hInstance;
    DialogBox(hinst,"VOIES",NULL,(DLGPROC)WinProc);
    return 0;
    }
    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
    
    // Réception des messages
    BOOL APIENTRY WinProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
    {
    float		vxi[120];
        switch (uMsg)
        {
         case WM_INITDIALOG:
              {                         
              }
         break;
    	case WM_CTLCOLOREDIT:
    		SetBkMode((HDC)wParam,RGB(255,0,0));
                    SetTextColor((HDC)wParam,RGB(50,50,50));
    		return (BOOL) hbr;
        break;
          case WM_COMMAND:                                          
               if (LOWORD(wParam) == IDE_V_MOY_ROTATION) 
                  {
                      if (HIWORD(wParam) == EN_CHANGE )
                         {                     
                         GetDlgItemText(hDlg, IDE_V_MOY_ROTATION, v_moy_rotation, 14);                                        
                         hbr = CreateSolidBrush(RGB(0,255,255));
                         InvalidateRect(hDlg, 0, 1);
                         }                    
                   }           
               if (LOWORD(wParam) == ID_ACQUERIR_PPC )
                    {                               
                    }                           
             if (LOWORD(wParam) == ID_GENERER )
                    {            
                    }
             if (LOWORD(wParam) == ID_QUITTER )
                    {
                    EndDialog(hDlg,0);
                    }
             break;
          default:
             return FALSE;
        }
    }

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Regarde les paramètres de WM_CTLCOLOREDIT dans la doc: Il doit y en avoir un qui dit lequel a envoyé le message, généralement c'est soit son handle soit son ID.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 83
    Points
    83
    Par défaut
    Ouf, je m'en suis sorti ! Enfin presque... J'ai modifié mon code pour forcer le rafraichissement local en récupérant le handle du control edit qui a changé (avec GetDlgItem), cela fonction bien maintenant sauf que lorsque je me déplace dans un champs encore vierge de toute écriture, j'ai une traînée blanche à l'emplacement des futurs caractères !?!?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      
     case WM_CTLCOLOREDIT:
               
            return (BOOL) hbr;
            break;
    case WM_COMMAND:  
               
              if (HIWORD(wParam) == EN_CHANGE )
                  {
                  hwndedit = GetDlgItem(hDlg, LOWORD(wParam));
                  hbr = CreateSolidBrush(RGB(255,255,255));
                  InvalidateRect(hwndedit, 0, 1);
                  }

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Attention aux fuites de ressources!

    Si tu veux retourner une Brush particulière dans WM_CTLCOLOREDIT, crée-la dans le WM_CREATE et mémorise-la (dans une variable globale si tu ne sais pas faire autrement)!

    Et pour tester si c'est le bon contrôle, tu peux faire ceci:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    case WM_CTLCOLOREDIT:
    		if(((HWND)lParam) == GetDlgItem(hDlg, ID_MON_EDIT)
    			return (INT_PTR)hbr;
    		else
    			return FALSE;
    	break;
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 83
    Points
    83
    Par défaut
    voila Médinoc, j'ai fait comme tu me l'as préconisé, j'ai déclaré deux brush que je mémorise dans deux variables globales et je passe de l'une à l'autre en fonction de mon événement. De cette façon je n'ai plus de trace blanche lorsque je me déplace dans des champs sans inscrire un paramètre et bien sur je détruit les brush avant de sortir...

    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
        case WM_CTLCOLOREDIT:
    
            return (BOOL) hbr;
            break;
          case WM_COMMAND:
               if (HIWORD(wParam) == EN_CHANGE )
                          {
                          hwndedit= GetDlgItem(hDlg, LOWORD(wParam));
                          hbr = hbrblanc;
                          InvalidateRect(hwndedit, 0, 1);
                          }
                          else
                          {
                           hbr = hbrjaune;
                          }

  12. #12
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je ne comprends pas pourquoi tu changes hbr dans le traitement de WM_COMMAND au lieu de tester sur lParam dans le traitement de Wm_CTLCOLOREDIT...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 83
    Points
    83
    Par défaut
    J'ai une quarantaine de control edit sur ma fenêtre et je suis bien obligé de connaître celle qui a changé de valeur pour lui changer sa couleur de fond. Je fais donc le test avec EN_CHANGE et "j'invalide" la zone pour qu'elle soit redessinée avec la bonne brush.
    Je ne vois pas autrement comment connaître le control edit à mettre à jour dans WM_CTLCOLOREDIT ou alors il faudrait que je fasse autant de comparaison que j'ai de control edit, cela va faire un bon paquet.

  14. #14
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    WM_CTLCOLOREDIT, le paramètre wParam est un handle sur le device context du champs edit concerné, le paramètre lParam est un handle sur le champs edit concerné.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  15. #15
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Et j'ai déjà posté un exemple, en plus.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  16. #16
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 83
    Points
    83
    Par défaut
    Désolé mais j'ai beau essayer je n'arrive à rien de bon en gérant le WM_CTLCOLOREDIT (je débute en API et ne suis pas informaticien à la base).

    J'abandonne donc l'envie de faire un changement de couleur du fond sur la saisie d'un champ, ils resteront d'une couleur uniforme et cela ira bien comme cela (j'ai déjà perdu beaucoup de temps là dessus ).

    Merci tout de même du coup de main.

  17. #17
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Conseil général, ne jamais implémenter une fonctionnalité non demandée par le client.

  18. #18
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 83
    Points
    83
    Par défaut
    Je vais en faire ma règle numéro 1

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

Discussions similaires

  1. [AIR] Détection de changements dans un dossier
    Par toopac dans le forum Flex
    Réponses: 2
    Dernier message: 21/04/2010, 16h54
  2. Détection position des yeux dans une image
    Par Morvan Mikael dans le forum Traitement d'images
    Réponses: 16
    Dernier message: 24/12/2008, 23h09
  3. Détection de changement dans un ListView
    Par mpereg dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/03/2008, 07h25
  4. changement dans liste déroulante
    Par puppusse79 dans le forum Access
    Réponses: 4
    Dernier message: 06/04/2006, 11h26

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