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

Composants VCL Delphi Discussion :

creer et utiliser le composant stringgrid pendant l'execution


Sujet :

Composants VCL Delphi

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 8
    Points
    8
    Par défaut creer et utiliser le composant stringgrid pendant l'execution
    j'ai pu créer un composant stringgrid pendant l’exécution en utilisant le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    for i:=1 to nflux do
     With Tstringgrid.Create(formul.Scrollbox2) Do
      Begin
      name:='stringgrid'+inttostr(i+2);
      Parent := formul.Scrollbox2;
      colcount:=2;
      rowcount:=sommet+1;
      Cells[0,0]:='Flot N° '+inttostr(i);
      Options:=Options+[goEditing];
      width:=160;
      for j:=1 to sommet do Cells[0,j]:=chr(64+j);
      left:=(i-1)*164;
     
      End;
    mais quand je veux l'utiliser pour un affichage j'ai pas pu le faire et voici le code qui a declenché l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if k=1 then equation:=equation+'='+Scrollbox2.stringgrid3.cell[2,i]; 
     if k=2 then equation:=equation+'='+Scrollbox2.stringgrid4.cell[2,i];
     if k=3 then equation:=equation+'='+scrollbox2.stringgrid5.cell[2,i];
    l'erreur est :
    identificateur non déclaré: 'stringgrid3'
    et la même chose pour les autres stringgrid4,stringgrid5

    k est une valeur connu et equation est une chaine de caractères qui permet d'afficher l’équation proprement dite.

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Il n'est pas possible de nommer dans le code de cette façon : le compilateur ne sait pas combien de grilles seront crées avant l'exécution et ne peut les gérer comme des composants déposés en conception sur une fiche.

    Par contre, on peut en création les ajouter à un tableau ou à une liste de grilles.

    On peut également rechercher les composants dont le Owner le permet par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyObject := TMyComponent( HisOwner.FindComponent('HisName') );
    mais c'est plus long, surtout si ce code doit se répéter souvent.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut
    La liste de grille proposée par tourlourou semble une solution simple et pratique

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    mais comment on peut en création les ajouter à un tableau ou à une liste de grilles???

  5. #5
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut
    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
     
    var
      Grilles: array of TStringGrid;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     
      SetLength(Grilles, 4);
      Grilles[0] := TStringGrid.Create(Self);
      Grilles[0].Parent := Self;
     
      Grilles[1] := TStringGrid.Create(Self);
      Grilles[1].Parent := Self;
      Grilles[1].Left := Grilles[0].Left + Grilles[0].Width + 25;
     
      Grilles[2] := TStringGrid.Create(Self);
      Grilles[2].Parent := Self;
      Grilles[2].Top := Grilles[0].Top + Grilles[0].Height + 25;
     
      Grilles[3] := TStringGrid.Create(Self);
      Grilles[3].Parent := Self;
      Grilles[3].Left := Grilles[2].Left + Grilles[2].Width + 25;
      Grilles[3].Top := Grilles[1].Top + Grilles[1].Height + 25;
     
      Grilles[0].Cells[2, 2] := 'Grille0';
      Grilles[1].Cells[2, 2] := 'Grille1';
      Grilles[2].Cells[2, 2] := 'Grille2';
      Grilles[3].Cells[2, 2] := 'Grille3';
     
    end;

  6. #6
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Je ne sais pas ce que tu appelles "en création" : si c'est dynamiquement (= à l'exécution), cf. exemple ci-dessous
    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
    var
      FluxGrids: array of TStringGrid;
    begin
      SetLength(FluxGrids, nflux);
      for i:=1 to nflux 
      do begin
        FluxGrids[i-1]:=TStringGrid.Create(nil);  // i-1 car tableaux dynamiques zero-based
        // pas besoin de passer la ScrollBox comme Owner : référence dans le tableau => on peut libérer manuellement
        with FluxGrids[i-1] do begin
          name:='stringgrid'+inttostr(i+2);
          Parent := formul.Scrollbox2;
          colcount:=2;
          //...
        end;
      end;
    Si c'est en conception (Design Time), ce n'est pas possible : il faut en début d'exécution (FormCreate, par exemple) parcourir les parents et chercher leurs composants avec un FindComponent pour les ajouter au tableau.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    J'ai pas de probleme pour la creation des grilles (pour les flux) mais j'ai un probleme pour les utiliser
    c.a.d :
    j'ai pu les creer selon le nombre de flux (variable nflux) "pendant l'execution' car la variable nflux est saisie lors de l'execution
    mais je ne peut pas les utiliser (je ne peut pas acceder a ces noms par exemple pour effectuer un autre traitement

  8. #8
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Donc, créées selon le code précédent, on utilisera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if k in [1..3] then equation:=equation+'='+FluxGrid[k].cell[2,i];
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Malgré ca toujours le meme probleme
    il cree les composants stinggrid apres la saisie des variables suivantes :
    nombre de sommet , nombre d'arc , nombre de flux

    les stringgrids seront crees selon la valeur de nflux (nombre de flux)

    mais quand je veux les utiliser pour un affichage il m'indique que les strings sont non identifiés

    pour etre claire:

    saisie des valeurs nombre de sommet , nombre d'arcs et nombre de flux
    clique sur un bouton
    creation des stringgrid
    utilisation ( ici se declenche l'erreur)

    merci de votre aide

  10. #10
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Il faudrait plus de ton code pour saisir où ça coince...
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Voici la totalité du code (l'unité)

    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
    unit fformul;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Buttons, Grids, ValEdit, ComCtrls;
     
    type
      Tformul = class(TForm)
        ScrollBox1: TScrollBox;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Edit1: TEdit;
        Edit2: TEdit;
        Edit3: TEdit;
        BitBtn1: TBitBtn;
        BitBtn3: TBitBtn;
        Label4: TLabel;
        StringGrid1: TStringGrid;
        Label5: TLabel;
        StringGrid2: TStringGrid;
        ScrollBox2: TScrollBox;
        Memo1: TMemo;
        procedure BitBtn1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      formul: Tformul;
      sommet,arc,nflux,i,j:integer;
      f1,f2,f3,f4,f5,f6,f7,f8,f9,f10:array of real;
    implementation
     
     
    {$R *.dfm}
     
    procedure Tformul.BitBtn1Click(Sender: TObject);
    var i,j,k,ligne_memo:integer;
        equation:string;
    begin
    label4.Visible:=true;
    label5.visible:=true;
    stringgrid1.Visible:=true;
    stringgrid2.Visible:=true;
    sommet:=strtoint(edit1.Text);
    arc:=strtoint(edit2.Text);
    nflux:=strtoint(edit3.Text);
    // matrice incidence sommet arc
    stringgrid1.ColCount:=arc+1;
    stringgrid1.rowcount:=sommet+1;
    for i:=1 to sommet do stringgrid1.Cells[0,i]:=chr(64+i);
    for i:=1 to arc do  stringgrid1.Cells[i,0]:=inttostr(i);
    //capacité de chaque arc
    stringgrid2.ColCount:=2;
    stringgrid2.rowcount:=arc+1;
    for i:=1 to arc do  stringgrid2.Cells[0,i]:=inttostr(i);
     
    // flux
    For i:=formul.Scrollbox2.ComponentCount-1 DownTo 0 Do formul.Scrollbox2.Components[i].Free;
     
    for i:=1 to nflux do
     With Tstringgrid.Create(formul.Scrollbox2) Do
      Begin
      name:='stringgrid'+inttostr(i+2);
      Parent := formul.Scrollbox2;
      colcount:=2;
      rowcount:=sommet+1;
      Cells[0,0]:='Flot N° '+inttostr(i);
      Options:=Options+[goEditing];
      width:=160;
      for j:=1 to sommet do Cells[0,j]:=chr(64+j);
      left:=(i-1)*164;
     
      End;
    // formulation
     
    // formuler fonction objectif
    memo1.Lines[0]:='Min   ';
    for i:=1 to nflux do
    for j:=1 to arc do memo1.Lines[0]:=memo1.Lines[0]+'C'+inttostr(j)+inttostr(i)+' '+'X'+inttostr(j)+inttostr(i)+'+';
    memo1.Lines[0]:=copy(memo1.Lines[0],0,length(memo1.Lines[0])-1);
    //formuler AXk=rk
    ligne_memo:=1;
    for k:=1 to nflux do
    for i:=2 to stringgrid1.RowCount do
     begin
     equation:='';
     for j:=2 to stringgrid1.colCount do
      begin
       if stringgrid1.Cells[j,i]='1' then equation:=equation+'X'+inttostr(j)+inttostr(k);
       if stringgrid1.Cells[j,i]='-1' then equation:=equation+'-X'+inttostr(j)+inttostr(k);
      end;
     
     if k=1 then equation:=equation+'='+formul.Scrollbox2.stringgrid3.cell[2,i];
     if k=2 then equation:=equation+'='+Scrollbox2.stringgrid4.cell[2,i];
     if k=3 then equation:=equation+'='+scrollbox2.stringgrid5.cell[2,i];
     memo1.lines[ligne_memo]:=equation;
     ligne_memo:=ligne_memo+1;
      end;
    //formuler xij <= bij
     
     
     
    end;
     
    end.

  12. #12
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    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
    unit fformul;
     
    interface
     
    uses
      Windows, Messages, SysUtils, {Variants,} Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Buttons, Grids, {ValEdit,} ComCtrls;
     
    type
      Tformul = class(TForm)
        ScrollBox1: TScrollBox;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Edit1: TEdit;
        Edit2: TEdit;
        Edit3: TEdit;
        BitBtn1: TBitBtn;
        BitBtn3: TBitBtn;
        Label4: TLabel;
        StringGrid1: TStringGrid;
        Label5: TLabel;
        StringGrid2: TStringGrid;
        ScrollBox2: TScrollBox;
        Memo1: TMemo;
        procedure BitBtn1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      formul: Tformul;
      sommet,arc,nflux,i,j:integer;
      f1,f2,f3,f4,f5,f6,f7,f8,f9,f10:array of real;
      FluxGrids: array of TStringGrid;
     
    implementation
     
     
    {$R *.dfm}
     
    procedure Tformul.BitBtn1Click(Sender: TObject);
    var i,j,k,ligne_memo:integer;
        equation:string;
    begin
    label4.Visible:=true;
    label5.visible:=true;
    stringgrid1.Visible:=true;
    stringgrid2.Visible:=true;
    sommet:=strtoint(edit1.Text);
    arc:=strtoint(edit2.Text);
    nflux:=strtoint(edit3.Text);
    // matrice incidence sommet arc
    stringgrid1.ColCount:=arc+1;
    stringgrid1.rowcount:=sommet+1;
    for i:=1 to sommet do stringgrid1.Cells[0,i]:=chr(64+i);
    for i:=1 to arc do  stringgrid1.Cells[i,0]:=inttostr(i);
    //capacité de chaque arc
    stringgrid2.ColCount:=2;
    stringgrid2.rowcount:=arc+1;
    for i:=1 to arc do  stringgrid2.Cells[0,i]:=inttostr(i);
     
    // flux
    For i:=Scrollbox2.ComponentCount-1 DownTo 0 Do Scrollbox2.Components[i].Free;
     
    SetLength(FluxGrids, nflux);
     
    for i:=1 to nflux do
    begin
      FluxGrids[i-1]:=TStringGrid.Create(formul.Scrollbox2);
      with FluxGrids[i-1] do
      Begin
      name:='stringgrid'+inttostr(i+2);
      Parent := formul.Scrollbox2;
      colcount:=2;
      rowcount:=sommet+1;
      Cells[0,0]:='Flot N° '+inttostr(i);
      Options:=Options+[goEditing];
      width:=160;
      for j:=1 to sommet do Cells[0,j]:=chr(64+j);
      left:=(i-1)*164;
      End;
    end;
    // formulation
     
    // formuler fonction objectif
    memo1.Lines[0]:='Min   ';
    for i:=1 to nflux do
    for j:=1 to arc do memo1.Lines[0]:=memo1.Lines[0]+'C'+inttostr(j)+inttostr(i)+' '+'X'+inttostr(j)+inttostr(i)+'+';
    memo1.Lines[0]:=copy(memo1.Lines[0],0,length(memo1.Lines[0])-1);
    //formuler AXk=rk
    ligne_memo:=1;
    for k:=1 to nflux do
    for i:=2 to stringgrid1.RowCount do
     begin
     equation:='';
     for j:=2 to stringgrid1.colCount do
      begin
       if stringgrid1.Cells[j,i]='1' then equation:=equation+'X'+inttostr(j)+inttostr(k);
       if stringgrid1.Cells[j,i]='-1' then equation:=equation+'-X'+inttostr(j)+inttostr(k);
      end;
     
      if k in [1..3] then equation:=equation+'='+FluxGrid[k].cell[2,i];
     
     memo1.lines[ligne_memo]:=equation;
     ligne_memo:=ligne_memo+1;
      end;
    //formuler xij <= bij
     
     
     
    end;
     
    end.
    devrait fonctionner...

    [EDIT] Ne pas oublier le SetLength(FluxGrid, 0) quand on n'a plus besoin d'adresser les grilles par le tableau ; leur libération se faisant par leur Owner = Scrollbox2.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

Discussions similaires

  1. Composant StringGrid
    Par jackvpt dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/04/2005, 19h32
  2. Utilisation du composant TDBImage
    Par kkv dans le forum Bases de données
    Réponses: 4
    Dernier message: 10/03/2005, 17h41
  3. Utilisation d'une StringGrid
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/09/2004, 15h27
  4. Creer et utiliser une librairie externe à l'exécutable
    Par multani dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 06/11/2003, 10h11
  5. [][Timer] Créer un Timer sans utiliser le composant
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 01/10/2003, 11h04

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