Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 321

/ вопрос открыт /

Здравствуйте. С кнопками у меня нечего не получилось, ну и
ладно. Я хочу задать вопрос, а с Image1 может так получится.
Я постараюсь правильно сформулировать вопрос.
На форму ложу Image1 и Image2, одну на другую.
Открываю в них две иконки в Image1 32*32, а в Image2 64*64.
Вопрос? Как мне сделать так, что бы наведя на иконку мышкой
(32*32 т.е Image1),появлялась иконка(64*64 т.е Image2),
а, убрав мышку с Image2(64*64), опять появлялась Image1(32*32), так
как это сделано с иконками в программах Talisman, Aston, StileXP,
ну и так далее.
А вот с окнами у меня подошёл один код, который отправил
Сергей Устинов. Спасибо ещё раз всем. Так как я начинающий,
поэтому информацию черпнул не плохую. Ну а если вернутся к окнам
то и здесь маленький нюанс, мне надо, что бы все окна сворачивались,
а моё (главной формы) не сворачивалось. Можно так сделать? И в
заключении ещё раз поблагодарю всех, кто помогает тем, кто в этом ещё
не силён. Большое спасибо.

Толков Геннадий Викторович Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Толков Геннадий Викторович (статус: Посетитель)
Вопрос отправлен: 17 февраля 2007, 23:07
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Николай Рубан

Вам достаточно будет написать такие обработчики:

//реагирует на движение мыши на Image1
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Image1.Visible:=false;
Image2.Visible:=true;
end;

//реагирует на движение мыши на форме
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (x<Image2.Left) or (x>Image2.Left+Image2.Width) or
(y<Image2.Top) or (y>Image2.Top+Image2.Height)
then
begin
Image1.Visible:=true;
Image2.Visible:=false;
end;
end;

Еще я Вам рекомендую при создании формы сделать такие дополнительные настройки объектов:
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.AutoSize:=true;
Image2.AutoSize:=true;
Image2.Top:=Image1.Top;
Image2.Left:=Image1.Left;
Image2.Visible:=false;
end;

Good Luck!!!

Ответ отправил: Николай Рубан (статус: 10-ый класс)
Время отправки: 17 февраля 2007, 23:45
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: Матвеев Игорь Владимирович

Здравствуйте, Толков Геннадий Викторович!

Бростьте заниматься ерундой!
Ваши сообщения CM_MOUSEENTER / CM_MOUSELEAVE.

При попадании курсора на контрол приходит CM_MOUSEENTER, при покидании - CM_MOUSELEAVE.

Например, TLabel (точнее TCustomLabel) ловит их и вызывает обработчики OnMouseEnter / OnMouseLeave. Посмотрите как это реализованно в StdCtrls.pas и добавьте для своего наследника TImage.

Дело 10 минут.

Ответ отправил: Матвеев Игорь Владимирович (статус: Студент)
Время отправки: 19 февраля 2007, 06:11


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:35
Выполнено за 0.03 сек.