![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка OnClick у CheckBox'a [D2005, XP]
flasher © (2010-11-08 09:03:00)Подскажите как сделать, чтобы при программной установке состояния CheckBox.Checked:= true/false не вызывалась бы обработка CheckBox.OnClick?
12 (2010-11-08 11:34:00) [1]что-то мало новых вопросов а поговорить хоцца :)
тогда так еще
type
TForm1 = class(TForm)
cb1: TCheckBox;
btn1: TButton;
btn2: TButton;
procedure cb1Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private { Private declarations }
MyGlobalVar:Boolean;
public { Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.cb1Click(Sender: TObject);
begin
if MyGlobalVar then Exit;
ShowMessage( 'onClick' );
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
MyGlobalVar := True;
cb1.Checked := not(cb1.Checked);
MyGlobalVar := false;
end;
procedure TForm1.btn2Click(Sender: TObject);
begin
cb1.Checked := not(cb1.Checked)
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
btn1.Caption := 'no onClick';
btn2.Caption := 'wiht onClick';
end;
12 (2010-11-08 10:37:00) [2]
> CheckBox.OnClick := nil;
> try
> CheckBox.Checked := ...;
> finally
> CheckBox.OnClick := CheckBoxClick
> end;
Тогда так удобнее
type
TForm1 = class(TForm)
cb1: TCheckBox;
btn1: TButton;
procedure cb1Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TFCheckBox(CB:TCheckBox; TF:boolean);
var
M: TNotifyEvent;
begin
M := CB.onClick;
CB.OnClick := nil;
CB.Checked := TF;
CB.OnClick := M;
end;
procedure TForm1.cb1Click(Sender: TObject);
begin
ShowMessage( '' );
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
TFCheckBox(cb1, not(cb1.Checked));
end;
Юрий Зотов (2010-11-08 10:20:00) [3]CheckBox.OnClick := nil;
try
CheckBox.Checked := ...;
finally
CheckBox.OnClick := CheckBoxClick
end;
12 (2010-11-08 09:09:00) [4]type TBC = class (TButtonControl);
TBC(cbChiefEngener).ClicksDisabled := True;
cbChiefEngener.Checked := CheckChiefEngener;
TBC(cbChiefEngener).ClicksDisabled := False;