Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TCheckBox - как програмно поменять Checked, чтобы не произошло ..


agrig ©   (2002-04-21 19:43:00) 

TCheckBox - как програмно поменять Checked, чтобы не произошло OnClick?


kull   (2002-04-23 10:57:00) [1]

>if CheckBox1.Focused then // по нему кликнули
>else //это программное изменение

А если он в фокусе и мы программно меняем?


Song   (2002-04-23 08:49:00) [2]

Интересно, а Ord(True)это 1??? :)))))
SoftOne © (22.04.02 01:07) Хороший способ. Сам про него забыл.


agrig   (2002-04-23 08:45:00) [3]

я сам завел глобальную переменную и проверяю ее значение в OnClick но ето конечно ерунда...


Billy   (2002-04-22 03:02:00) [4]

У меня тоже была такая трабла. Я ее решил не очень красиво (на мой взгляд) но зато работает как часы. Идея в том, что при клике этот CheckBox становится Focused. Таким образом:

if CheckBox1.Focused then // по нему кликнули
else //это программное изменение


SoftOne   (2002-04-22 01:07:00) [5]

Можно и так:
CheckBox1.Perform(BM_SETCHECK,Ord(True),0); - Checked
CheckBox1.Perform(BM_SETCHECK,Ord(False),0); - Unchecked


kull   (2002-04-21 21:57:00) [6]

Хотя лучше:


var
E: TNotifyEvent;
..............

E := CheckBox1.OnClick;
CheckBox1.OnClick := nil;
CheckBox1.Checked := True;
CheckBox1.OnClick := E;


kull   (2002-04-21 21:48:00) [7]

Ну можно типа так:


CheckBox1.OnClick := nil;
CheckBox1.Checked := True;
CheckBox1.OnClick := CheckBox1Click;


Song   (2002-04-21 20:02:00) [8]

Никак.


Наверх

Титульная страница Поиск, карта сайта Написать письмо