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

VB.NET Discussion :

VB6 -> VB.net : les problemes PictureBox


Sujet :

VB.NET

  1. #1
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Février 2016
    Messages : 11
    Par défaut VB6 -> VB.net : les problemes PictureBox
    Bonjour à tous,

    Voici mon problème que je n'arrive pas a résoudre depuis 3 jours.

    J'ai développé une centaine de logiciels en VB6 il y a quelques années, je dois aujourd'hui en modifier certains (modification des normes en vigueur)
    Mais quand je vois le début des problèmes entre mes appli et les nouveaux OS, qu’apparemment ça va empirer, je me suis dit qu'il était temps de passer a VB.NET.

    Donc pour ne pas tout exploser , j'importe morceaux de code par morceaux de code pour voir les changements VB6 <-> VB.NET et corriger au fur et a mesure.

    Ça allait plutôt bien jusqu’à la partie graphique , là je nage , toutes les nages , les unes après les autres

    Quand je dis partie graphique en fait imaginez des textbox dans lesquels je mets les dimensions d'un objet.( on va dire un rectangle pour faire simple )
    la taille de ma picturebox est fixe , sous VB6 je me servais de picturebox.scalex et picturebox.scaley pour pouvoir afficher mon rectangle

    un peu comme si vous avez un picturebox avec une valeur width et height quelconque mais vous attribuez a la valeur scalex=210 et scaley=297 comme ça c'est plus simple, vous dessinez comme sur un format A4


    Mais a priori scalex et scaley n'existent plus sous VB.NET alors comment faire....

    Merci a tout ceux qui prendront le temps de nager avec moi

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    ces deux propriétés permettent de définir un ratio qui sera appliqué lorsqu'on renseignera -d'une manière ou une autre- une valeur pour width ou height d'un contrôle, j'ai bon ? Si oui quelle est leur utilité dans le cadre d'un contrôle qui ne sera jamais redimensionné dynamiquement ?

  3. #3
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Février 2016
    Messages : 11
    Par défaut
    salut,

    en fait , en VB6 , picturebox.widht et picturebox.height sont les valeurs "physiques" de mon espace picturebox exprimées en twip.
    par defaut picturebox.scalex et picturebox.scaley ont les meme valeurs que picturebox.widht et picturebox.height

    exemple , mon picturebox fait 500x500, si je ne touche pas a scalex et scaley , je ne peut pas faire de carré plus grand que 500x500

    mais si je dis que scalex=scaley=2000
    si je fais un carré de 1000x1000 il prendra un quart de mon picturebox , c'est une sorte d'echelle en fait, je ne sais pas je me fait mieux comprendre ?

  4. #4
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Yep, en fait c'est une échelle pour le rendu et pas un ratio constant
    Du coup il va falloir faire cette mise à l'échelle à la main ...

    Bon ça fait pas bien pro mais j'ai trouvé ce lien qui présente un code qui semble faire le taf.

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    le problème c'est que normalement pour migrer une appli de vb6 à vb.net il faut la réécrire totalement, pour la coder en vb.net
    car vb.net et vb6 n'ont pas grand chose à voir même si la plupart du code peut s'importer
    la mauvaise nouvelle c'est que ca demanderait d'apprendre à coder en vb.net, et il y a beaucoup de concepts à voir
    la bonne nouvelle c'est qu'il faut en moyenne entre 5 et 15x moins de code pour faire la même chose en vb.net

    après la plupart des gens répondent "bullshit" et continuent leur copier coller ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Ce n'est pas une réponse directe, mais on dirait que Microsoft a oublié cette partie de son site:

    https://msdn.microsoft.com/fr-ca/vstudio/ms788229

    Le lien de téléchargement du 1er livre à droite semble toujours fonctionner.

    Pour le reste, je n'ai pas regardé plus loin. Je croise les doigts.

  7. #7
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Février 2016
    Messages : 11
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Yep, en fait c'est une échelle pour le rendu et pas un ratio constant
    Du coup il va falloir faire cette mise à l'échelle à la main ...

    Bon ça fait pas bien pro mais j'ai trouvé ce lien qui présente un code qui semble faire le taf.
    merci, j'avais peur d'avoir une réponse dans ce genre , tout les post que j'avais lu me rapprochaient de ça

    Citation Envoyé par Pol63 Voir le message
    le problème c'est que normalement pour migrer une appli de vb6 à vb.net il faut la réécrire totalement, pour la coder en vb.net
    car vb.net et vb6 n'ont pas grand chose à voir même si la plupart du code peut s'importer
    la mauvaise nouvelle c'est que ca demanderait d'apprendre à coder en vb.net, et il y a beaucoup de concepts à voir
    la bonne nouvelle c'est qu'il faut en moyenne entre 5 et 15x moins de code pour faire la même chose en vb.net

    après la plupart des gens répondent "bullshit" et continuent leur copier coller ...
    oui , ça fait plus pro , mais disons que le soft en question m'a pris 6 mois de développement à l"époque donc repartir de zero sur un langage tout neuf

    Citation Envoyé par clementmarcotte Voir le message
    Bonjour,

    Ce n'est pas une réponse directe, mais on dirait que Microsoft a oublié cette partie de son site:

    https://msdn.microsoft.com/fr-ca/vstudio/ms788229

    Le lien de téléchargement du 1er livre à droite semble toujours fonctionner.

    Pour le reste, je n'ai pas regardé plus loin. Je croise les doigts.
    ah merci , j'avais deja trouver une sorte de guide sur ce site, un medecin qui a fait le meme chemin que moi vb6->vb.net , mais de la documentation supplémentaire ne fait pas de mal , encore merci

  8. #8
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Février 2016
    Messages : 11
    Par défaut
    du coup un peu sur le meme theme , existe t-il une sorte de repertoire "officiel" (j'en ai trouvé des fragments pas un bon gros fichier) regroupant les différences entre VB6 et VB.net ?

    par exemple j'ai en VB6 :

    fichier = App.Path & "\ressources\matiere.txt"

    mais "app" n'existe plus en VB.net , par quoi est-il remplacé ???

  9. #9
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    il y a énormément de différences entre vb6 et vb.net, donc je ne pense pas que ca se trouve, tout comme une liste de différences entre vb6 et c++, 2 langages différents sont différents

    cherche dans my.application, ou system.windows.forms.application.current
    sinon il y a system.reflection.assembly.getentryassembly.location
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Février 2016
    Messages : 11
    Par défaut
    plus j'avance avec VB.net plus je me résouds à oublier que passer de VB6 a VB.net serais simplement une evolution.

    je croyais avoir 90% de la base VB qu'il me restait 10% a apprendre de nouveau code mais il semble que ce soit l'inverse

  11. #11
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    oui oui c'est ce que je disais
    vb6 c'est un langage procédural et évènementiel
    vb.net ajoute en plus l'orienté objet (héritage, polymorphisme ...), un peu de fonctionnel (linq), de la réflexivité ("inspection du programme par lui même") etc...
    c'est un langage beaucoup plus évolué

    ce n'est pas une évolution de vb6, à l'origine microsoft a fait un langage nouveau qui ressemble à java (OO managé avec garbage collector pour la libération de la mémoire automatique), sur lequel il a rendu disponible plusieurs syntaxes, qui sont équivalentes entre elles (c#, vb.net ...)
    vb.net hérite des mots clés du basic if/then/else ... là où c# utilise if {} ... (comme le C et java) ; ils utilisent tous les 2 le framework .net

    après en .net il y a plusieurs framework graphiques, le plus ancien étant windows forms, qui était aussi utilisé par vb6, ce qui fait quelques similitudes supplémentaires
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Février 2016
    Messages : 11
    Par défaut
    Ah ok , merci pour l'explication

  13. #13
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour
    Le pseudo c'est quoi "tinmarre" ou "jean nemare"(bande dessine)...Moi aussi !!!

    En GDI+ on utilise des matrices de transformation lineaire c'est scarce mais faisable:
    - Graphics.Translate(), Graphics.RotateTransform(),Graphics.ScaleTransform()

    Les transformations utilises dans GDI+ sont internes .
    Qu'est-ce à dire ? Apres transformation on ne peut accede aux nouvelles coords de l'objet dessine....ni ses dimensions...
    La mise à l'echelle par exemple ,multiplie les dimensions mais egalement les coords de l'objet dessine....Ainsi un objet "mis à l'echelle" est dessine mais avec decalage de l'origine....

    1/ Regle d'or 1 simple :pallier l' inconvenient des Transformations Lineaires(en 2D ou 3D) :
    - deplacer l'objet à l'Origine des coords par defaut du Control soit (0,0) pour un picbox
    - le mettre à l'echelle dans ton cas (500/2000) soit 0.25
    - le deplacer vers son origine initiale...

    2/ Regle d'or 2 : utilizer dans GDI+ des Container Graphics qui encadre et limite les transformation aux seuls objets inclus dans le Container (BeginContainer et EndContainer )....

    code.vb exemple avec un picturebox droppe sur le 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
    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
     
    Imports System.Drawing.Drawing2D
     
    Public Class Form1
        'The user's ellipses.
        Private UnRectA As New Rectangle(50, 70, 350, 200)
        Private UnRectB As New Rectangle(140, 160, 300, 150)
        Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
            'Draw smoothly.
            Dim gr As Graphics = e.Graphics
            gr.SmoothingMode = SmoothingMode.AntiAlias
     
            'Raz 
            gr.ResetTransform()
     
     
            Dim lecon1 As GraphicsContainer = gr.BeginContainer  'debut container1
     
            'Envoi à l'origine des coords
            gr.TranslateTransform(-UnRectA.X, -UnRectA.Y, MatrixOrder.Append)
     
            'Scale  factor de  500/2000=0.25
            Dim scaleX As Single = CSng(500 / 2000)
            Dim ScaleY As Single = CSng(500 / 2000)
     
            gr.ScaleTransform(scaleX, ScaleY, MatrixOrder.Append)
     
            'Renvoi à son origine normale...
            gr.TranslateTransform(UnRectA.X, UnRectA.Y, MatrixOrder.Append)
     
            'Dessin en vert
            gr.DrawRectangle(Pens.Green, UnRectA)
     
            gr.EndContainer(lecon1) 'fin container1
     
     
     
            Dim lecon2 As GraphicsContainer = gr.BeginContainer 'debut container1
     
            gr.TranslateTransform(-UnRectB.X, -UnRectB.Y, MatrixOrder.Append)
     
            'Scale  factor de  500/1000=0.50
            scaleX = 0.5
            ScaleY = 0.5
            gr.ScaleTransform(scaleX, ScaleY, MatrixOrder.Append)
     
            'Rnvoi à son origine normale...
            gr.TranslateTransform(UnRectB.X, UnRectB.Y, MatrixOrder.Append)
     
            'Dessin
            gr.DrawRectangle(Pens.Magenta, UnRectB)
     
            gr.EndContainer(lecon2) 'fin container2
     
            'RECTANGLE ORIGINAL A
            gr.DrawRectangle(Pens.Red, UnRectA)
     
     
            'RECTANGLE ORIGINAL  B
            gr.DrawRectangle(Pens.Blue, UnRectB)
        End Sub
     
    End Class
    bon code......

  14. #14
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Février 2016
    Messages : 11
    Par défaut
    merci d'avoir développé cette façon de faire, mais j'ai fait une mise a l’échelle systématique, c'était plus simple ,mon niveau en .NET n'est pas assez avancé pour utiliser ta méthode.

    mais merci d'avoir pris le temps de la faire, j'y jetterais un coup d’œil dans quelques mois quand mon niveau aura évolué.

  15. #15
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Février 2016
    Messages : 11
    Par défaut
    nouvelle curiosité

    j'appelle une procédure qui remplie 2 RichTextbox et qui "théoriquement" dessine des graph dans des picturebox en même temps.

    le problème est que au lancement de la procédure les graphs ne se dessinent pas, les picture box restent désespéramment vides, j'ai relu mes lignes de codes 1 milions de fois avant d'avoir l'idée de contourner le problème

    j'explique

    lorsque je clic sur un nouvel onglet de mon appli, cette action lance la procedure en question qui pose probleme, donc premier lancement , les picturebox ne se remplissent pas
    j'ai alors mis un bouton provisoire histoire de relancer la procedure une seconde fois en manuel, et là les graphiques se dessinent nickel.

    quelqu'un a-t'il une piste ? est-ce que .net a besoin de deplacer le focus ?

  16. #16
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    les controles se redessinent "souvent"

    aussi si on veut ajouter du dessin qui reste sur les controles il faut le faire dans leur event Paint (appelé après ce que le framework a prévu de dessiner pour votre controle (bordure, texte ...))
    si on le fait par creategraphics au prochain appel de l'event paint tout est effacé, et votre partie ne sera pas remise
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  17. #17
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Février 2016
    Messages : 11
    Par défaut
    je n'ai pas d'évènement "paint"

    et quand je dis que les graph ne se dessinent pas , c'est que le picturebox reste vide meme avec les lignes de codes qui sont censée faire des traits


    j'ai effectué une autre procedure avec la meme methode et tout marche nickel, j'ai meme remplacé le picturebox "defaillant" par une copie du picturebox lié a la procedure qui fonctionne mais sans succes , vb6 etait quand meme moins

  18. #18
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    Citation Envoyé par ftinmar Voir le message
    je n'ai pas d'évènement "paint"
    c'est bien ce que je dis, abonnes toi à l'event paint du picturebox en question (via les combobox en haut de vs)
    et ajoute un peu de gymnastique (variables qui disent ce qu'il faut dessiner)


    Citation Envoyé par ftinmar Voir le message
    vb6 etait quand meme moins
    .net demande en effet d'avoir un peu plus de niveau pour faire des choses simples, mais c'est parce qu'il permet beaucoup plus que vb6
    et il y a aussi le fait que tu connaissais vb6, alors que tu découvres .net ; et vu que ce sont 2 langages différents, c'est normal qu'il y a des méthodes différentes pour faire la même chose
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  19. #19
    Membre habitué
    Homme Profil pro
    Responsable des études
    Inscrit en
    Février 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Février 2016
    Messages : 11
    Par défaut
    c'est quand meme frustrant de réaliser une procedure qui fonctionne nickel , dans refaire une autre 3 jours plus tard sur la meme methode et que cette fois ça ne marche pas

  20. #20
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    c'est frustrant de galérer oui, moi ca fait 2 semaines que je galère sur une API qui n'a de doc que le nom
    par contre c'est plutot bien de voir que le hasard ne fait pas que ca marche à chaque fois

    ce que je veux dire par là c'est que si un truc ne marche pas à chaque fois c'est que tu n'as pas tout compris dans ce que tu utilises, il faut un peu comprendre ce qui se passe derrière avant d'avoir des certitudes sur ce qu'on écrit, et ca ne se fait pas en une semaine, et pas forcément en codant non plus (cours ...)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. A ceux qui ont migré de VB6 vers VB.Net
    Par Fox dans le forum VB 6 et antérieur
    Réponses: 81
    Dernier message: 21/05/2008, 14h56
  2. [VB.NET] Les évènements ne marchent pas
    Par Dnx dans le forum ASP.NET
    Réponses: 6
    Dernier message: 28/01/2005, 12h54
  3. [//TODO] Comment voir les balises TODO dans les problemes?
    Par romain3395 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 06/12/2004, 08h53
  4. [VS.NET] Les design pattern et DOTNET
    Par Nycos62 dans le forum Visual Studio
    Réponses: 4
    Dernier message: 22/10/2004, 14h44
  5. [VB6] [MDI] Parcourir toutes les MDIForms chargées
    Par d.carail dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/10/2002, 09h07

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