Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > checklistbox onclick oncheckclick проблема


Автор: AlexeyShestchenko 6.7.2008, 16:47
бодаюсь с компонентом checklistbox, проблема в том что при обработке события onclickcheck срабатывает onclick, а мне нужно только onclickcheck т.к. в onclick другой код. в голову приходит только отслеживание положения курсора,если дальше стольки то пикселей то не срабатывать.
помогите решить дурацкую проблему!
спасибо

Автор: Rrader 6.7.2008, 17:40
AlexeyShestchenko, но ведь эти события совместно не срабатывают

Автор: AlexeyShestchenko 6.7.2008, 17:46
  xz : boolean;
...
procedure TForm1.CheckListBox1Click(Sender: TObject);
begin
ShowMessage('1');
end;

procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
begin
xz := true;
end;

вот пример, используется стандартный checklistbox,
 при нажатии на check срабатывает onclick

Автор: Rrader 6.7.2008, 17:50
Поигрался с компонентом. Я изначально не понял вопроса, потому что неправильно тестировал! Я создал модальную форму (простой ShowMessage) в OnClickCheck, и до OnClick дело не доходило! smile 

Исследовав код, я увидел цепь вызовов:

MouseDown - OnClickCheck - MouseUp

А OnClick есть MouseDown + MouseUp. И если цепь разорвать, то все будет как требуется. Как я разорвал: перенаправил ввод на форму...

Код

procedure TForm1.CheckListBox1Click(Sender: TObject);
begin
  ShowMessage('OnClick');
end;

procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
begin
  SetCapture(Handle);
  // Действия...
end;

Автор: AlexeyShestchenko 6.7.2008, 18:39
спасибо! большое)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)