unit Main; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, EditBtn, CheckLst, StdCtrls, ExtCtrls, RTTIGrids, ExCheckCombo, PropEdits, ObjectInspector; type { TMainForm } TMainForm = class(TForm) Button1: TButton; Button4: TButton; Button5: TButton; Memo1: TMemo; Panel1: TPanel; Splitter1: TSplitter; Splitter2: TSplitter; TIPropertyGrid1: TTIPropertyGrid; procedure Button1Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure FormCreate(Sender: TObject); private FCombo: TCheckComboBoxEx; procedure CheckComboChange(Sender: TObject); procedure CheckComboItemChange(Sender: TObject; Index: Integer); procedure CheckComboItemClick(Sender: TObject; Index: Integer); public end; var MainForm: TMainForm; implementation {$R *.lfm} { TMainForm } procedure TMainForm.FormCreate(Sender: TObject); begin FCombo := TCheckComboBoxEx.Create(self); FCombo.Align := alTop; FCombo.BorderSpacing.Around := 6; FCombo.AutoDropDown := true; FCombo.Items.Add('Item 1'); FCombo.Items.Add('Item 2'); FCombo.Items.Add('Item 3'); FCombo.AddItem('Item 4', true); FCombo.AddItem('Item 5', true, false); FCombo.AddItem('Item 0'); FCombo.Parent := Panel1; FCombo.Hint := 'Default hint'; FCombo.TextHint := 'Check items, please...'; FCombo.OnChange := @CheckComboChange; FCombo.OnItemChange := @CheckComboItemChange; FCombo.OnItemClick := @CheckComboItemClick; TIPropertyGrid1.TIObject := FCombo; ActiveControl := FCombo; end; procedure TMainForm.CheckComboChange(Sender: TObject); begin Memo1.Lines.Add('CheckComboBoxEx.OnChange'); end; procedure TMainForm.CheckComboItemChange(Sender: TObject; Index: Integer); begin Memo1.Lines.Add('CheckComboBoxEx.OnItemChange, Index ' + Index.ToString); end; procedure TMainForm.CheckComboItemClick(Sender: TObject; Index: Integer); begin Memo1.Lines.Add('CheckComboBoxEx.OnItemClick, Index ' + Index.ToString); end; procedure TMainForm.Button1Click(Sender: TObject); begin FCombo.Checked[0] := not FCombo.Checked[0]; end; procedure TMainForm.Button4Click(Sender: TObject); begin FCombo.CheckAll(cbChecked);; end; procedure TMainForm.Button5Click(Sender: TObject); begin FCombo.CheckAll(cbUnchecked); end; end.