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

Delphi Discussion :

[TStringGrid] Une cellule sur plusieurs lignes.


Sujet :

Delphi

  1. #1
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut [TStringGrid] Une cellule sur plusieurs lignes.
    Bonjour à toutes et à tous,
    Je viens de m'apercevoir que les cellules d'un TStringGrid ne prennent pas les lignes multiples.

    J'ai une colonne vente dans mon appli perso, je souhaite renseigner chaque cellule avec un ensemble de ventes. Le plus ergonomique est donc d'avoir pour chaque cellule de cette colonne, une présentation sur plusieurs lignes.

    Seulement, il n'y a pas de propriété WordWrap. J'ai essayé avec l'astuce qui suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     StringGrid1.Cells[2,2] := WrapText('Ligne une Ligne deux ligne trois',15);
    Qui insère bien des retours chariots à 15 pixels, mais à l'affichage, le TStringGrid ignore tout simplement les sauts à la ligne.

    Comment feriez-vous? Merci de votre aide.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 59
    Points : 45
    Points
    45
    Par défaut
    Tu peux utiliser l'evenement ondrawcell et la fonction drawText (API windows) avec l'option DT_WORDBREAK
    _pirBD_

  3. #3
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Merci de ta réponse, j'ai oublié de précisé, mais j'espère pouvoir éviter la dessin manuel des cellules.

    Sinon, un début intéressant, je dimensionne la hauteur de ma cellule (dans l'exemple [3,3]) quand on clique dessus. Puis quand on quitte la cellule, elle reprend ces dimensions d'origines.

    Je vais sûrement avoir besoin de ta solution en y réfléchissant bien.

    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 Modified : Boolean = False;
        OldHeight : Integer;
     
    procedure TForm1.StringGrid1Click(Sender: TObject);
    begin
    With Sender as TStringGrid Do
     If (Col = 3) And (row = 3) And Not Modified Then
       Begin
       OldHeight := RowHeights[Row];
       RowHeights[Row] := (CellRect(Col,Row).Bottom - CellRect(Col,Row).Top) + 100;
       Modified := True;
       End
    end;
     
    procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    Var CCol,CRow : Integer;
    begin
         If Not Modified Then Exit;
         With Sender as TStringGrid Do
         Begin
              MouseToCell(X,Y,CCol,CRow);
              If (CCol <> 3) Or (CRow <> 3) Then
                 Begin
                 RowHeights[3] := OldHeight;
                 Modified := False;
                 End;
         End;
    end;
    [edit]
    Je viens de tenter ça, sans succès:
    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
     
    procedure TForm1.StringGrid1Click(Sender: TObject);
    Var
       Rec : TRect;
       Res : DWORD;
    begin
    With Sender as TStringGrid Do
     If (Col = 3) And (row = 3) And Not Modified Then
       Begin
       Rec := CellRect(Col,Row);
       Res := DrawText(Self.Canvas.Handle,PChar(Cells[3,3]),Length(Cells[3,3]),Rec,DT_WORDBREAK	);
       OldHeight := RowHeights[Row];
       RowHeights[Row] := (CellRect(Col,Row).Bottom - CellRect(Col,Row).Top) + 100;
       Modified := True;
       End
    end;

  4. #4
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Bien je m'approche de la solution.

    Mon souci ce situe dans StringGrid1Click: Il n'y a pas de paint malgré les appels à Repaint, Refresh ou Paint. Pourtant j'utilise bien TextOut ce qui devrait forcer une mise à jour du canvas non?

    Voici le code:
    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
     
    var Modified : Boolean = False;
        OldHeight : Integer;
     
    procedure TForm1.StringGrid1Click(Sender: TObject);
    Var
       Rec : TRect;
       Res : DWORD;
       Temp,Str : String;
       P,H : Integer;
       CRct : TRect;
    begin
    With Sender as TStringGrid Do
    Begin
     If (Col = 3) And (row = 3) And Not Modified Then
       Begin
       H := 0;
     
       OldHeight := RowHeights[Row];
       RowHeights[Row] := (CellRect(Col,Row).Bottom - CellRect(Col,Row).Top) + 100;
       Modified := True;
     
       CRct := CellRect(Col,Row);
       Canvas.FillRect(CRct);
     
       Str := Cells[Col,Row];
       repeat
             P := Pos('||', Str);
             Temp := Copy(Cells[Col,Row],0,P-1);
             H := Canvas.TextHeight(Temp);
             Canvas.TextOut(CRct.Left,CRct.Top+ H,Temp);
             Str := Copy(Str, P + 3, Length(Str) - P - 3);
       until P = 0;
       Canvas.Refresh;
       End;
    End;
    end;
     
    procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    Var
       CCol,CRow : Integer;
    begin
         If Not Assigned(Sender) Then
            Exit;
         If Not (Sender is TStringGrid) Then
            Exit;
         If Not Modified Then
            Exit;
     
         With Sender as TStringGrid Do
         Begin
              // Rechercher le séparateur de chaines, '||'.
              MouseToCell(X,Y,CCol,CRow);
     
              If (CRow <> 3) Then Begin
                 RowHeights[3] := OldHeight;
                 Modified := False
              End;
         End;

  5. #5
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Citation Envoyé par Caine
    Pourtant j'utilise bien TextOut ce qui devrait forcer une mise à jour du canvas non?
    Non absolument pas Textout dessine du texte sur un Canvas et c'est tout, c'est à toi d'appeler Invalidate (ou autre) pour tout rafraichir.

    A ce propos, je ne comprends pas bien l'intérêt de ton Canvas.Refresh dans StringGrid1Click... Appelle plutot Repaint ou Invalidate mais sur le TStringGrid directement...
    Et normalement, tu peux avoir le ststut (sélectionné ou non) dans OnDrawCell de ce TStringGrid... Tu peux donc choisir faire ce que tu veux comme ça (redessiner le texte par exemple)
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  6. #6
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Bonjour,
    Merci.

    Le but est d'avoir une cellule qui dans le cas où elle est séléctionnée se dimensionne en hauteur à une valeur suffisante pour afficher le contenu de la propriété Cells[Col,Row] sur plusieurs lignes.

    J'ai tenté avec Repaint ou même Paint=> Nada !

    Et pour avoir tenté une fois la modification de la hauteur dans le OnDrawCells, je n'ai pas refait. Dans ce cas, le dessin de la grille part complètement en vrille!

    Précision: A la base le code de la boucle se trouvait dans MouseMove, il marchait très bien sans appel au dessin.

  7. #7
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    OK
    je cerne mieux le problème
    Ce que je te propose: essaie avec OnDrawCell et la paramètre de statut pour savoir si la cellule repainte est sélectionnée ou non. Si oui, retaille la cellule, sinon, remet-la à DefaultHeight...
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  8. #8
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    En passant, comme ça, à tout hasard :
    N'aurais tu pas oublier de mettre la propriété DefaultDrawing de ton StringGrid à False ?
    Bidouilleuse Delphi

  9. #9
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Salut,
    Non, je veux que le dessin des bordures et du font soient par défaut, seul le texte est rendu d'une autre manière.

    Bon, je me repenche sur ça ce soir (si je ne suis pas défrag).

  10. #10
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    C'est dans la

    Ici : http://delphi.developpez.com/faq/?pa...tdansstringrid

    voilà, voilà
    Bidouilleuse Delphi

  11. #11
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    MERCIIIIIIIIIIIIIIIIIII

    Ca y est depuis quand? j'ai fait une recherche ce WE sans avoir ce résultat!


    Bon je teste dès que possible. (Enfin je finirais quand même par mettre au point mon bout de code, manière de voir).

  12. #12
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Attends attends, sans te précipiter !
    Parce que par rapport à ce que tu souhaites, il te faut l'adapter

    Moi je te propose ça (Une fiche+Un StringGrid) avec les évènements du StringGrid codés 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
    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
     
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Grids, StdCtrls;
     
    type
      TForm1 = class(TForm)
        StringGrid1: TStringGrid;
        procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
          Rect: TRect; State: TGridDrawState);
        procedure StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;
          const Value: String);
        procedure StringGrid1KeyDown(Sender: TObject; var Key: Word;
          Shift: TShiftState);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
        r,c:Integer;
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     //Calcule la taille EXACTE d'un texte à partir d'une police de caractères choisie (Marche avec tous types de Polices : TrueType, etc...)
    function TextSize(Phrase:string;police:TFont=nil):TPoint;
    var
      DC: HDC;
      X: Integer;
      Rect: TRect;
      C : TBitmap;
    begin
      C := TBitmap.create;
    try
      if police <> nil then  C.canvas.Font := police;
     
        Rect.Left := 0;
        Rect.Top:=0;
        Rect.Right:=0;
        Rect.Bottom:=0;
        DC := GetDC(0);
        C.Canvas.Handle := DC;
        DrawText(C.Canvas.Handle, PChar(Phrase), Length(Phrase), Rect, (DT_EXPANDTABS or DT_CALCRECT));
        C.Canvas.Handle := 0;
        ReleaseDC(0, DC);
        result.X:=Rect.Right;
        result.Y:=Rect.Bottom;
    finally
      C.Free;
    end;
    end;
     
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
      with Sender as TStringGrid do with Canvas do
      begin
        { Sélection de la couleur de fond }
        if gdFixed in State then
          Brush.Color := clBtnFace
        else if gdSelected in State then
                Brush.Color := clNavy
              else Brush.Color := clWhite;
     
        { Dessin du fond }
        FillRect(Rect);
     
        { Sélection de la couleur de texte }
        if gdSelected in State then
          SetTextColor(Canvas.Handle,clWhite)
        else SetTextColor(Canvas.Handle,clBlack);
     
        { Dessin du texte en utilisant la fonction API }
        DrawText(Canvas.Handle, PChar(Cells[ACol,ARow]), -1, Rect ,DT_NOPREFIX or DT_WORDBREAK );
      end;
    end;
     
    procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
      ARow: Integer; const Value: String);
    var APoint:TPoint;
    begin
      //Calcule la taille du texte
      APoint:=TextSize(Value,StringGrid1.Font);
     
      //Si le texte est plus "haut" que la ligne, on redimensionne la ligne)
      if APoint.Y>StringGrid1.RowHeights[ARow]
      then StringGrid1.RowHeights[ARow]:=APoint.Y; //<--Là tu peux ajouter une constante (comme une marge)
    end;
     
    procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      //Permet le retour chariot comme "caractère"
      if Key = VK_RETURN then
        StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] := StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] + sLineBreak;
    end;
     
    end.
    Tu mets, dans les Propriétés du StringGrid, les Options suivantes à True :
    - goEditing
    - goAlwaysShowEditor

    Et ça devrait te dimensionner les lignes automatiquement quand tu rentre du texte
    Bidouilleuse Delphi

  13. #13
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Géant !

    Merci d'avoir pris le temps d'adapter le code. D'ailleurs merci à tous ceux qui ont pris le temps de se pencher sur ce problème.

    Merci, donc l'astuce pour la Faq c'est que j'ai cherché obstinément avec TStringGrid!

  14. #14
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut
    Bonjour,

    Je me permet de revenir sur ce sujet.
    J'ai comme l'impression qu'il manque quelque chose.

    L'écriture sur plusieures lignes, c'est parfait.
    Mais quelqu'un a-t-il une idée pour que les hauteurs de lignes s'auto dimensionnent aussi, autrement qu'en édition.

    Car précisément, je n'utilise pas l'édition, ma grille est remplie toute seule.

    Quelqu'un ? Waskol ?

    Merci d'avance pour vos idées

    PLUS FORT ENSEMBLE !Et plus joli aussi
    (\ _ /)
    (='.'=) Voici Lapinou.
    (")-(")
    Aidez le à conquérir le monde en le reproduisant.

    http://ashbasket.free.fr

  15. #15
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut
    A vrai dire, en reprenant le code de Waskol et en recupérant la nouvelle hauteur du texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        { Dessin du texte en utilisant la fonction API }
        TextHauteur := DrawText(Canvas.Handle, PChar(Cells[ACol,ARow]), -1, Rect ,DT_NOPREFIX or DT_WORDBREAK );
     
        if (TextHauteur > DefaultRowHeight) and (TextHauteur > RowHeights[ARow]) then
          RowHeights[ARow] := TextHauteur;

    J'arrive à redimenssionner la hauteur de la ligne en cours.
    Mais le retour en arrière ne fonctionne pas.
    Cela semble logique puisque lorsque TextHauteur < RowHeights[ARow] je ne fait rien.

    PLUS FORT ENSEMBLE !Et plus joli aussi
    (\ _ /)
    (='.'=) Voici Lapinou.
    (")-(")
    Aidez le à conquérir le monde en le reproduisant.

    http://ashbasket.free.fr

  16. #16
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut
    Bon j'ai résolu mon probleme comme un grand :

    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
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    var TextHauteur : Integer;
    begin
     
      with Sender as TStringGrid do with Canvas do
      begin
        if ACol = 0 then fHauteur := DefaultRowHeight;
     
        { Sélection de la couleur de fond }
        if gdFixed in State then
          Brush.Color := clBtnFace
        else if gdSelected in State then
                Brush.Color := clHighlight
              else Brush.Color := clWindow;
     
        { Dessin du fond }
        FillRect(Rect);
     
        { Sélection de la couleur de texte }
        if gdSelected in State then
          SetTextColor(Canvas.Handle, COLOR_HIGHLIGHTTEXT)
        else SetTextColor(Canvas.Handle,COLOR_WINDOWTEXT);
     
        { Dessin du texte en utilisant la fonction API }
        TextHauteur:= DrawText(Canvas.Handle, PChar(Cells[ACol,ARow]), -1, Rect ,DT_NOPREFIX or DT_WORDBREAK );
     
        if TextHauteur > fHauteur then fHauteur := TextHauteur;
     
        if ACol = ColCount -1 then
          RowHeights[ARow] := fHauteur;
     
      end;
    end;
    Donc, j'ai ajouté au code de Waskol, la vérification du plus haut texte de la ligne. Et je l'affecte à la ligne lorsque l'on dessine la derniere cellule de la ligne.
    Et quand on dessine la premiere cellule de la ligne, le plus haut texte est remis à ca valeur par défaut.

    Arf, j'ai également retirer les couleurs par défaut ( clNavy...) car en fonction des themes, c'est bien de garder l'uniformitée.

    Voilà.

    PLUS FORT ENSEMBLE !Et plus joli aussi
    (\ _ /)
    (='.'=) Voici Lapinou.
    (")-(")
    Aidez le à conquérir le monde en le reproduisant.

    http://ashbasket.free.fr

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

Discussions similaires

  1. Répartir le contenu d'une cellule sur plusieurs lignes
    Par Sandrineboubou dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/02/2019, 09h45
  2. [XL-2003] Répartir le contenu d'une cellule sur plusieurs lignes
    Par Leehan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/10/2012, 15h06
  3. Réponses: 4
    Dernier message: 22/01/2008, 16h59
  4. Cellule sur plusieurs lignes
    Par Mister Nono dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/10/2006, 16h32
  5. [JTable] Cellules sur plusieurs lignes
    Par otsgd dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 20/04/2005, 15h25

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