From 74c881a3d3864fdaad40329a8a0257dff105b7d0 Mon Sep 17 00:00:00 2001 From: mattias Date: Mon, 19 Aug 2002 15:15:10 +0000 Subject: [PATCH] added TCheckGroup git-svn-id: trunk@3194 - --- lcl/extctrls.pp | 62 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/lcl/extctrls.pp b/lcl/extctrls.pp index ca82db2ae6..af4b01836b 100644 --- a/lcl/extctrls.pp +++ b/lcl/extctrls.pp @@ -427,6 +427,7 @@ type procedure SetItemIndex (value : integer); function GetItemIndex : integer; procedure WMSize(var Message: TLMSize); message LM_SIZE; + protected property ItemIndex : integer read GetItemIndex write SetItemIndex default -1; property Items : TStrings read FItems write SetItem; property Columns : integer read FColumns write SetColumns default 1; @@ -436,6 +437,7 @@ type destructor Destroy; override; function CanModify : boolean; virtual; procedure CreateWnd; override; + function Rows: integer; end; @@ -454,6 +456,61 @@ type property Visible; property OnClick; end; + + + { TCustomCheckGroup } + + TCheckGroupClicked = procedure(Sender: TObject; Index: integer) of object; + + TCustomCheckGroup = class(TCustomGroupBox) + private + FButtonList : TList; // list of TCheckBox + FCreatingWnd: boolean; + FItems : TStrings; + FColumns : integer; + FOnItemClick: TCheckGroupClicked; + procedure UpdateItems; + function GetChecked(Index: integer): boolean; + procedure ItemsChanged (Sender : TObject); + procedure DoPositionButtons; + procedure SetChecked(Index: integer; const AValue: boolean); + procedure Clicked(Sender: TObject); + procedure DoClick(Index: integer); + protected + procedure SetItems(Value: TStrings); + procedure SetColumns(Value: integer); + procedure WMSize(var Message: TLMSize); message LM_SIZE; + procedure DefineProperties(Filer: TFiler); override; + procedure ReadData(Stream: TStream); + procedure WriteData(Stream: TStream); + procedure Loaded; override; + procedure DoOnResize; override; + public + constructor Create(TheOwner: TComponent); override; + destructor Destroy; override; + function Rows: integer; + public + property Items: TStrings read FItems write SetItems; + property Checked[Index: integer]: boolean read GetChecked write SetChecked; + property Columns: integer read FColumns write SetColumns default 1; + property OnItemClick: TCheckGroupClicked read FOnItemClick write FOnItemClick; + end; + + + { TCheckGroup } + + TCheckGroup = class(TCustomCheckGroup) + public + published + property Align; + property Caption; + property Enabled; + property Items; + property Columns; + property Visible; + property OnItemClick; + property OnResize; + end; { TCustomPanel } @@ -553,17 +610,20 @@ uses Math; {$I idletimer.inc} {$I shape.inc} {$I paintbox.inc} +{$I customcheckgroup.inc} {$I customradiogroup.inc} {$I custompanel.inc} {$I radiogroup.inc} {$I bevel.inc} {$I image.inc} - end. { $Log$ + Revision 1.53 2003/03/17 23:39:30 mattias + added TCheckGroup + Revision 1.52 2003/03/17 20:50:30 mattias fixed TRadioGroup.ItemIndex=-1