ListBox



  • Hey, also ich hätte da ne Frage.
    Wie kann ich es bei meinem Programm einstellen, dass es immer bei nem bestimmten Label anzeigt, wieviele Einträge gerade vorhanden sind?
    Ich hab echt keine Ahnung wie ich es an gehen soll.
    Hätt gern das die Caption des Labels dann so in der Art wär"Es befinden sich ?? Einträge in der Listbox." statt "??" natürlich die richtige Anzahl.
    Kann mir wer das machen? Ist glaub ich eh ganz leicht, nur ich checks halt nit. Bitte bitte antworten. Hier das ganze Programm:

    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    int Auswahl=0;
    
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    {
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Ende1Click(TObject *Sender)
    {
    Close();
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
    {
    Action=caFree;
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::AllesLschen1Click(TObject *Sender)
    {
    if (Application->MessageBox("Wollen Sie wirklich alles löschen?","Warnung!",MB_YESNO|MB_ICONWARNING)==IDYES)
    {
    ListBox1->Clear();
    }
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Sortieren1Click(TObject *Sender)
    {
    if (ListBox1->Sorted==true)
    {
    ListBox1->Sorted=false;
    Sortieren1->Checked=false;
    }
    else
    {
    ListBox1->Sorted=true;
    Sortieren1->Checked=true;
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Eintraglschen1Click(TObject *Sender)
    
    {
    Application->MessageBox("Wählen Sie einen Eintrag und drücken Sie ENTF!","Warnung!",MB_OK);
    }
    
    //---------------------------------------------------------------------------
    void __fastcall TForm1::ListBox1KeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
    int marke;
    if (Key==46)
    {
    marke=ListBox1->ItemIndex;
    ListBox1->Items->Delete(marke);
    }
     if (Key==45)
     {
      Panel1->Visible=true;
      Label1->Caption="Einzüfügender Eintrag";
      Edit1->SetFocus();
      Auswahl=2;
    
     }
    
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Eintraganhngen1Click(TObject *Sender)
    {
    
    Panel1->Visible=true;
    Edit1->Text="";
    Edit1->SetFocus();
    Auswahl=1;
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
    if (Key==13)
    {
     if (Edit1->Text>"")
     {
     ListBox1->Sorted=false;
     Sortieren1->Checked=false;
     if (Auswahl==1)
     {
      ListBox1->Items->Add(Edit1->Text);
     }
     if (Auswahl==2)
     {
     ListBox1->Items->Insert(ListBox1->ItemIndex,Edit1->Text);
     }
     Edit1->Text="";
     }
     Panel1->Visible=false;
     Auswahl=0;
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Listespeichern1Click(TObject *Sender)
    {
     if (SaveDialog1->Execute()==true)
     {
    ListBox1->Items->SaveToFile(SaveDialog1->FileName);
     }
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Listeladen1Click(TObject *Sender)
    {
    if(OpenDialog1->Execute()==true)
    {
    ListBox1->Items->LoadFromFile(OpenDialog1->FileName);
    }
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Eintrageinfgen1Click(TObject *Sender)
    {
    Application->MessageBox("Wählen Sie die Stelle und drücken Sie die Einfügetaste!","Warnung!",MB_OK);
    }
    //---------------------------------------------------------------------------
    


  • Hallo

    nach jedem ListBox1->Items->Insert(...), ListBox1->Items->Add(...) oder ListBox1->Items->Delete(...) einfach

    Label1->Caption = AnsiString("Es befinden sich ") + IntToStr(ListBox1->Items->Count) + " Einträge in der Listbox";
    

    P.S. : Das gehört ins Builder-Forum

    bis bald
    akari



  • Hallo akari.
    erstmals danke für die schnelle Antwort!!!! 👍 👍 👍

    jo es funzt jetzt.. eh klar 🕶
    Hab dazu auch ganz oben das auch eingefügt. Dann wirds am anfang auch schon angezeigt.
    Dort im __fastcall TForm1 darf ich das eh rein tun oder?

    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    {
     Label2->Caption = "Es befinden sich " + IntToStr(ListBox1->Items->Count) + " Einträge in der Listbox";
    }
    

    mfg



  • Hallo

    Ja das darfst du auch. Damit wird die Anzeige beim Programmstart initialisiert, das eben 0 Items vorhanden sind.
    Diese spezielle Methode heißt übrigens Konstruktor.

    bis bald
    akari



  • aso ja aber es sind eh am Anfang auch schon 6 Items bei mir in der Listbox vorhanden. Aber das konntest du ja nicht wissen, also ok . danke für alles.
    mfg



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum VCL/CLX (Borland C++ Builder) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten