Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.23;
Скачать: CL | DM;

Вниз

OnClick vs. SetChecked!   Найти похожие ветки 

 
MaXie ©   (2004-01-13 09:39) [0]

Есть элемент класса TRadioButton, для которого определено событие OnClick. Сразу вслед за этим событием выполняется неявная процедура SetChecked, которая изменяет свойство элемента Checked на противоположное.
Как необходимо определить(перегрузить) событие OnClick, чтобы оно выполнялось только после завершения процедуры SetChecked?


 
Babay ©   (2004-01-13 09:49) [1]

Может я чего не понял но помоему onClick выполняется уже после смены значения Cheked у RadioButton


 
AKul ©   (2004-01-13 11:36) [2]

Если я правильно понял, то нужно что-то типа:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
CheckBox1.Checked:=not CheckBox1.Checked;
end;

- это приведет к рекурсивному вызову TForm1.CheckBox1Click - переполнение стека.

Поэтому необходимо использовать какой-нибудь флаг, для того чтобы знать как было вызвано событие OnClick - из программы или, к примеру, кликаньем мышки. Например так:

type
TForm1 = class(TForm)
....
private
ProgramCallFlag:boolean;
....
end;
.....

procedure TForm1.FormCreate(Sender: TObject);
begin
ProgramCallFlag:=false;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if ProgramCallFlag then
begin
ProgramCallFlag:=false;
exit;
end;
ProgramCallFlag:=true;
CheckBox1.Checked:=not CheckBox1.Checked;
end;

А вообще есть свойство Enabled, которое запрещает пользователю изменять значения CheckBox"а.


 
AKul ©   (2004-01-13 11:38) [3]

Sorry, не досмотрел, что спрашивалось о RadioButton.
Для RadioButton идеолгия таже (используй RadioButton вместо CheckBox)


 
Ломброзо ©   (2004-01-13 12:09) [4]

Перед вызовом Checked снимать обработчик события OnCLick, после восстанавливать. Или то же самое на OnMouseDown/OnMouseUp.


 
имя   (2004-01-13 15:42) [5]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2004.01.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
14-72929
RealRascal
2003-12-30 05:52
2004.01.23
Прогу изваял, которая рожает текст по принципу цепи Маркова, на


1-72782
Alexey K
2004-01-13 09:58
2004.01.23
Подскажите максимальный допустимый размер exe-шника


14-72880
Evgeniy_K
2003-12-28 11:29
2004.01.23
Dll в памяти.


14-72909
Ирайзор
2004-01-02 15:55
2004.01.23
Про Бойцовский клуб...


1-72774
Noname
2004-01-13 13:27
2004.01.23
RegisterComponents