Je crains que cela puisse être une question de "combien de temps est une pièce de ficelle", mais je me demandais si quelqu'un avait des chiffres ou des conseils.Insertion en haut Rang d'un grand TStringGrid
J'ai un TStringGrid qui pourrait avoir 3 600 lignes, peut-être plus, nous ne sommes pas encore sûrs. Comme le moniteur n'a évidemment pas de place pour cela, seulement 20 ou 30 lignes sont affichées à l'écran. Malheureusement, ceux-ci sont les premiers écrits et l'utilisateur doit faire défiler vers le bas pour voir les lignes comme ils sont ajoutés.
Il peut être plus convivial d'inverser l'ordre des lignes, m avec le plus récent en premier et le plus ancien en dernier. Pour ce faire, je dois faire quelque chose comme ça (le code ne peut pas être exacte)
// slightly quicker if there are many rows & no flicker
myStringGrid.Visible := False;
rowCount := myStringGrid.RowCount;
for row := 1 to Pred(rowCount) do
myStringGrid.Rows[row + 1] := myStringGrid.Rows[row];
myStringGrid.RowCount := myStringGrid.RowCount + 1;
// now add new row...
myStringGrid.Cells[1, 0] := <somthing>;
myStringGrid.Cells[1, 1] := <somthing else>;
myStringGrid.Cells[1, 2] := <etc>;
TestRunDataStringGrid.Visible := True;
Je suis préoccupé par la performance. Si personne n'a d'expérience, je vais coder un rapport de test &.
me demandais simplement si quelqu'un avait une expérience ou une opinion de le faire ...
Peut-être pourriez-vous utiliser un contrôle "virtuel" à la place? Dites un VirtualTreeView (http://www.soft-gems.net/index.php?option=com_content&task=blogsection&id=2&Itemid=33/) ou un TListView en mode virtuel? –
n'a probablement même pas besoin de mode virtuel pour ce nombre de lignes –
+1 aux deux. Quel dommage que je ne comprends pas ce qu'est un contrôle virtuel: -/Uwe ne semble pas penser que je vais avoir des problèmes avec TStringGrid avec 3.6k ROws (et environ 6 colonnes) – Mawg