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

Free Pascal Discussion :

[FreePascal] Wireframe system et librairie


Sujet :

Free Pascal

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 65
    Points
    65
    Par défaut [FreePascal] Wireframe system et librairie
    Salut

    J'ai un truc à faire en Pascal et ça fait des années-lumières que j'ai rien touché de la sorte (sachant que le seul pascal que j'eusse fait, c'était des trucs basiques et trop cons)

    Le problème c'est qu'il faut que j'adapte un code source pour faire un "wireframe system" ou un système de visualisation pour objets en "fil de fer"

    Malheureusement je ne sais pas du tout si j'ai besoin de libraire et si oui comment je les trouve? de quoi dépendent-elles? comment je les inclue ?

    Je dis ca car y'a une petite note en haut du code source que j'utilise qui est :
    The following constants, types, procedures are device specific, declared here for clarity. You should substitute all occurences of these in the program with the relevant values and routines for your own graphics device
    Autre question, si toutefois cela dépend de l'environnement de dév', quel est le mieux dans ce cas ? pour l'instant je n'ai rien compilé et j'ai juste tapé du texte... genre un TurboPascal ou je ne sais quoi... y'a des différences flagrantes ? des choses impossibles avec certains ?

    merci d'avance

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 939
    Points : 59 419
    Points
    59 419
    Billets dans le blog
    2
    Par défaut Re: [newbie] Wireframe system et librairie
    Bonjour !
    Citation Envoyé par MatMeuh
    il faut que j'adapte un code source pour faire un "wireframe system" ou un système de visualisation pour objets en "fil de fer"
    Le source est dans quel langage ?
    Est-il possible de voir un échantillon du résultat à obtenir ?

    Citation Envoyé par MatMeuh
    Malheureusement je ne sais pas du tout si j'ai besoin de libraire et si oui comment je les trouve? de quoi dépendent-elles? comment je les inclue ?
    ...
    si toutefois cela dépend de l'environnement de dév', quel est le mieux dans ce cas ? pour l'instant je n'ai rien compilé et j'ai juste tapé du texte... genre un TurboPascal ou je ne sais quoi... y'a des différences flagrantes ? des choses impossibles avec certains ?
    Pour t'aider à choisir un compilateur, tu disposes d'un tableau comparatif :
    http://pascal.developpez.com/compilateurs/
    et d'un débat sur le forum :
    http://www.developpez.net/forums/viewtopic.php?t=60551
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 65
    Points
    65
    Par défaut
    Le source est dans quel langage ?
    en pascal !!! je viens de finir de taper ce qu'on m'avait donné!

    mais il me manque des éléments de réponse. Etant une ouiche en pascal (ou ayant des souvenirs très loin) et l'ayant abandonné pour c/c++/java, je ne sais pas comment s'inclue des libraires (l'équivalent du #include) si toutefois il fallait en inclure... ou le spécifier à l'environnement de dév'...


    merci pour vos lumières

    ps: si vous voulez le code je peux vous l'envoyer par mail, il est relativement volumineux (plus de 1000 lignes) et ne passerait pas dans un post digne de ce nom !

  4. #4
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Pour inclure une libraire, on utilise l'instruction uses
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  5. #5
    Membre habitué
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Points : 166
    Points
    166
    Par défaut
    Ou l'instruction {$l <path to obj>} pour inclure un OBJ.

    Dans la vie, il y a 10 sortes de personnes. Ceux qui comprennent le binaire et les autres...


  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 65
    Points
    65
    Par défaut
    et ces librairies sont standards ? ou peut on en trouver une description claire (en francais de préférence) ?

    par exemple pour les fonctions d'affichage à l'écran (dessiner un point, une droite, un cercle...) ou pour les fonctions ou éléments (ex : "get", dans le code que j'ai il y a cette fonction et à la compil il me met un truc du genre "moi pas connaitre")


    merci encore et d avance

  7. #7
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut


    L'aide en ligne du compilateur est très utile, il ne faut pas l'oublier !
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  8. #8
    Membre habitué
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    En Turbo Pascal on utilise surtout l'unité Graph (GRAPH.TPU). Si tu connais Turbo C++, c'est (quasiment) la même unité que <graphics.h>, les fonctions s'utilisent pareil.
    La fonction Get n'existe pas dans Graph.Tpu, mais deux fonctions s'en rapprochent : GetX(position du curseur en X), GetY(position du curseur en Y), GetmaxX(abscisse maximale du mode), GetmaxY(ordonnée maximale du mode), Getpixel(retourne la couleur du pixel spécifié par ses coordonnées).

    Si tu as Turbo Pascal 7, tu peux trouver de l'aide directement dans l'IDE : Il suffit d'écrire le mot "GRAPH", de mettre le curseur sur le mot et d'appuyer sur CTRL+F1. Ou directement de chercher dans l'aide les "fonctions et procédures de l'unité GRAPH".
    Sinon tu peux faire une recherche sur Google : "graph.tpu source code" marche bien, je crois...


    a++

    Dans la vie, il y a 10 sortes de personnes. Ceux qui comprennent le binaire et les autres...


  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 65
    Points
    65
    Par défaut
    oki...

    on a pas du se comprendre pour la fonction get
    j'ai un bout de prog qui est cela (recopié littéralement)

    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
     
    procedure ReadString (var s: String2);
    var
       spos : integer;
    begin
       spos := 0;
       while NOT eoln do
       begin
           if spos <MaxStringLength then
           begin
               spos := spos + 1 ;
               s.char_at[spos] := input^
           end; {***}
           get(input)
       end;
       readln;
       s.length :=spos
    end;
    je compile avec FreePascal et il me sort les erreurs suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "error : illegal qualifier" (pour la ligne marquée {***})
    "error : identifier not found GET" (juste en dessous)
    "error : illegal expression" (encore en dessous)
    alors p-e que c'est parce que j'ai pas bien inclus qqchose... y'a p-e des libs standards non ? style stdlib.h du C...

    voila mon "uses" (j'ai fait un ctrlC ctrlV d'un exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    uses
    graph,
    WinCrt,
    strings,
    SysUtils;

    merci bp

    ps: FreePascal c'est p-e pas le mieux pour l'aide si ?

  10. #10
    Membre habitué
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    je ne connais pas beaucoup FreePascal mais la fonction get() me semble plutôt une procédure d'acquisition de char ou quelque chose dans le genre. Ca, évidemment, si tu n'as pas déclaré la bonne unité, le compilo ne la reconnaîtra pas.
    L'erreur marquée à la ligne "End;" ne porte pas sur cette ligne-là mais sur l'affectation au dessus(ça doit poser problème avec le pointeur).
    Enfin, au niveau de l'aide, moi j'ai downloadé FP récemment et... l'aide est vide! Donc pour ça, un seul remède :

    a++

    Dans la vie, il y a 10 sortes de personnes. Ceux qui comprennent le binaire et les autres...


  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 65
    Points
    65
    Par défaut
    non à priori get et input c'est pour des fichiers comme dans le lien ci-dessous

    http://ina.eivd.ch/publications/cour...p10.htm#10.3.4
    j'ai donc l'impression que j'ai besoin d'une librairie en particulier... mais aucune idée pour trouver laquelle !!!

    ps: c'est quoi le "bgi" ? parce qu'étant donné que la finalité de mon programme c'est d'afficher des choses j'ai cherché et à chaque fois ca parle de bgi... mais j'ai rien de tel sur mon pc (j'ai installé freepascal et devpascal)

  12. #12
    Membre habitué
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Points : 166
    Points
    166
    Par défaut
    BGI signifie Borland Graphic Interface. C'est un ensemble de fonctions, de procédures et de drivers pour gérer un affichage graphique. Normalement, avec l'unité graph, on utilise le driver EGAVGA.BGI, (les .BGI sont les drivers pour le matos), mais il y a d'autres drivers plus performants (VESA16.BGI, ou SVGA.BGI).
    Personnellement, je n'ai jamais eu aucun problème ni avec le compilateur Turbo Pascal 7, ni son EDI (et il est en download libre sur ce site). Si tu veux développer en 32 bits, tu devrais plutôt te mettre à Delphi

    a++

    Dans la vie, il y a 10 sortes de personnes. Ceux qui comprennent le binaire et les autres...


  13. #13
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    L'avantage de freepascal, c'est qu'il est multi-plateforme, contrairement à Delphi qui est exclusivement pour Windows Le compilateur (Freepascal ou Delphi) est une conséquence logique de la plateforme...
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  14. #14
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Bonjour !

    Je ne sais pas où tu as déniché ce cours de Pascal, mais en tout cas il s'appuie sur des notions dépassées à l'heure actuelle où le langage Pascal est développé quasi uniquement par Borland. De fait, si l'utilisation de input et du couple get/put a été d'actualité, ce n'est plus du tout le cas actuellement. Autant donc oublier et se rabattre sur le standard d'aujourd'hui.

    Les fichiers input et output désignent respectivement l'entrée standard (usuellement le clavier) et la sortie standard (l'écran). Leur utilisation est aujourd'hui implicite dans le langage Pascal : en fonction des procédures/fonctions utilisées, les fichiers input et output sont appelés à bon escient et le programmeur n'y a recourt à présent que lorsqu'il souhaite effectuer des redirections (lire l'entrée standard depuis un fichier par exemple).

    Pour lire un caractère sur l'entrée standard, tu vas donc abandonner les instructions suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var
      c: Char;
    begin
      c := Input^;
      Get(Input);
      ...
    Au profit de ce qui se fait à présent, à savoir utiliser ReadKey de l'unité Crt ou WinCrt selon le compilateur/la plateforme visée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    uses
      Crt;
    var
      c: Char;
    begin
      c:= ReadKey;
      ...
    Si tu tiens vraiment à utiliser Get et ses amis et à considérer Input comme un pointeur et non comme un fichier, tu peux t'amuser à redéfinir tout le monde, mais avec FreePascal, tu risques de te casser les dents (mode protégé oblige...).
    Un petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var
      Input: PChar;
     
    procedure InitInput;
    begin
      Input := Ptr(Seg0040, $001A);
    end;
     
    procedure Get(InPtr: PChar);
    begin
      InPtr^ := Char(Ptr(Seg0040, $001C)^);
    end;
    D'une manière générale, Get a été remplacé par le couple Read/ReadLn et Put par Write/WriteLn.

    Si tu veux des cours à jour : http://pascal.developpez.com/cours/

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 65
    Points
    65
    Par défaut
    hdd34 merci bp pour cette info... en même temps je m'en doutais un peu mais c'est confirmé faut dire que ce code date de 1989

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String2 = record
               length : integer;
               char_at : CharString;
               end;
    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
    procedure ReadString (var s: String2);
    var
       spos : integer;
    begin
       spos := 0;
       while NOT eoln do
       begin
           if spos <MaxStringLength then
           begin
               spos := spos + 1 ;
               s.char_at[spos] := input^
           end;
           get(input)
       end;
       readln;
       s.length :=spos
    end;
    donc en gros ca permet de lire une chaine de caractere mais ca met cela dans une structure perso un peu différente...

    la question maintenant est : "quel est le moyen simple de traduire cela en pascal nouvelle génération ?"

    si c'est juste en mettant le readkey... ca me va !!! mais je me doute qu'il y a d'autre "deprecated" dans le bout de code ci-dessus ? verdad ???

    merci bp en tout cas !!!

    ps: et pour faire du graphique sous freepascal (environnement dev pascal) il faut faire quoi ? juste téléchargé les fichiers BGI ? ou bien ceci est complétement impossible et il faut impérativement passer a borland ?

  16. #16
    Membre habitué
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Points : 166
    Points
    166
    Par défaut
    Bonsoir,

    Pour réécrire ça en Pascal moderne, on laisse tomber le type String2, qui est inutile désormais puisqu'il existe un type prédéfini STRING. On devrait donc obtenir quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure ReadString (var s: String);
    var
       spos : integer;
    begin
       spos:=0;
       while (spos<256) AND (Eoln) do 
       begin
           inc(spos);
           s[spos]:=readkey;
       end;
    end;

    a++

    Dans la vie, il y a 10 sortes de personnes. Ceux qui comprennent le binaire et les autres...


  17. #17
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Eh bien vous aimez la complexité des choses au moins
    Pour remplacer ton truc ? Simple !

    Deux cas de figure : soit tu veux garder la procédure ReadString, avec le type String2, et dans ce cas, tu vas te compliquer sérieusement la vie, avec un code de ce genre (en n'oubliant pas d'inclure l'unité Strings avec un uses Strings en début de programme) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure ReadString(var s: String2);
    begin
      { On initialise la structure à zéro }
      FillChar(s, SizeOf(s), 0);
      ReadLn(s.char_at);
      s.length := StrLen(s.char_at);
    end;
    Soit tu simplifies la chose, en ne te servant que des procédures ReadLn et Length qui permettent à présent de faire tout ça très simplement.
    Ainsi, à tous les endroits où tu verras "ReadString(s);", il suffira de remplacer les types String2 par des String tout bête et de mettre "ReadLn(s);", et à tous les endroits où tu verras un "s.length", il suffira de mettre "Length(s);".


    En ce qui concerne la BGI : celle-ci est uniquement présente avec les produits Borland, donc Turbo Pascal puisqu'il s'agit de Pascal ici. Avec FreePascal, il n'y a pas de BGI en tant que telle, mais juste une unité Graph qui se suffit à elle-même. Pas be soin de se casser la tête avec les drivers... Seul le chemin d'accès aux éventuelles polices de caractères peut servir.
    Pour l'initialiser, il suffit de regarder dans l'aide si je ne m'abuse
    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
    uses
      Graph;
     
    var 
       Gd, Gm: SmallInt; 
       PathToDriver: String; 
     
    begin 
       Gd := D16bit; { Mode 16 bits, 65536 couleurs } 
       Gm := m640x480; { Résolution 640x480 pixels } 
       PathToDriver := 'C:\FPascal\BGI'; { Chemin d'accès aux "drivers", aux polices en fait } 
       InitGraph(Gd, Gm, PathToDriver); { Lancement du mode graphique }
       if GraphResult = grOk then 
      begin
        ...
        CloseGraph; { Fermeture du mode graphique }
      end
      else
        WriteLn('Erreur lors de l''initialisation du mode graphique');
    end.

    Tu mets ici au goût du jour tout un programme. Ceci nécessite en général une bonne connaissance du langage, ce que tu ne possède pas. Prépare-toi à passer des moments difficiles Le C, le Java et le Pascal, ce ne sont pas des mondes identiques. Tu vas avoir des surprises.

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Hdd34
    Tu mets ici au goût du jour tout un programme. Ceci nécessite en général une bonne connaissance du langage, ce que tu ne possède pas. Prépare-toi à passer des moments difficiles Le C, le Java et le Pascal, ce ne sont pas des mondes identiques. Tu vas avoir des surprises.
    ok... coooool... et moi qui avait prévu de dormir d'ici fin juin !!!

    ps: je vous recontacte quand je suis en galère de plus de 2 heures ou que je vois de la lumière...

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

Discussions similaires

  1. System.out.println pour debug de librairie
    Par jb_le_grand dans le forum Langage
    Réponses: 5
    Dernier message: 12/08/2007, 10h16
  2. Réponses: 5
    Dernier message: 05/03/2007, 15h30
  3. [Librairies] Quel système de cache utiliser pour un forum?
    Par Cyrius dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 16/10/2005, 11h43
  4. [VB6] [Système] Récupérer le contenu d'une fenêtre DOS
    Par Nounours666 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 18/11/2004, 16h38
  5. compatibilité des librairies directX8
    Par Freakazoid dans le forum DirectX
    Réponses: 3
    Dernier message: 23/05/2002, 21h33

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