Bonjour,

je teste une TTMSFMXGrid de TMS Software. Le composant ne me semble pas fonctionner comme prévu.
Je me réfère à la page 55

Je suis en SelectionMode := smDisjunctRow;

ce code fonctionne correctement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
var
 i: integer;
begin
 for i := 0 to TMSFMXGrid1.RowCount - 1 do
 begin
 if TMSFMXGrid1.RowSelect[i] then
 // do something with the selected row
 end;
end;
Mais l'autre code plante le projet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
var
 i: integer;
begin
 for i := 0 to TMSFMXGrid1.RowSelectionCount - 1 do
 begin
 rowindex := TMSFMXGrid1.SelectedRow[i];
 // do something with the selected row rowindex here
 end;
end;
Je ne sais pas si c'est propre à ma version XE7. J'ai téléchargé le pack FMX d'essai ce matin. De ce fait, je ne sais pas si le parcours est plus rapide avec la deuxième méthode.

Je rencontre une autre imperfection au niveau du tri.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
for i := 0 to 2 do
with Grid1 do 
  begin
      InsertRow(RowCount);
      ...
      RowSelect[RowCount -1] := true;
   end;
Je remplis donc une Grid en ajoutant des lignes en bas et en sélectionnant les 3 lignes ajoutées. Et je lance un tri comme indiqué dans la documentation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
with Grid1 do
  begin
      SortIndexes.Clear;
      SortIndexes.AddIndex(1, sdAscending);
      SortIndexes.AddIndex(2, sdDescending);
      SortIndexed;
  end;
Le tri s'effectue bien mais la sélection reste sur les 3 dernières lignes alors que le tri a déplacé les 3 lignes ajoutées : la sélection ne "suit" pas le déplacement des lignes par le tri et donc la sélection change. Il y a moyen de parer le coup ? C'est normal ou il s'agit d'un bug ?

Merci. Zac