Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
12-08-2005 08:56 | Вопрос к автору: запрос дополнительной информации
Изначально, такое событие не предусмотрено Delphi, собственно тут дали довольно много вариантов замены этого события. Если курсор покидает TImage событие OnMouseMove /Sender-TImage/ перестает выполняться и начинает выполняться событие OnMouseMove компонента, находящегося за границами TImage...
И что подразумевается под "отследить событие?"
>>>Делаете наследника от TImage и делаете 2 новых события с отловом данных сообщений
Наследника делать не обязательно. У TImage, как и у всех визуальных компонентов, есть свойство WindowProc, изменив которое, можно вмешиваться в обработку событий.
procedure TForm1.ChangeState;
begin
Image1.Picture.Bitmap.Canvas.FillRect(Image1.ClientRect);
if ToEnter then begin
Label1.Caption := 'Enter';
ImageList1.GetBitmap(0, Image1.Picture.Bitmap);
end
else begin
Label1.Caption := 'Leave';
ImageList1.GetBitmap(1, Image1.Picture.Bitmap);
end;
Image1.Invalidate;
end;
procedure TForm1.NewWindowProc(var Msg: TMessage);
begin
// все для того, чтоб исключить беспрерывный вызов ChangeState!
if (Msg.Msg = CM_MouseLeave) or (Msg.Msg = CM_MouseEnter) then begin
if (not MouseLeave and (Msg.Msg = CM_MouseLeave))
or (MouseLeave and (Msg.Msg = CM_MouseEnter)) then ChangeState(MouseLeave);
MouseLeave := (Msg.Msg = CM_MouseLeave);
Beep; // би-бип
end;
OldWinProc(Msg);
end;
>>>И нет там ни каких OnMouseEnter и OnMouseLeave.
Конечно нет! Реакцию на эти сообщения нужно создать самому. Напиши мне на мыло, что именно тебе нужно, и я расскажу как это сделать
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.