Autor Beitrag
D. Annies
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Sa 12.10.13 07:44 
Hi, Delpher,

Ich habe in D6 ein Stringgrid, welches mit Inhalten gefüllt ist - zumeist jedenfalls, denn
es befinden sich auch als 4. und als 9. Spalte leere Spalten darunter. Sie haben zwar
einen Tabellenkopfinhalt, aber alle Zellen darunter sind leer.

Wie kann man aus einem Stringgrid diese leeren Spalten komplett löschen?

Danke für Ideen,
Detlef

_________________
ut vires desint, tamen est laudanda voluntas
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 12.10.13 07:52 
Die Anzahl der Spalten in einem StringGrid wird durch das Property ColCount angegeben. Wenn du ColCount also verminderst, reduzierst du damit auch die Anzahl deiner Spalten. Da sich die zu löschenden Spalten nicht am Ende deines StringGrid befinden, empfieht es sich, das StringGrid vor dem Befüllen entsprechend einzurichten.
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Sa 12.10.13 10:31 
Ohne groß nachgedacht zu haben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure DeleteColumn(Grid: TStringGrid; ColIndex: integer);
var
  i: integer;
begin
  Assert(Assigned(Grid), 'Kein gültiges StringGrid übergeben');
  if (ColIndex < 0or (ColIndex >= Grid.ColCount) then
    raise Exception.CreateFmt('Ungültiger Spaltenindex: %d', [ColIndex]);
  for i := ColIndex to Grid.ColCount - 2 do
    begin
      Grid.Cols[i].BeginUpdate;
      try
        Grid.Cols[i].Assign(Grid.Cols[i + 1]);
      finally
        Grid.Cols[i].EndUpdate;
      end;
    end;
  Grid.ColCount := Grid.ColCount - 1;
end;
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 12.10.13 10:56 
Sinnvoller ist das StringGrid komplett zu löschen und die Daten aus der zugrunde liegenden Datenschicht neu zu lesen...