Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Checkbox in StringGrid -> Klicken klappt nicht

  Alt 9. Feb 2013, 00:04
@Volker Z.

Danke WMCommand war die Ecke die mir fehlte, jetzt könnt man das ganz doch noch runder bekommen ... ohne den ganzen ein/ausblende und Ereignisbehandlungscode drumherum ...
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TStringGrid = Class(Grids.TStringGrid)
    procedure WMCommand(var Message: TWMCommand); message WM_COMMAND;
  private
    FCheckBox: TCheckBox;
    procedure SetCheckBox(const Value: TCheckBox);
  published
    property CheckBox: TCheckBox read FCheckBox Write SetCheckBox;
  End;

  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    CheckBox1: TCheckBox;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.CheckBox := CheckBox1;
end;

{ TStringGrid }

procedure TStringGrid.SetCheckBox(const Value: TCheckBox);
begin
  FCheckBox := Value;
  FCheckBox.Parent := Self;
end;

procedure TStringGrid.WMCommand(var Message: TWMCommand);
begin
  if Assigned(FCheckBox) then
    if Message.NotifyCode = 0 then
      FCheckBox.Checked := not FCheckBox.Checked;
  inherited;
end;

end.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat