Einträge in eine ListView eintragen
-
Wenn ich mehrere Einträge in eine ListView einfüge, kann diese nicht mehr benutzt werden (Nach unten Scrollen) bis alle Einträge eingefügt sind.
Mit BeginUpdate(); und EndUpdate(); komme ich auch nicht weiter.
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { //Eigenschaften von ListView1 einstellen und Spaltebbezeichnungen hinzufügen Form1->ListView1->ViewStyle = vsReport; Form1->ListView1->RowSelect = true; TListColumn *MeinLinkesColumn; MeinLinkesColumn = Form1->ListView1->Columns->Add(); MeinLinkesColumn->Width = 73; MeinLinkesColumn->Caption = "1"; MeinLinkesColumn = Form1->ListView1->Columns->Add(); MeinLinkesColumn->Width = 50; MeinLinkesColumn->Caption = "2"; MeinLinkesColumn = Form1->ListView1->Columns->Add(); MeinLinkesColumn->Width = 60; MeinLinkesColumn->Caption = "3"; MeinLinkesColumn = Form1->ListView1->Columns->Add(); MeinLinkesColumn->Width = 132; MeinLinkesColumn->Caption = "4"; MeinLinkesColumn = Form1->ListView1->Columns->Add(); MeinLinkesColumn->Width = 42; MeinLinkesColumn->Caption = "5"; Form1->Button1->Caption = "Los"; //Titelzeilen Buttons ein- / ausblenden //Form1->Visible = false; Form1->BorderIcons >> biMaximize; //Form 1 MaximierenButton aus Form1->BorderIcons >> biMinimize; //Form 1 MinimierenButton aus //--------------------------------------------------------------------------- //Fenster Größe und Position festlegen Form1->Width = 406; Form1->Height = 286; Form1->Position = poScreenCenter; //--------------------------------------------------------------------------- } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { TListItem *MeinLinkesItem; TStringList *TempList = new TStringList; for(int zaehler = 0; zaehler< 2000; zaehler++) { TempList->Add(zaehler); } //Form1->ListView1->Items->BeginUpdate(); for(int zaehler2 = 0; zaehler2< TempList->Count; zaehler2++) { MeinLinkesItem = Form1->ListView1->Items->Add(); MeinLinkesItem->Caption = TempList->Strings[zaehler2]; MeinLinkesItem->SubItems->Add("2"); MeinLinkesItem->SubItems->Add("3"); MeinLinkesItem->SubItems->Add("4"); MeinLinkesItem->SubItems->Add("5"); Form1->ListView1->Update(); //Form1->ListView1->Scroll(0,zaehler2); } //Form1->ListView1->Items->EndUpdate(); delete TempList; } //---------------------------------------------------------------------------Danke...
==>Eisbeer<==
-
Füge ein Application->ProcessMessages(); in deine for-Schleifen ein.
-
Hallo,
vielleicht ist das auch etwas für dich:
Habe meine code gleich mal darauf abgestimmt und siehe da 10.000 entries 2 Sek.
MfG Barracuda
-
funktioniert wenn der Scroll-Balken bewegt wird. Leider wird die ListView solange nicht weiter gefüllt.
==>Eisbeer<==
-
Eisbeer schrieb:
funktioniert wenn der Scroll-Balken bewegt wird. Leider wird die ListView solange nicht weiter gefüllt.
==>Eisbeer<==
Sory... Bezogen auf das Postingvon rean
==>Eisbeer<==