Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Über String auf Komponente zugreife

  Alt 27. Jan 2016, 17:27
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)
  Mit Zitat antworten Zitat