Files
lazarus-ccr/components/exctrls/examples/CheckComboBoxEx/main.pas

127 lines
3.0 KiB
ObjectPascal
Raw Normal View History

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;
CheckBox1: TCheckBox;
ImageList1: TImageList;
Memo1: TMemo;
Panel1: TPanel;
Splitter1: TSplitter;
Splitter2: TSplitter;
TIPropertyGrid1: TTIPropertyGrid;
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure CheckBox1Change(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.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;
FCombo.DropDownImageIndex.NormalDown := 0;
FCombo.DropDownImageIndex.HotDown := 2;
FCombo.DropDownImageIndex.PressedDown := 2;
FCombo.DropDownImageIndex.NormalUp := 1;
FCombo.DropDownImageIndex.HotUp := 3;
FCombo.DropDownImageIndex.PressedUp := 3;
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;
procedure TMainForm.CheckBox1Change(Sender: TObject);
begin
if Checkbox1.Checked then
begin
FCombo.Images := ImageList1;
FCombo.ButtonWidth := FCombo.Height;
FCombo.Spacing := 4;
end else
begin
FCombo.Images := nil;
FCombo.ButtonWidth := -1;
FCombo.Spacing := 0;
end;
end;
end.