Ein TDBGrid funktioniert ganz ohne Deklaration der Spalten, aber man kann die anzuzeigenden Spalten explizit definieren (Doppelklick, oder Click auf 'Columns' Eigenschaft): Das Resultat sind einzelne Spaltenkomponenten, die aber auch in der Columnseigenschaft aufgelistet sind. Über diese Eigenschaft iteriert man und schaltet die Sichtbarkeit nach Gusto.
Delphi-Quellcode:
Procedure TMyForm.SetColumnVisibility(dBGrid : TDBGrid; columnName :
String; visible : Boolean);
Var
i : Integer;
Begin
for i:=0
to dbGrid.Columns.Count-1
do
if dbGrid.Columns[i].FieldName=columnName
then begin
dbGrid.Columns[i].Visible := visible;
Exit;
end;
Raise Exception.CreateFmt('
Grid enthält keine Spalte mit Namen: %s',columnName);
End;
Du sprichst von 'Komponentennamen', aber ich denke, Du meinst Feld/Spaltenname der Tabelle, oder?