Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2015, 18:57   #1
fn12gl34
Заблокирован
 
Регистрация: 01.01.2014
Сообщений: 13
По умолчанию Анимирование кнопки

Здравствуйте. Прошу вашей помощи. Имеется рисунок (битмап). Нужно при наведении на него курсора менять изображение, и по нажатию соответственно. В общем, типичная "игровая" кнопка. Полазил по форумам, но так и не нашел внятного объекта. Прошу вас помочь мне, и написать маленький кусочек кода, где изображение pic1 будет меняться на pic2 по наведению на него мышью.
Заранее благодарен
fn12gl34 вне форума Ответить с цитированием
Старый 14.02.2015, 19:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Отредактировал пост.
Изображения откуда берутся?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.02.2015, 19:09   #3
fn12gl34
Заблокирован
 
Регистрация: 01.01.2014
Сообщений: 13
По умолчанию

А где я в своем накосячил?
Из папки, типо pic1.loadfromfile(file)
fn12gl34 вне форума Ответить с цитированием
Старый 14.02.2015, 19:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
где я в своем накосячил?
Тогда попробуй так:
Код:
procedure TForm1.Image1MouseEnter(Sender: TObject);
begin
  Image1.Picture.Bitmap.LoadFromFile('d:\(32).jpg');
end;

procedure TForm1.Image1MouseLeave(Sender: TObject);
begin
    Image1.Picture.Bitmap.LoadFromFile('d:\1270446831_6301331xei.jpg');

end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.02.2015, 19:18   #5
fn12gl34
Заблокирован
 
Регистрация: 01.01.2014
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Тогда попробуй так:
Код:
procedure TForm1.Image1MouseEnter(Sender: TObject);
begin
  Image1.Picture.Bitmap.LoadFromFile('d:\(32).jpg');
end;

procedure TForm1.Image1MouseLeave(Sender: TObject);
begin
    Image1.Picture.Bitmap.LoadFromFile('d:\1270446831_6301331xei.jpg');

end;

Я бы так и сделал, но изображение выводится не в TImage, а рисуется на форме canvas.draw
fn12gl34 вне форума Ответить с цитированием
Старый 14.02.2015, 19:28   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

OnMouseMove и OnMouseDown формы
В первой фиксировать вход/выход курсора в эту область формы, во второй клик на ней
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.02.2015, 19:31   #7
fn12gl34
Заблокирован
 
Регистрация: 01.01.2014
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
OnMouseMove и OnMouseDown формы
В первой фиксировать вход/выход курсора в эту область формы, во второй клик на ней
А как определить область битмапа? Вручную считать через длину\высоту битмапа, позицию верхней левой точки и тд?
fn12gl34 вне форума Ответить с цитированием
Старый 14.02.2015, 19:36   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

У этих событий есть координаты мыши, не помню точно, кажись относительно экрана. Тогда их нужно привести к координатам относительно формы методом ScreenToClient. И есть координаты и размеры области. Вот и считай, не вручную конечно, а кодом в обработчиках событий
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.02.2015, 19:40   #9
fn12gl34
Заблокирован
 
Регистрация: 01.01.2014
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
У этих событий есть координаты мыши, не помню точно, кажись относительно экрана. Тогда их нужно привести к координатам относительно формы методом ScreenToClient. И есть координаты и размеры области. Вот и считай, не вручную конечно, а кодом в обработчиках событий
Эти координаты относительно формы вроде. Ну я и имел ввиду кодом. Просто думал, есть вариант проще.
fn12gl34 вне форума Ответить с цитированием
Старый 14.02.2015, 19:44   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Просто думал, есть вариант проще.
Типа старика Хоттабыча в процессоре? Все и сводится в программах в конечном счете к сложению и сравнению
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анимирование стрелки... kentlm Мультимедиа в Delphi 2 14.05.2009 02:17
Наглядное анимирование работы программы. Geddar Помощь студентам 9 03.05.2009 06:24
UCOZ: Кнопки кнопки на изображении ReDuX HTML и CSS 19 25.04.2008 02:39
триггерные кнопки и кнопки переключатели в DELPHI MARGO Помощь студентам 3 12.11.2007 17:35