TStringGrid leeren



  • Schönen guten Tach!
    Wie kann ich in einem TStringGrid alle Zelleninhalte aufeinmal löschen?
    Hab bei den Methoden in der Hilfe nichts gefunden. Weiß jemand was?



  • for(int i=0;i<StringGrid1->RowCount;i++) StringGrid1->Rows [i]->Clear();
    


  • Spaltenweises Löschen ist meiner Meinung nach besser, vielleicht auch schneller. Ich habe mir in meinen Projekten dafür eine Funktion geschrieben:

    void TIrgendeineKlasse::ClearStringGrid(TStringGrid *SGrid)
    {
            // Neuzeichnen des Grids verhindern
            SendMessage(SGrid->Handle, WM_SETREDRAW, false, 0);
    
            // spaltenweises Löschen
            for (int i = 0; i < SGrid->ColCount; i++) SGrid->Cols[i]->Clear();
    
            SGrid->RowCount = 2;
    
            // Neuzeichnen des Grids wieder ermöglichen
            SendMessage(SGrid->Handle, WM_SETREDRAW, true, 0);
            SGrid->Invalidate();
    }
    


  • Hatte ich schon mal geschwindigkeitstechnisch probiert.
    Zeilenweises löschen geht erheblich schneller.(Abhängig von RowCount und ColCount)



  • Danke für eure Beiträge habe nur gehoft da gibts schon ne fertige funktion. Na ja, dann schreib ich halt ne schleife...


Anmelden zum Antworten