![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Внутри ли кнопки курсор. [D7]
Nikfel © (2007-08-01 13:05:00)Пожалуйста помогите.Как в OnMouseDown проверить находится ли курсор в нутри кнопки или нет.Заранее спасибо.
Юрий Зотов (2007-08-01 23:20:00) [1]WindowFromPoint?
DVM (2007-08-01 15:14:00) [2]
> А вдруг воскреснет?
Кол в сердце забить. оСИновый.
Elen (2007-08-01 15:11:00) [3]
> нужно автора уволить. А лучше убить.
Радикально. А вдруг воскреснет?
Игорь Шевченко (2007-08-01 15:06:00) [4]
> А если это событие не кликом вызвано, а в программе прописано
> мол Button1MouseDown(self) тогда все-таки проверить нужно
> наподобие [2]. Так?
Нет, нужно автора уволить. А лучше убить.
{RASkov} (2007-08-01 15:06:00) [5]> [16] DVM © (01.08.07 15:01)
> Т.е. мы намеренно будем так писать, в надежде запутать программу
> и потом сами же будем испытывать проблемы.
>
> Непонятно зачем это автору вопроса вообще понадобилось.
Вот и я о том же.... автор толком не объяснил, что ему нужно, отсюда и такие ответы...
Что он там имел ввиду... чей OnMouseDown .... какой кнопки.... в общем он молчит... ну и фик с ним :)
А решение его проблемы наверняка простое как всегда, только проблему он не смог написать.... :)
Elen (2007-08-01 15:03:00) [6]
> Непонятно зачем это автору вопроса вообще понадобилось.
Это знает только автор.
DVM (2007-08-01 15:01:00) [7]
> procedure TForm1.Button2MouseDown(Sender: TObject; Button:
> TMouseButton; Shift: TShiftState; X, Y: Integer);
> begin
> Button1MouseDown(Button1, Button, Shift, X, Y);> end;
Т.е. мы намеренно будем так писать, в надежде запутать программу и потом сами же будем испытывать проблемы.
Непонятно зачем это автору вопроса вообще понадобилось.
{RASkov} (2007-08-01 14:58:00) [8]Если вызов OnMouseDown происходит непосредственно нажатием онной кнопки, то нет смысла всей этой проверки курсора где он находиться...
Elen (2007-08-01 14:58:00) [9]
> Я так понял, исходя из [0]...
Вот и я так подумала.
DVM (2007-08-01 14:54:00) [10]
> Elen © (01.08.07 14:51) [11]
>
> > Переведи
>
> см. перевод в [9].
Так это к кнопке не имеет никакого отношения. Мало ли кто какую процедуру вызвал. Sender там на что дан?
{RASkov} (2007-08-01 14:54:00) [11]+1 [7] Elen
> Переведи
Я так понял, исходя из [0]
> Как в OnMouseDown проверить находится ли курсор в нутри кнопки или нет
то обработчик можно и программно вызвать.... Пример:
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var P: TPoint;
begin
GetCursorPos(P);
P:=ScreenToClient(P);
if PtInRect((Sender as TControl).BoundsRect, P) then ShowMessage('Yes') else ShowMessage('No');
end;
procedure TForm1.Button2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Button1MouseDown(Button1, Button, Shift, X, Y);
end;
Elen (2007-08-01 14:51:00) [12]
> Переведи
см. перевод в [9].
Lacmus (2007-08-01 14:51:00) [13]
procedure TForm11.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ShowMessage('Button1MouseDown')
end;
procedure TForm11.Button2Click(Sender: TObject);
begin
SetCapture(Button1.Handle)
end;
StriderMan (2007-08-01 14:47:00) [14]
> Как в OnMouseDown проверить находится ли курсор в нутри
> кнопки или нет
просто поверь :))
единственное исключение - если обработчик вызвали ручками, т.е. из другой процедуры.
Игорь Шевченко (2007-08-01 14:42:00) [15]Elen © (01.08.07 14:27) [7]
Переведи
Elen (2007-08-01 14:27:00) [16]
> Игорь Шевченко © (01.08.07 13:57) [6]
А если это событие не кликом вызвано, а в программе прописано мол Button1MouseDown(self) тогда все-таки проверить нужно наподобие [2]. Так?
Игорь Шевченко (2007-08-01 13:57:00) [17]clickmaker © (01.08.07 13:15) [5]
> эээ... а как?
Извиняюсь. С OnMouseMove перепутал :)
clickmaker (2007-08-01 13:15:00) [18]
> [4] Игорь Шевченко © (01.08.07 13:14)
эээ... а как?
Игорь Шевченко (2007-08-01 13:14:00) [19]
> если в OnMouseDown кнопки, то ясно, что внутри
Точно ?
clickmaker (2007-08-01 13:13:00) [20]
> Nikfel © (01.08.07 13:05)
если в OnMouseDown кнопки, то ясно, что внутри
А если не кнопки, то ясно что снаружи
И в чем вопрос тогда?