Hallo alle,
ich möchte zur Laufzeit die Anzahl der Spalten eines StringGrids flexibel halten. Durch setzen von "TStringGrid.colcount := xyz" kann ich die Anzahl der Spalten verändern und diese auch problemlos füllen, aber wahrscheinlich ist es nicht sauber. Beim Zugriff auf die ColEigenschften bekomme ich immer ListIndex(xyz) - Fehler.
Sauberer wäre es wahrscheinlich mit TStringGird.Columns.Items.Add Spalten hinzuzufügen; dort habe ich dann auch Zugriff auf alle Eigenschaften.
Wofür gibts/funktioniert aber dann trotzdem noch "TStringGrid.colcount := xyz"?
Danke
Udo
StringGrid Cols
Re: StringGrid Cols
Die Lazarus Grids kann man auf zwei Arten verwenden: ohne und mit Columns. Bei "ohne Columns" wird die Spaltenanzahl - so wie bei Delphi - mit der Eigenschaft ColCount eingestellt. Bei "mit Columns" muss man der Collection Columns explizit Einträge hinzufügen (oder löschen), bis man die gewünschte Anzahl an Spalten hat - das ist etwas umständlicher, aber dafür hat man für jede einzelne Spalte diverse Eigenschaften gebrauchsfertig, für die man sonst etwas Code schreiben müsste.
Wer vor ein paar Zeilen Code nicht zurückschreckt, für den bringen Columns aber kaum Vorteile - ich bin bisher immer ohne ausgekommen. Columns hat für mich den wesentlichen Nachteil, dass die Indizierung nicht mehr konsistent ist: Wenn man jeweils eine FixedRow/FixedCol hat, hat das 1.benutzbare Datenfeld die Koordinaten Col=1 und Row =1, es liegt aber auf der Spalte mit Index 0. Und sowas ist eine immense Fehlerquelle.
Wer vor ein paar Zeilen Code nicht zurückschreckt, für den bringen Columns aber kaum Vorteile - ich bin bisher immer ohne ausgekommen. Columns hat für mich den wesentlichen Nachteil, dass die Indizierung nicht mehr konsistent ist: Wenn man jeweils eine FixedRow/FixedCol hat, hat das 1.benutzbare Datenfeld die Koordinaten Col=1 und Row =1, es liegt aber auf der Spalte mit Index 0. Und sowas ist eine immense Fehlerquelle.
Re: StringGrid Cols
OK, hab ich verstanden, Danke