Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


Ответ
 
Опции темы
Старый 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,840
По умолчанию

Отредактировал пост.
Изображения откуда берутся?
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,840
По умолчанию

Цитата:
где я в своем накосячил?
Тогда попробуй так:
Код:
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,061
По умолчанию

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,061
По умолчанию

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

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

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

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS