suppression d'une row ds un TStringgrid ?

suppression d'une row ds un TStringgrid ? - Delphi/Pascal - Programmation

Marsh Posté le 28-03-2003 à 00:15:23    

Ca fait qqe jours que je parcours l'aide de delphi, ainsi que les différentes propriétés et méthodes du TStringgrid. Mais je ne trouve rien qui renvoie l'indice d'une ligne selectionnée, et rien qui permet de supprimer cette ligne.
 
J'ai juste trouvé le moyen de supprimer la dernière ligne en faisant Stringgrid.rowcount := Stringgrid.rowcount -1;
Mais c'est pas forcément tjs la dernière ligne qu'on désire supprimer... :/
 
Y a t-il une manière de s'en sortir, ou existe t-il un composant plus adapté?
 
En fait j ai une Stringgrid de 3 colonnes (nom, telephone, status), et qd je fait un ajout d'utilisateur via une autre fenetre, qd je reviens sur la fenetre avec ma Stringgrid, les informations encodées s'affiche ds la grille. Et donc je veux pouvoir supprimer une ligne assez rapidement ;)
Si qqn a une solution, je suis preneur !

Reply

Marsh Posté le 28-03-2003 à 00:15:23   

Reply

Marsh Posté le 28-03-2003 à 09:38:43    

StringGrid.Rows.Delete(num de la ligne);

Reply

Marsh Posté le 28-03-2003 à 14:36:16    

:whistle:


Message édité par zion le 28-03-2003 à 14:40:43

---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 28-03-2003 à 14:40:40    

Je confirme :D
Mais la Listview permet d'éditer que la 1e colonne, donc pas tj le choix.
Y a Virtual Treeview qui est pas mal mais bon c'est plus difficile à utiliser que la StringGrid; et la façon dont ça s'utilise n'est pas la même non plus.

Reply

Marsh Posté le 28-03-2003 à 20:14:45    

antp a écrit :

Je confirme :D
Mais la Listview permet d'éditer que la 1e colonne, donc pas tj le choix.
Y a Virtual Treeview qui est pas mal mais bon c'est plus difficile à utiliser que la StringGrid; et la façon dont ça s'utilise n'est pas la même non plus.


 
En fait, pas vraiement.
C'est juste qu'il faut transposer la structure en arbre vers un tableau.


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 28-03-2003 à 20:32:04    

:??: de quoi tu parles ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 28-03-2003 à 20:39:35    

antp a écrit :

:??: de quoi tu parles ?
 


 
Le Virtual TreeView a ete concu pour afficher des ... arbres [:ddr555]
Afficher des tableaux avec demande quelques effets de manche et on perd en fonctionnalites (genre la recherche incrementale qui ne va fonctionner que sur la 1ere colonne).


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 28-03-2003 à 20:57:34    

ha, ouais, mais bon... ca marche pas si mal en tableau tu sais ;)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-03-2003 à 02:39:19    

en fait j'ai essayer avec delete mais il me met une erreur sans arret, et ds l'aide de delphi comme description il indique ceci :"Empêche que les chaînes ne soient supprimées." Ce qui est un peu paradoxal ...
De plus avant de pouvoir effacer une ligne je dois connaitre l'indice de la ligne selectionnée..
 
voici l'image de l'interface
http://users.skynet.be/fa008071/test.jpg
je veux pouvoir me positionner sur une ligne et cliquer sur supprimé.. apparement c'est pas aussi simple que je ne pensais et je pratique le delphi depuis tres peu de tps ce qui ne facilite pas les choses ;)

Reply

Marsh Posté le 24-03-2005 à 18:23:58    

GuYzMo a écrit :

en fait j'ai essayer avec delete mais il me met une erreur sans arret, et ds l'aide de delphi comme description il indique ceci :"Empêche que les chaînes ne soient supprimées." Ce qui est un peu paradoxal ...
De plus avant de pouvoir effacer une ligne je dois connaitre l'indice de la ligne selectionnée..
 
voici l'image de l'interface
http://users.skynet.be/fa008071/test.jpg
je veux pouvoir me positionner sur une ligne et cliquer sur supprimé.. apparement c'est pas aussi simple que je ne pensais et je pratique le delphi depuis tres peu de tps ce qui ne facilite pas les choses ;)


Reply

Marsh Posté le 24-03-2005 à 18:23:58   

Reply

Marsh Posté le 24-03-2005 à 18:25:39    

Voici une fonction qui te permet de détruire la ligne désirée d'un stringgrid :
 
Tu lui passes la ligne  
Puis ton stringgrid  
La fonction te retournera True si tout c'est bien passé ou false en cas d'erreur
 
function DeleteRowStringGrid(Row : Integer; var StrGrid : TStringGrid) : Boolean;
 
var
I,J : Integer;
List : Array of TStringList;
 
begin
Result := True;
 
   Try
   SetLength(List,StrGrid.ColCount); {Dimensionnement du tableau dynamique}
 
      For I:=0 to High(List) do List[I] := TStringList.Create; {Création des StringList}
 
      Try
 
         For I:=0 to High(List) do
         begin
         {Récupération des données du stringrid dans les tstringlist}
 
            For J:=0 to StrGrid.RowCount-1 do
            List[I].Add(StrGrid.Cells[I,J]);
         end;
 
         For I:=0 to High(List) do List[I].Delete(Row); {Destruction de la ligne}
 
      {On enleve une ligne au stringrid}
      StrGrid.RowCount := StrGrid.RowCount - 1;
 
         For I:=0 to High(List) do
         begin
         {remet les résultats dans le stringrid}
 
            For J:=0 to StrGrid.RowCount-1 do
            StrGrid.Cells[I,J] := List[I].Strings[J];
         end;
      Finally
 
         For I:=0 to High(List) do List[I].Free; {Libération de la mémoire}
      end;
   Except
   Result := False;
   end;
end;
 
http://www.delphifr.com/forum.v2.a [...] 07620&nb=1

Reply

Marsh Posté le 24-03-2005 à 19:13:39    

C'est un peu lourd hein de tout balancer dans des listes temporaires juste pour virer une ligne :o Le truc que j'avais donné il y a deux ans fonctionne, non ? Sinon il suffit de décaler toutes les lignes puis diminuer le nombre de lignes d'un.


Message édité par antp le 24-03-2005 à 19:14:17

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-06-2006 à 15:48:44    

non ca marche pas :o
TStringGrid.Rows[] est une property qui renvoi la TString correspondant au colonnes  
 
cependant : http://www.scalabium.com/faq/dct0057.htm

Reply

Marsh Posté le 01-07-2006 à 15:34:15    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed