Bonjour à tous,

Je suis suis en traine d’écrire une appli qui doit remplir 5 colonnes est X beaucoup de lignes dans la grille de chez TMS Software qui était offerte avec la version XE3.

J'utilise SQLServer et les composants DBExpress

voici ce que je fait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
procedure TfrmMain.ListeDesContacts;
 var
   Ligne:integer;
begin
  InitGrille('Contact');
  Ligne:=1;
  with UDM.V_CONTACTS do
  try
    open;
    While not EOF do
    begin
      grdGrille.AddBitmap(0,Ligne,'Contact');
      grdGrille.Cells[1,Ligne]:= FloatToStr(fields.FieldByName('PK_Contact').AsFloat);
      grdGrille.Cells[2,Ligne]:= FloatToStr(fields.FieldByName('FK_Contact').AsFloat);
      grdGrille.Cells[3,Ligne]:= fields.FieldByName('NOM').AsString;
      grdGrille.Cells[4,Ligne]:= fields.FieldByName('PRENOM').AsString;
      grdGrille.AddBitmap(5,Ligne,'Contact');
      grdGrille.AddBitmap(6,Ligne,'Societe');
      grdGrille.AddBitmap(7,Ligne,'Produit');
      Next;
      inc(Ligne);
  end;
  finally
    Close
  end;
end;
ça marche, mais c'est très long alors qu'avec la grille de la vcl le temps de réponse est très correct.

Je pense qu'il doit y avoir une autre méthode, surtout que TMS Software nous avais fait une démo de remplissage avec Plus de 10 000 lignes et le résultat est apparu quasi instantanément.

Est ce que quelqu'un aurai une idées ?
en attendant une réponse miracle, je continue mes recherches

Merci à tous est bon Week End

Christophe