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

Flash Pascal Discussion :

Mise en forme d'un texte [Flash Pascal]


Sujet :

Flash Pascal

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut Mise en forme d'un texte
    Bonjour !

    Je continue d'écrire de petits exemples Flash-Pascal.

    J'aimerais l'avoir suffisamment en main pour m'en servir comme d'un outil d'initiation à la programmation, à la place de Turbo Pascal. Gratuit, léger, fonctionnant sans installation, on ne peut plus simple dans sa présentation : dans un sens, c'est l'outil idéal. Je cherche donc à écrire les exemples classiques, dans un style de programmation aussi simple que possible.

    Aujourd'hui j'ai travaillé sur l'affichage de texte, à partir de l'exemple "stringopenarraydemo" de Flash-Pascal 0.8. Très intéressant !

    Voici ce que j'en ai tiré :

    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
     
    program Texte;
     
    // Exemple Flash-Pascal
     
    {$FRAME_WIDTH  600}
    {$FRAME_HEIGHT 400}
    {$BACKGROUND $eeeeee}
     
    uses
      Flash8, Strings;
     
    var
      f : TextFormat;
      t : TextField;
      s1: TString;
      s2: TString;
      s3: string;
      s4: array of string;
     
    procedure Ecrire(s: string);
    begin
      t.text:=t.text+s;
      t.text:=t.text+#13;
    end;
     
    begin
      f:=TextFormat.Create('Tahoma',14);
      f.color:=$111111;
      f.bold:=True;
     
      s1:=TString.Create('abc');
      s2:=TString.Create(s1.substring(1,s1.length_));
     
      s3:='bla';
      s3:=s3+s3;
     
      s4:=['Pierre','Paul','Jacques'];
     
      t:=TextField.Create(nil,'t',0,10,10,400,300);
     
      Ecrire('Exercice Flash-Pascal'+#13);
      Ecrire('s1.valueOf = '+s1.valueOf);
      Ecrire('s2.valueOf = '+s2.valueOf);
      Ecrire('s3 = '+s3);
      Ecrire('s4[0] = '+s4[0]);
     
      t.setTextFormat(f);
    end.
    Je ne connaissais le type array of string. Peut-on le redimensionner après l'avoir initialisé, je veux dire ajouter des éléments ?

    Ensuite j'ai réutilisé le même code pour faire la démonstration d'une fonction récursive basée sur un algorithme d'Euclide. Ça fonctionne.

    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
     
    program ExPGCD;
     
    // Exemple Flash-Pascal
     
    {$FRAME_WIDTH  600}
    {$FRAME_HEIGHT 400}
    {$BACKGROUND $eeeeee}
     
    uses
      Flash8;
     
    var
      f : TextFormat;
      t : TextField;
     
    procedure Ecrire(s: string);
    begin
      t.text:=t.text+s;
      t.text:=t.text+#13;
    end;
     
    function PGCD (a, b: Integer): Integer;
    begin
      Ecrire ('a='+IntToStr(a));
      Ecrire ('b='+IntToStr(b));
      if b = 0 then result := a
      else result := PGCD (b, a mod b);
    end;
     
    begin
      f:=TextFormat.Create('Tahoma',14);
      f.color:=$111111;
      f.bold:=True;
     
      t:=TextField.Create(nil,'t',0,10,10,400,300);
     
      PGCD(12,16);
     
      t.setTextFormat(f);
    end.
    Par contre, je n'ai pas réussi à afficher le résultat de ma fonction dans le programme principal. J'ai essayé de plusieurs façons, mais j'avais toujours le mot "undefined" à la place de mon résultat.

    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Concernant le array of string, encore une fois les dimensions n'ont aucune importance, et je n'ai pas encore mis en oeuvre de contrôle là dessus.

    attention cependant pour les tableaux à dimensions multiples, je ne suis pas certain que ça fonctionne (array of array of...)

    sinon voici une nouvelle version du compilateur qui corrige quelques bugs (dont le undefined ci-dessus), j'ai mis à jour SynEdit avec la dernière version et ajouter le Ctrl+F pour faire des recherche

    au niveau compilation une belle nouveauté aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    {$BITMAP nom 'Fichier.BMP'}
     
    function loadBitmap(id: string): BitmapData external BitmapData.loadBitmap;
     
    var
      bmp : BitmapData;
    begin
      bmp := loadBitmap('nom');
    end;

    voir les méthodes MovieClip.attachBitmap et beginFillBitmap() pour en faire usage.

    NB: le bitmap doit être en 8 ou 32bits uniquement, et il est gzipé dans le SWF.
    faudra que j'ajoute le support JPEG un de ces jours

    PascalEditor.zip
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    voici une nouvelle version du compilateur
    Génial !


    Voici mon exemple complété:

    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
     
    program PGCD;
     
    { Recherche du plus grand commun dénominateur de deux nombres entiers
      par la méthode d'Euclide.
    }
     
    {$FRAME_WIDTH    320}
    {$FRAME_HEIGHT   320}
    {$BACKGROUND $ffffff}
     
    uses Flash8;
     
    var
      f:TextFormat;
      t:TextField;
      c,d:Integer;
     
    procedure Ecrire(s:string);
    begin
      t.text:=t.text+s;
      t.text:=t.text+#13;
    end;
     
    function PGCD(a,b:Integer):Integer;
    begin
     
      Ecrire('a='+IntToStr(a));
      Ecrire('b='+IntToStr(b)+#13);
     
      if b = 0 then result := a
      else result := PGCD (b, a mod b);
     
    end;
     
    begin
      f:=TextFormat.Create('Tahoma',14);
      f.color:=$111111;
      f.bold:=True;
     
      t:=TextField.Create(nil,'t',0,10,10,300,300);
     
      c:=12;
      d:=16;
     
      Ecrire('PGCD('+IntToStr(c)+','+IntToStr(d)+')='+IntToStr(PGCD(c,d)));
     
      t.setTextFormat(f);
    end.

    Citation Envoyé par Paul TOTH Voir le message
    Concernant le array of string, encore une fois les dimensions n'ont aucune importance, et je n'ai pas encore mis en oeuvre de contrôle là dessus.
    Je me demandais comment on pouvait ajouter des éléments. Tout simplement comme ça :

    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
    program ArrayOfString;
     
    {$FRAME_WIDTH    320}
    {$FRAME_HEIGHT   320}
    {$BACKGROUND $ffffff}
     
    uses Flash8, Strings;
     
    var
      f:TextFormat;
      t:TextField;
      a:array of string;
     
    procedure Ecrire(s:string);
    begin
      t.text:=t.text+s;
      t.text:=t.text+#13;
    end;
     
    begin
      f:=TextFormat.Create('Tahoma',14);
      f.color:=$111111;
      f.bold:=True;
     
      t:=TextField.Create(nil,'t',0,10,10,300,300);
     
      a:=['Pierre','Paul'];
     
      a[2]:='Jacques'; // On ajoute un élément
     
      Ecrire(a[0]);
      Ecrire(a[1]);
      Ecrire(a[2]);
     
      t.setTextFormat(f);
    end.
    Autrement y a-t-il quand même un moyen de connaître le nombre actuel d'éléments ? Peut-on écrire quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if a[n]=undefined then position_dernier_element:=n-1


    Citation Envoyé par Paul TOTH Voir le message
    au niveau compilation une belle nouveauté aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    {$BITMAP nom 'Fichier.BMP'}
     
    function loadBitmap(id: string): BitmapData external BitmapData.loadBitmap;
     
    var
      bmp : BitmapData;
    begin
      bmp := loadBitmap('nom');
    end;

    voir les méthodes MovieClip.attachBitmap et beginFillBitmap() pour en faire usage.
    Je vais regarder ça !
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    tu peux utiliser Low(a), High(a) et Length(a) pour connaitre respectivement le premier, le dernier et le nombre d'éléments d'un tableau a

    faudrait vraiment que j'intègre une système d'aide en ligne...mais j'aimerai bien un truc léger façon aide en ligne de Turbo Pascal, car les HLP ne sont plus supportés et les CHM sont trop lourds à mon goût.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    tu peux utiliser Low(a), High(a) et Length(a) pour connaitre respectivement le premier, le dernier et le nombre d'éléments d'un tableau a
    Merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      a:=['Pierre','Paul'];
     
      a[2]:='Jacques';
     
      Ecrire(a[0]);
      Ecrire(a[1]);
      Ecrire(a[2]);
     
      Ecrire('Low(a)='+IntToStr(Low(a)));
      Ecrire('High(a)='+IntToStr(High(a)));
      Ecrire('Length(a)='+IntToStr(Length(a)));

    Citation Envoyé par Paul TOTH Voir le message
    faudrait vraiment que j'intègre un système d'aide en ligne...
    C'est vrai que le manuel actuel est fort court. Heureusement qu'il y a le forum.

    Si je peux donner un coup de main d'une façon ou d'une autre pour la documentation, ça me fera plaisir.

    En attendant je vais continuer mes petites recherches. Je commence à me retrouver et j'ai pas mal d'idées de choses à faire.

    [EDIT]
    Je viens de tomber sur quelque chose qui a un rapport avec le titre de cette discussion. L'unité Flash8Ext permet de se servir de balises HTML:

    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
    program ex190512A;
    uses Flash8Ext;
     
    {$FRAME_WIDTH 200}
    {$FRAME_HEIGHT 200}
    {$BACKGROUND $eeeeee}
     
    var
      t:TextField;
     
    begin
      t:=TextField.Create(nil,'t',0,0,0,200,200);
      t.html:=True;
      t.htmlText:=
      'Ceci est un objet de type <b>TextField</b>'+#13+
      'utilisant une balise HTML.';
    end.
    Bonne idée !
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  6. #6
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    , génial !

    Je débarque et je viens de découvrir la dernière version...
    Super pour l'intégration de BMP.

    Je regarde ça de près....

    @+

  7. #7
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Je viens de tomber sur quelque chose qui a un rapport avec le titre de cette discussion. L'unité Flash8Ext permet de se servir de balises HTML:
    Sympa pour les balises html...

    merci pour l'info...

    @+

  8. #8
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Archimède Voir le message
    Sympa pour les balises html...

    merci pour l'info...
    De rien. C'est dans l'exemple "menutextfieldsoundemo.pas". Les deux balises utilisées dans l'exemple sont le gras et l'italique. Je ne sais pas si d'autres sont disponibles.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  9. #9
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut archimède
    Oui, j'ai essayé , ça ne marche pas.

    merci

    @+

  10. #10
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Quand on veut changer la police ponctuellement, ça peut être sympa :
    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
     
    program ex190512A;
    uses Flash8Ext;
     
    {$FRAME_WIDTH 200}
    {$FRAME_HEIGHT 200}
    {$BACKGROUND $eeeeee}
     
    var
      t:TextField;
     
    begin
      t:=TextField.Create(nil,'t',0,0,0,200,200);
      t.wordWrap:=True;
      t.html:=True;
      t.htmlText:=
      'Ceci est un objet de type <font face="Arial" size="40">TextField</Font>'+#13 +
      'utilisant une balise HTML.';
    end.
    et la couleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Ceci est un objet de type <font face="Arial" size="40" color="#ffff00">TextField</Font>'+#13 +
      'utilisant une balise HTML.';
    @+

  11. #11
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    ce qui est intéressant aussi, c'est l'utilisation de la police symbol :
    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
     
    program ex190512A;
    uses Flash8Ext;
     
    {$FRAME_WIDTH 200}
    {$FRAME_HEIGHT 200}
    {$BACKGROUND $eeeeee}
     
    var
      t:TextField;
     
    begin
      t:=TextField.Create(nil,'t',0,0,0,200,200);
      t.wordWrap:=True;
      t.html:=True;
      t.htmlText:=
       'la taille d''un cheveu peut faire 80 <font face="Symbol" size="14">m</Font>'+'m';
    end.
    c'est important !

    c'est bien...

  12. #12
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Génial ! J'avais essayé mais je n'avais pas su l'écrire comme il faut.
    Ça ouvre pas mal de possibilités, surtout qu'il s'agit d'une variable !
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  13. #13
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Pour ma part je n'ai travaillé que sur l'unité Flash8, toutes les autres viennent de Peter Gabor....et en fait je continue à faire évoluer uniquement Flash8

    pour la mise en forme du texte, il suffit en effet d'ajouter les propriétés html et htmlText, mais j'ai découvert il y a peu trois choses intéressantes...mais je fais un nouveau thread à ce sujet avec une nouvelle version du compilateur
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  14. #14
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    , on attend ça avec impatience...

    Bonne soirée

    @+

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

Discussions similaires

  1. Mise en forme contenu champ texte
    Par Manuxy dans le forum Langage
    Réponses: 2
    Dernier message: 14/03/2008, 13h04
  2. Affecter une valeur concaténée et mise en forme à un INPUT TEXT
    Par debie1108 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/06/2007, 08h58
  3. mise en forme d'un texte avec VBA c'est possible?
    Par Frenchguy dans le forum VBA Access
    Réponses: 6
    Dernier message: 15/05/2007, 11h41
  4. mise en forme d'un texte
    Par Satoris dans le forum Flash
    Réponses: 9
    Dernier message: 03/04/2007, 09h11
  5. [CR9] Mise en forme d'un texte avec un format
    Par Sytchev3 dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 15/02/2007, 13h45

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