![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Количество нажатий кнопки мыши [D7, XP]
Mouse © (2009-06-20 15:44:00)Здравстуйте! Есть такой такой вот вопрос: как узнать сколько раз нажата левая кнопка мыши? посоветуйте пожалуйста решение этой проблемы
Б (2009-06-20 21:19:00) [1]А говорили - задача не решаема. ;)
> Palladin © (20.06.09 16:22) [15]
> Palladin © (20.06.09 16:50) [24]
Mouse (2009-06-20 21:13:00) [2]Спасибо, вроде правильно все делается
Б (2009-06-20 20:44:00) [3]*Т.е. из 4.
Б (2009-06-20 20:31:00) [4]Используй Массив из 3 TPoint.
Mouse (2009-06-20 20:22:00) [5]все догнал begin c end не поставил
Balepa (2009-06-20 20:21:00) [6]1: begin
x0:=x;
y0:=y
end;
Mouse (2009-06-20 19:56:00) [7]попробывал типа что то такого:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
If Button=mbLeft then
Begin
inc(ClickCount);
Caption:= IntToStr(ClickCount);
Case ClickCount of
1: x0:=X;
y0:=Y;
2: x1:=X
y1:=Y;
3:x2:=X
y2:=Y;
else
x3:=X;
y3:=Y;
end;
end;
end;
но делфи ругается: Constant expression expected
Зная, что я чайник в во всем этом, так что сильно не ругайтесь
Andy BitOff (2009-06-20 17:56:00) [8]> Б (20.06.09 17:52) [30]
А, ну да, это я не верно прочитал =)
Б (2009-06-20 17:52:00) [9]
> Mouse (20.06.09 15:56) [3]
> Просто надо при первом нажатии одно делать, при втором второе,
> при третьем третье, а вот после трех нажатий выпоняется
> одно и тоже действие для всех нажатий
У меня в коде, не так?
Стоит кейс на кол-во нажатий. Надо добавить в кейс else вот и все дела.
Andy BitOff (2009-06-20 17:46:00) [10]> Б (20.06.09 17:32) [28]
Mouse (20.06.09 15:56) [3]
Б (2009-06-20 17:32:00) [11]
> может не будешь глупости советовать?
Что не так? Вопрос такой "как узнать сколько раз нажата левая кнопка мыши?"
Palladin (2009-06-20 17:16:00) [12]
> Б (20.06.09 17:15) [26]
ага, на 1 сработает 1, на второй сработает 2, на третий сработает 3 ) может не будешь глупости советовать?
Б (2009-06-20 17:15:00) [13]> Интервалы как раз не нужны.
Получается, что, если удерживаешь нажатую левую кнопку, а потом отпускаешь, то это 1 щелчёк? Тогда типа такого:
Var
ClickCount: DWord;
procedure TForm1.Image1Click(Sender: TObject);
begin
inc(ClickCount);
Caption:= IntToStr(ClickCount);
Case ClickCount of
1: ....................................... ;
2: ....................................... ;
3: ....................................... ;
.......
end;
End;
Mouse (2009-06-20 17:06:00) [14]А можете мне сказать как выполнить условие если нажатал на картинке то увеличил. Тупо для эксперемента
Palladin (2009-06-20 16:50:00) [15]
> Mouse (20.06.09 16:47) [22]
а у тебя нет точки отсчета, кроме как старта программы... так что забудь...
Andy BitOff (2009-06-20 16:49:00) [16]Если бы более конкретно описал задачу, то тебе бы подсказали возможные методы ее решения.
Mouse (2009-06-20 16:47:00) [17]Если по сути, то мне надо при первом нажатии записать координаты указателя в первую пару переменных, потом при втором нажатии во второю пару и так же 3юю, а все остальные координаты после 3, записывать в 4 пару. Я понимаю как это сделать, все условиями
Palladin (2009-06-20 16:42:00) [18]
> Интервалы как раз не нужны.
тогда:
> нужно стоять около пользователя и считать его щелчки, пока:
> или он, или компьютер, или мышь, или монитор не прекратит
> свое существование, или что то еще, что не позволит дальше
> делать щелчки, не произойдет. вот тогда, ты посчитаешь точно
> сколько зделано было щелчков.
Andy BitOff (2009-06-20 16:41:00) [19]В опере, например, совмещено. Двойной клик выделяет слово, следующий одинарный, если не была сдвинута мышь и не прошло много времени выделяет предложение и следующий абзац.
Mouse (2009-06-20 16:41:00) [20]Интервалы как раз не нужны. А если сделать глобальную переменную каторая будет увеличиваться при каждом нажатии мыши на картинке и в дальнейшем ее использовать?