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

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

ЗАпук обработчика из другой Формы.


Neket ©   (2009-07-05 14:45:00) 

впервые наткнулся на такую проблему. Неисключаю по причине незнания но, ситуаци следующая.
Есть две формы Form1 и Form2.
В Form1 есть вот такой обработчик:
procedure TForm2.CheckBox1Click(Sender: TObject);
begin
If CheckBox1.Checked = true then
                           begin
                           Shape1.Brush.Color:=ClRed;
                           end;

Но кода я в Form2 по событию
procedure TForm5.DBGrid1DblClick(Sender: TObject);
"ставлю галочку" Form2.CheckBox1.Checked:=true;
У меня сразу автоматически срабатывает первый обработчик TForm2.CheckBox1Click
Как такое возможно? Это же CheckBox1CLICK на Клик. И как этого можно избежать?


KilkennyCat   (2009-07-05 17:39:00) [1]


> sniknik © (05.07.09 15:56) [5]

надо же... а мне вот уже лениво лазить и смотреть... сознавайся, где силы черпаешь?


sniknik   (2009-07-05 16:19:00) [2]

> ))) Ну я впринципе так и подозревал. windows mast die )))
lamers must die. LAMERS!!!


Neket   (2009-07-05 15:59:00) [3]

))) Ну я впринципе так и подозревал. windows mast die )))


sniknik   (2009-07-05 15:56:00) [4]

> Привет от микрософта, скорее всего.
procedure TCustomCheckBox.SetState(Value: TCheckBoxState);
begin
 if FState <> Value then
 begin
   FState := Value;
   if HandleAllocated then
     SendMessage(Handle, BM_SETCHECK, Integer(FState), 0);
    if not ClicksDisabled then Click;
 end;
end;

микрософт привет!


KilkennyCat   (2009-07-05 15:48:00) [5]


> но всеже интересно как такое возможно?

а что в этом невозможного? Просто так сделали, что данное событие вызывается на изменение состояния... Привет от микрософта, скорее всего.


Neket   (2009-07-05 14:57:00) [6]

Я конечно переписал испоняемый код в Form1 не на событияе OnClick а на CheckBox1MouseUp но всеже интересно как такое возможно?


Neket   (2009-07-05 14:55:00) [7]

ой блин сори я неподправил код.
Вот так правельно:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
If CheckBox1.Checked = true then
                          begin
                          Shape1.Brush.Color:=ClRed;
                          end;

и соответственно
procedure TForm2.DBGrid1DblClick(Sender: TObject);


sniknik   (2009-07-05 14:54:00) [8]

когда же ты уже отладчиком научишься пользоваться...

> В Form1есть вот такой обработчик:
> procedure T Form2.CheckBox1Click(Sender: TObject);

> Как такое возможно?


Наверх

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