Im Prinzip benötigst du für jede Spalte so eine Instanz
Delphi-Quellcode:
TCheckerVM = class abstract
protected
function GetCaption : string; virtual; abstract;
function GetChecked : Boolean; virtual; abstract;
procedure SetChecked( const Value: Boolean ); virtual; abstract;
public
property Caption: string read GetCaption;
property Checked: Boolean read GetChecked write SetChecked;
end;
Damit kannst du jetzt eine Checkbox entsprechend befüllen (Caption, Checked).
Um das jetzt konkret für eine DBGrid-Spalte zu haben, bauen wir uns
Delphi-Quellcode:
TDbGridColumnVisibleCheckerVM = class( TCheckerVM )
private
FColumn: TColumn;
protected
function GetCaption : string; override;
function GetChecked : Boolean; override;
procedure SetChecked( const Value: Boolean ); override;
public
constructor Create( Column: TColumn );
end;
constructor TDbGridColumnVisibleCheckerVM.Create( Column: TColumn );
begin
inherited Create;
FColumn := Column;
end;
function TDbGridColumnVisibleCheckerVM.GetCaption : string;
begin
Result := FColumn.Title.Caption;
end;
function TDbGridColumnVisibleCheckerVM.GetChecked: Boolean;
begin
Result := FColumn.Visible;
end;
procedure TDbGridColumnVisibleCheckerVM.SetChecked( const Value: Boolean );
begin
FColumn.Visible := Value;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)