Componentes.Terceros.RemObj.../internal/5.0.24.615/1/Data Abstract for Delphi/Source/IDE/uDASelectDataTablesForm.pas

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.