suppression d'une row ds un TStringgrid ? - Delphi/Pascal - Programmation
Marsh Posté le 28-03-2003 à 14:36:16
Marsh Posté le 28-03-2003 à 14:40:40
Je confirme
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.
Marsh Posté le 28-03-2003 à 20:14:45
antp a écrit : Je confirme |
En fait, pas vraiement.
C'est juste qu'il faut transposer la structure en arbre vers un tableau.
Marsh Posté le 28-03-2003 à 20:32:04
de quoi tu parles ?
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
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).
Marsh Posté le 28-03-2003 à 20:57:34
ha, ouais, mais bon... ca marche pas si mal en tableau tu sais
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
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 ... |
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
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 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.
Marsh Posté le 29-06-2006 à 15:48:44
non ca marche pas
TStringGrid.Rows[] est une property qui renvoi la TString correspondant au colonnes
cependant : http://www.scalabium.com/faq/dct0057.htm
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 !