85 lines
1.9 KiB
ObjectPascal
85 lines
1.9 KiB
ObjectPascal
unit uDASelectDataTablesForm;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes
|
|
{$IFDEF WIN32}
|
|
,Graphics, Controls, Forms, Dialogs, StdCtrls, CheckLst, Buttons;
|
|
{$ENDIF}
|
|
{$IFDEF LINUX}
|
|
, QForms, QStdCtrls, QControls, QCheckLst, QButtons;
|
|
{$ENDIF}
|
|
|
|
type
|
|
TDASelectDataTablesForm = class(TForm)
|
|
btn_Ok: TBitBtn;
|
|
btn_Cancel: TBitBtn;
|
|
lb_DataTables: TCheckListBox;
|
|
cb_SelectAll: TCheckBox;
|
|
procedure cb_SelectAllClick(Sender: TObject);
|
|
procedure lb_DataTablesClick(Sender: TObject);
|
|
private
|
|
fChanging: boolean;
|
|
procedure SetOkButtonCaption(const Value: string);
|
|
public
|
|
procedure UpdateCheckBoxState;
|
|
property OkButtonCaption: string write SetOkButtonCaption;
|
|
end;
|
|
|
|
var
|
|
DASelectDataTablesForm: TDASelectDataTablesForm;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TDASelectDataTablesForm.cb_SelectAllClick(Sender: TObject);
|
|
var
|
|
i: integer;
|
|
begin
|
|
if fChanging then exit;
|
|
fChanging := true;
|
|
try
|
|
for i := 0 to lb_DataTables.Items.Count-1 do
|
|
lb_DataTables.Checked[i] := cb_SelectAll.Checked;
|
|
finally
|
|
fChanging := false;
|
|
end;
|
|
end;
|
|
|
|
procedure TDASelectDataTablesForm.lb_DataTablesClick(Sender: TObject);
|
|
var
|
|
lNone, lAll: boolean;
|
|
i: integer;
|
|
begin
|
|
if fChanging then exit;
|
|
fChanging := true;
|
|
try
|
|
lNone := true;
|
|
lAll := true;
|
|
for i := 0 to lb_DataTables.Items.Count-1 do
|
|
if lb_DataTables.Checked[i] then
|
|
lNone := false
|
|
else
|
|
lAll := false;
|
|
if lNone then cb_SelectAll.State := cbUnchecked
|
|
else if lAll then cb_SelectAll.State := cbChecked
|
|
else cb_SelectAll.State := cbGrayed;
|
|
finally
|
|
fChanging := false;
|
|
end;
|
|
end;
|
|
|
|
procedure TDASelectDataTablesForm.SetOkButtonCaption(const Value: string);
|
|
begin
|
|
btn_Ok.Caption := Value;
|
|
end;
|
|
|
|
procedure TDASelectDataTablesForm.UpdateCheckBoxState;
|
|
begin
|
|
lb_DataTablesClick(nil);
|
|
end;
|
|
|
|
end.
|