Colonne d'un advstringgrid

kalagool Messages postés 20 Date d'inscription lundi 28 février 2005 Statut Membre Dernière intervention 10 mai 2006 - 2 mai 2005 à 09:30
kalagool Messages postés 20 Date d'inscription lundi 28 février 2005 Statut Membre Dernière intervention 10 mai 2006 - 2 mai 2005 à 15:25
Bonjour à toutes et a tous ,



En cette rentrée des classes une question vient à moi:



Est il possible de rendre certaines colonnes d'un advstringgrid
invisible suivant l'état (checked=ture ou checked = false ) d'un
checkbox?







Kalagool

5 réponses

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
2 mai 2005 à 10:45
Hello,



Alors je n'ai pas trouvé la commande pour masquer une colonne mais tu
peux utliser la commande AdvStringGrid1.ColWidths[1] := 0 pour masquer
ta colonne.



Exemple : Quand le CheckBox est décoché on masque la colonne 1



Procedure TForm1.CheckBox1Click(Sender : TObject);

begin



If CheckBox1.Checked then

begin

AdvStringGrid1.ColWidths[1] := CheckBox1.Tag;

end

else

begin

CheckBox1.Tag := AdvStringGrid1.ColWidths[1];

AdvStringGrid1.ColWidths[1] := 0;

end;

end;


Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
kalagool Messages postés 20 Date d'inscription lundi 28 février 2005 Statut Membre Dernière intervention 10 mai 2006
2 mai 2005 à 12:05
Je vois la technique seulement, cela ne marche pas car en realité j'ai 3 colones.

Si mon checkbox.checked

alors colone 2 a le withd:=0;

sinon colone1a le withd:=0;



mais je ne comprend pas à koi sert le .tag dasn ton exemple, c'est peut etre pour cela.....



tiens moi au courant SVP.....jmp77



kalagool
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
2 mai 2005 à 14:22
Re,



Le tag est une propriété incluse dans tous les composants et elle
contient un integer. Par defaut au demarrage du prog elles valent
toujours 0. Dans mon exemple plutot que de declarer une valeur globale
TailleColonne j'ai utiliser le tag du composant checkbox c'est tout.



Alors nouvel exemple appliqué a ton cas :



Procedure TForm1.CheckBox1Click(Sender : TObject);




var

TailleCol : Integer;



begin



If CheckBox1.Checked then

begin

{Affichage de la colonne 1}



{Pour le premier passage car le tag vaut 0 au demarrage de l'appli}

If CheckBox1.Tag = 0 then CheckBox1.Tag := TabEntriesDatas.ColWidths[1];



TailleCol := TabEntriesDatas.ColWidths[2];

TabEntriesDatas.ColWidths[1] := CheckBox1.Tag;

TabEntriesDatas.ColWidths[2] := 0;



{On sauvegarde la taille de la colonne dans le tag}

If TailleCol > 0 then CheckBox1.Tag := TailleCol;

end

else

begin

{Affichage de la colonne 2}



{Pour le premier passage car le tag vaut 0 au demarrage de l'appli}

If CheckBox1.Tag = 0 then CheckBox1.Tag := TabEntriesDatas.ColWidths[2];



TailleCol := TabEntriesDatas.ColWidths[1];

TabEntriesDatas.ColWidths[1] := 0;

TabEntriesDatas.ColWidths[2] := CheckBox1.Tag;



{On sauvegarde la taille de la colonne dans le tag}

If TailleCol > 0 then CheckBox1.Tag := TailleCol;

end;



Sinon avec 2 variables globales :

TailleCol1,TailleCol2 : Integer;



Au demarrage de l'appli tu fais :

TailleCol1 := TabEntriesDatas.ColWidths[1];

TailleCol2 := TabEntriesDatas.ColWidths[2];



Puis dans l'evenement OnClick du checkBox :

Procedure TForm1.CheckBox1Click(Sender : TObject);



begin





If CheckBox1.Checked then

begin


{Affichage de la colonne 1}

TabEntriesDatas.ColWidths[1] := TailleCol1;


TabEntriesDatas.ColWidths[2] := 0;


end

else

begin


{Affichage de la colonne 2}

TabEntriesDatas.ColWidths[1] := 0;


TabEntriesDatas.ColWidths[2] := TailleCol2;


end;



Voila je te laisse choisir ta solution.



Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
2 mai 2005 à 15:13
Re,



C'est bon arretes tout j'ai trouvé la propriété pour masquer une colonne puis la faire apparaitre :



Procedure TForm1.CheckBox1Click(Sender : TObject);



begin





If CheckBox1.Checked then

begin


{Affichage de la colonne 1}

TabEntriesDatas.UnHideColumn(1);

TabEntriesDatas.HideColumn(2);

end

else

begin


{Affichage de la colonne 2}

TabEntriesDatas.HideColumn(1);

TabEntriesDatas.UnHideColumn(2);


end;

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kalagool Messages postés 20 Date d'inscription lundi 28 février 2005 Statut Membre Dernière intervention 10 mai 2006
2 mai 2005 à 15:25
Je te remercie Jmp77,



mais g reussit une methode qui foctionne bien grace a toi ...

mais je vais travailler son celle de ton dernier message.....



En plus mon stage en entreprise finit mercredi alors je vais arreter
d'innonder le forum de question plus ou moins pertinente....



cordialment



Kalagool....
0
Rejoignez-nous