Einzelnen Beitrag anzeigen

Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: StringGrid Spalte mit Namen "ansprechen"

  Alt 13. Mai 2014, 21:10
Hallo,

[...]

Aber ist auch so etwas wie:
StringGrid1.Columns['LAST_NAME'].Header := 'Nachname'
möglich?
AFAIK gibt es das so nicht. Aber mit etwas Handarbeit ist das doch schnell zusammengebastelt, z. B. so:
Delphi-Quellcode:
type
  TStringGridHelper = class helper for TStringGrid
  private
    function GetColumnByName (Name : TComponentName) : TColumn;
  public
    property ColumnByName [Name : TComponentName] : TColumn read GetColumnByName;
  end;

  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    LastName: TStringColumn;
    StringColumn2: TStringColumn;
    StringColumn3: TStringColumn;
    StringColumn4: TStringColumn;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

function TStringGridHelper.GetColumnByName (Name : TComponentName) : TColumn;
var
  i : Integer;
  c : TColumn;
begin
  Result := nil;

  for i := 0 to ColumnCount - 1 do
    begin
      c := Columns [i];
      if c.Name = Name then
        begin
          Result := c;
          Break
        end
    end;

  if not Assigned (Result) then
    raise Exception.Create ('Fehlermeldung')
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  StringGrid1.ColumnByName ['LastName'].Header := 'Nachname'
end;
Gruß
Volker Zeller
  Mit Zitat antworten Zitat