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:

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-167474-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-ondata.html

    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<==


Anmelden zum Antworten