Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1317 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  suppression d'une row ds un TStringgrid ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

suppression d'une row ds un TStringgrid ?

n°346084
GuYzMo
Posté le 28-03-2003 à 00:15:23  profilanswer
 

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 !

mood
Publicité
Posté le 28-03-2003 à 00:15:23  profilanswer
 

n°346171
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-03-2003 à 09:38:43  profilanswer
 

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

n°346576
zion
Plop
Posté le 28-03-2003 à 14:36:16  profilanswer
 

:whistle:


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

---------------
Informaticien.be - Lancez des défis à vos amis
n°346586
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-03-2003 à 14:40:40  profilanswer
 

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.

n°346864
Ciler
Posté le 28-03-2003 à 20:14:45  profilanswer
 

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
n°346869
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-03-2003 à 20:32:04  profilanswer
 

:??: de quoi tu parles ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°346870
Ciler
Posté le 28-03-2003 à 20:39:35  profilanswer
 

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
n°346878
antp
Super Administrateur
Champion des excuses bidons
Posté le 28-03-2003 à 20:57:34  profilanswer
 

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°347077
GuYzMo
Posté le 29-03-2003 à 02:39:19  profilanswer
 

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 ;)

n°1023927
mirage36
Posté le 24-03-2005 à 18:23:58  profilanswer
 

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 ;)


mood
Publicité
Posté le 24-03-2005 à 18:23:58  profilanswer
 

n°1023935
mirage36
Posté le 24-03-2005 à 18:25:39  profilanswer
 

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

n°1024048
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-03-2005 à 19:13:39  profilanswer
 

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
n°1397269
KangOl
Profil : pointeur
Posté le 29-06-2006 à 15:48:44  profilanswer
 

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

n°1398585
kiki29
Posté le 01-07-2006 à 15:34:15  profilanswer
 

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  suppression d'une row ds un TStringgrid ?

 

Sujets relatifs
[c] suppression d'elements ds liste chainéePb de suppression de répertoire à partir d'une servlet
Délai dans la suppression des variables de session (résolu)Renommage et suppression de fichier
[PHP] Suppression et modification avec jointure ? c possible ?Création dynamique d'un TStringGrid
suppression en masse ?script de suppression d imprimante en vbs
[ORACLE] Suppression gd nombre enregistrements[Java] Suppression d'un BLOB en base (Oracle 9i)
Plus de sujets relatifs à : suppression d'une row ds un TStringgrid ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR