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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.04.2009, 19:52   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Создание анимации нажатия на кнопку

Как бы сделать кнопку с анимацией нажатия и что бы при наведении на неё мышой картинка тоже менялась?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума
Старый 26.04.2009, 20:16   #2
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Обратите внимание на кнопку BitBtn :
Цитата:
Используется кнопка BitBtn , отличающаяся, прежде всего, возможностью отобразить на ее поверхности изображение.Изображение на этой кнопке задается свойством Glyph. При нажатии кнопки с многоточием в строке свойства Glyph в Инспекторе Объектов вызывается окно. Нажав в нем кнопку Load вы перейдете в обычное окно открытия файла рисунка и можете выбрать файл битовой матрицы .bmp, содержащий желаемое изображение.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума
Старый 26.04.2009, 20:17   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Насчет использования BitBtn я и не сомневался. Я имел ввиду изменения рисунка по наведению мыши или клику.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума
Старый 26.04.2009, 20:25   #4
Disel
Форумчанин
 
Аватар для Disel
 
Регистрация: 08.01.2009
Сообщений: 180
По умолчанию

В событии OnMouseMove для кнопки, пишите код который меняет картинку.
Пример:
Код:
procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  BitBtn1.Glyph.LoadFromFile('CLEAR.bmp');
end;
"Все что натыкано на клаве, ведет тебя к погибели иль славе"
Если помог нажми на весы

Последний раз редактировалось Disel; 26.04.2009 в 20:32.
Disel вне форума
Старый 26.04.2009, 20:34   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Поставил такой код:
Код:
procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
BitBtn1.Glyph:=Kadr2; // Где Kadr2 - TBITMAP, уже заданный
end;
Но страшно мерцает и не возвращает картинку, установленную по умолчанию
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Stilet; 27.04.2009 в 11:01.
Alex Cones вне форума
Старый 26.04.2009, 21:09   #6
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Цитата:
Но страшно мерцает
Кажется лучше использовать не MouseMove , а координаты "мышиного" курсора на форме GetCursorPos(p: TPoint).При этом ипользовать дополнительный флаг на единственное изменение рисунка. Т.е. если x:= p.X; и y:= p.Y; попадают в координаты кнопки BitBtn, сменить рисунок кнопки и установить флаг.При этом использовать условие - если флаг установлен, то EXIT (выход из процедуры). Далее, как только координаты x и y вышли из координат кнопки, то вернуть исходный рисунок и сбросить флаг.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума
Старый 27.04.2009, 17:31   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Т.е. насколько я понял:
If (p.X>150) And (p.X<200) And (p.Y>100) And (p.Y<200) Then PrcChangeBtnScrn;

// Если координаты кнопки 150,100, а выс. и шир. : 100, 50?

ЗЫ: И, разумееся в процедуре запускать таймер, проверяющий координаты (для смены пикчи при выходе). И если координаты не соответствуют кнопке, то изменить пикчу и вырубить таймер.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума
Старый 27.04.2009, 19:03   #8
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Ну да.Функция GetCursorPos(p: TPoint) вставляется в таймер и тем самым фоном(резидентно) отслеживает постоянно координаты "мыши".И здесь же все процедуры смены рисунка по сравнению координат.Таймер отрубать не обязательно(даже не нужно).А в промежутках между таймером обработка остального кода.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума
Старый 27.04.2009, 19:06   #9
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Огромное спасибо за информацию
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Поймать" событие нажатия на кнопку Lisi4ka Общие вопросы Delphi 12 27.04.2009 18:14
Избежать повторного нажатия на кнопку Shouldercannon Общие вопросы Delphi 4 27.04.2009 11:26
Время нажатия на кнопку мыши(Время реакции) Кирилл13 Помощь студентам 1 11.04.2009 19:41
Анимации Sanek777 Общие вопросы Delphi 0 02.11.2008 17:19
Gif анимации Witaliy Мультимедиа в Delphi 9 28.04.2008 10:47