lazarus/ide/genericchecklist.pas
mattias 1e8926baa8 IDE: clean up
git-svn-id: trunk@42801 -
2013-09-15 06:10:28 +00:00

86 lines
1.9 KiB
ObjectPascal

{ ToDo: move to lazcontrols }
unit GenericCheckList;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ButtonPanel, CheckLst, Buttons;
type
{ TGenericCheckListForm }
TGenericCheckListForm = class(TForm)
ButtonPanel1: TButtonPanel;
CheckListBox1: TCheckListBox;
procedure CheckListBox1ItemClick(Sender: TObject; {%H-}Index: integer);
procedure FormShow(Sender: TObject);
private
fActionBtn: TBitBtn;
procedure UpdateButtons;
public
constructor CreateWithActionButton(aCaption: TCaption; aResourceGlyphName: string = '');
destructor Destroy; override;
end;
var
GenericCheckListForm: TGenericCheckListForm;
implementation
{$R *.lfm}
{ TGenericCheckListForm }
constructor TGenericCheckListForm.CreateWithActionButton(aCaption: TCaption;
aResourceGlyphName: string);
begin
inherited Create(Nil);
fActionBtn := TBitBtn.Create(ButtonPanel1);
fActionBtn.Caption:=aCaption;
fActionBtn.ModalResult:=mrYes; // ActionButton will return mrYes.
fActionBtn.Align:=alRight;
fActionBtn.BorderSpacing.Left:=6;
fActionBtn.BorderSpacing.Right:=6;
if aResourceGlyphName <> '' then
fActionBtn.LoadGlyphFromLazarusResource(aResourceGlyphName);
fActionBtn.AutoSize:=True;
fActionBtn.Parent:=ButtonPanel1;
end;
destructor TGenericCheckListForm.Destroy;
begin
inherited Destroy;
end;
procedure TGenericCheckListForm.FormShow(Sender: TObject);
begin
UpdateButtons;
end;
procedure TGenericCheckListForm.CheckListBox1ItemClick(Sender: TObject; Index: integer);
begin
UpdateButtons;
end;
procedure TGenericCheckListForm.UpdateButtons;
var
i: Integer;
begin
if Assigned(fActionBtn) then
begin
for i := 0 to CheckListBox1.Count-1 do
if CheckListBox1.Checked[i] then
begin
fActionBtn.Enabled := True;
Exit;
end;
fActionBtn.Enabled := False;
end;
end;
end.