Консультация № 44817
31.05.2006, 18:38
0.00 руб.
0 2 2
Здравствуйте уважаемые эксперты. Как в Delphi5 сделать так, чтобы при наведении мыши на картинку она менялась. Ведь событий OnMouseOver и OnMouseOut нет. Пробовал через OnMouseMove, но если быстро перемещать мышь на и из картинки, то не всегда работает, видимо OnMouseMove не успевает считывать координаты. Заранее спасибо.

Обсуждение

Неизвестный
31.05.2006, 18:58
общий
это ответ
Здравствуйте, Popcov!
Заведите отдельную переменную, которая будет хранить текущее состояние картинки (например: <i>state: integer = 0;</i>). В OnMouseMove() картинки проверяйте значение переменной: если 0, то измените значение на 1 и загрузить вторую картинку. Аналогично для события OnMouseMove() формы (или TPanel - смотря на чём TImage расположен). Здесь уже наоборот: если было 1, то поменять на 0 и вернуть картинку. Данный способ также избавит от мерцаний картинки при движении мыши. Надеюсь, алгоритм понятен. А лучше использовать специальный компоненты.
Неизвестный
31.05.2006, 19:18
общий
это ответ
Здравствуйте, Popcov!
Можно использовать событие OnMouseMove Картинки и элемента(ов) управления(й) вокруг картинки, смотрим приложение (картинка посередине формы). Желаю Вам успеха!

Приложение:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begin Image1.Proportional := false;end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begin Image1.Proportional := true;end;
Форма ответа