Текущий архив: 2008.08.03;
Скачать: CL | DM;
Вниз
onclick and oncheckclick Найти похожие ветки
← →
Аврам (2008-07-06 17:36) [0]бодаюсь с компонентом checklistbox, проблема в том что при обработке события onclickcheck срабатывает onclick, а мне нужно только onclickcheck т.к. в onclick другой код. в голову приходит только отслеживание положения курсора,если дальше стольки то пикселей то не срабатывать.
помогите решить дурацкую проблему!
спасибо
← →
Аврам (2008-07-06 17:55) [1]Удалено модератором
Примечание: Создание пустых сообщений
← →
Ляпа (2008-07-06 18:01) [2]
> при обработке события onclickcheck срабатывает onclick,
У меня не срабатывает. Что я делаю не так?
← →
Аврам (2008-07-06 18:02) [3]имею ввиду что обрабатывает сначала oncheckclick а затем onclick,а мне нужно чтобы при изменении флажков обрабатывался только oncheckclick
← →
Аврам (2008-07-06 18:45) [4]xz : boolean;
...
procedure TForm1.CheckListBox1Click(Sender: TObject);
begin
ShowMessage("1");
end;
procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
begin
xz := true;
end;
вот пример, используется стандартный checklistbox,
при нажатии на check срабатывает onclick
← →
Leonid Troyanovsky © (2008-07-06 20:00) [5]
> Аврам (06.07.08 18:45) [4]
procedure TForm1.CheckListBox1Click(Sender: TObject);
begin
if xz then
xz := False
else
ShowMessage("1");
end;
--
Regards, LVT.
← →
{RASkov} © (2008-07-06 20:15) [6]> [4] Аврам (06.07.08 18:45)
> при нажатии на check срабатывает onclick
Какая версия делфи?
В Д7 нормально все, т.е. вот это:procedure TForm1.CheckListBox1Click(Sender: TObject);
begin
ShowMessage("OnClick");
end;
procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
begin
ShowMessage("OnClickCheck");
end;
Отображается строго по одному сообщению в зависимости от события...
← →
{RASkov} © (2008-07-06 20:18) [7]Хотя стоп.... вот в таком варианте:
procedure TForm1.CheckListBox1Click(Sender: TObject);
begin
ShowMessage("OnClick");
end;
procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
begin
//ShowMessage("OnClickCheck");
end;
"всегда" показывается OnClick(
← →
Leonid Troyanovsky © (2008-07-06 20:28) [8]
> {RASkov} © (06.07.08 20:15) [6]
> Отображается строго по одному сообщению в зависимости от
> события...
procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
begin
Caption := "OnClickCheck"+IntToStr(GetTickCount);
end;
--
Regards, LVT.
← →
Ляпа (2008-07-06 20:37) [9]
procedure TForm1.CheckListBox1Click(Sender: TObject);
begin
ShowMessage("1");
end;
procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
begin
xz := true;
CheckListBox1.OnClick:=nil;
end;
procedure TForm1.CheckListBox1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
CheckListBox1.OnClick:=CheckListBox1Click;
end;
← →
Leonid Troyanovsky © (2008-07-06 20:52) [10]
> Ляпа (06.07.08 20:37) [9]
[5]
--
Regards, LVT.
← →
Ляпа (2008-07-06 20:59) [11]
> Leonid Troyanovsky © (06.07.08 20:52) [10]
Тоже вариант. Выбирать автору.
← →
{RASkov} © (2008-07-06 21:03) [12]Тогда вот еще вариант:
type TChLBox = class(TCheckListBox);
procedure TForm1.CheckListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if X<TChLBox(Sender).GetCheckWidth+2 then ShowMessage("Check") else ShowMessage("Item");
end;
Пусть выбирает :)
← →
Тын-Дын © (2008-07-06 21:06) [13]Небольшая поправка:
Лучше в OnMouseDown устанавливать обработчик:
В этом случае не будут теряться сообщения для OnClick при последовательных нажатих OnClickCheck..OnClickprocedure TForm1.CheckListBox1Click(Sender: TObject);
begin
ShowMessage("Click");
end;
procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
begin
TCheckListBox(Sender).OnClick := nil;
end;
procedure TForm1.CheckListBox1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
TCheckListBox(Sender).OnClick := CheckListBox1Click;
end;
> Leonid Troyanovsky © (06.07.08 20:52) [10]
>
>
> > Ляпа (06.07.08 20:37) [9]
>
> [5]
А зачем лишнюю глобальную переменную вводить?
← →
{RASkov} © (2008-07-06 21:10) [14]> [13] Тын-Дын © (06.07.08 21:06)
> А зачем лишнюю глобальную переменную вводить?
Можно использовать в [5] Tag чеклистбокса... так что нормально все :)
← →
Johnmen © (2008-07-06 21:51) [15]http://sql.ru/forum/actualthread.aspx?tid=573657
← →
Leonid Troyanovsky © (2008-07-06 21:52) [16]
> Тын-Дын © (06.07.08 21:06) [13]
> А зачем лишнюю глобальную переменную вводить?
А зачем глобальную - поля вполне хватит.
Да, и ввел ее автор.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2008-07-06 22:01) [17]
> Johnmen © (06.07.08 21:51) [15]
Еще один кросспостер пойман с поличным.
--
Regards, LVT.
← →
Тын-Дын © (2008-07-06 22:04) [18]
> Leonid Troyanovsky © (06.07.08 22:01) [17]
>
>
> > Johnmen © (06.07.08 21:51) [15]
>
> Еще один кросспостер пойман с поличным.
Да жалко, что-ли?
Тем более, что там ответ намного раньше получен...
← →
Leonid Troyanovsky © (2008-07-06 22:08) [19]
> Тын-Дын © (06.07.08 22:04) [18]
> Да жалко, что-ли?
Не жалко. Противно.
--
Regards, LVT.
← →
Игорь Шевченко © (2008-07-06 23:16) [20]
> Еще один кросспостер пойман с поличным.
Кросс-постер- это когда на одном сайте. А на разных - какая разница, я тоже в свое время кросс-постил на Королевство и в borland.public.delphi.language
И ничуть не стыдился :)
Страницы: 1 вся ветка
Текущий архив: 2008.08.03;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.006 c