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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2014, 18:21   #1
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию Изменение рисунка кнопки BitBtn

Привет.

Нашел тему на этом форуме где это обсуждалось, предлагался вариант:

Код:
procedure TForm1.BitBtn1MouseEnter(Sender: TObject);
begin
 ImageList1.GetBitmap(1,BitBtn1.Glyph); 

end;

procedure TForm1.BitBtn1MouseLeave(Sender: TObject);
begin
 ImageList1.GetBitmap(0,BitBtn1.Glyph); 
end;
Где ImageList1 содержит два разных изображения.

А если кнопок много и с каждой так нужно поступить? Не проще ли загрузить всего 1 картинку на которой размещены все иконки, при наведении на кнопку просто менять координаты картинки. Вот только где эти координаты находятся у BitBtn? Подскажите?

Последний раз редактировалось bilibian; 04.09.2014 в 20:53.
bilibian вне форума Ответить с цитированием
Старый 04.09.2014, 20:14   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

То, что Вы говорите, и есть примерно тот же способ по которому и работает имейджлист (внутри него цельная картинка, которую он динамически нарезает на кусочки и выдает вам по GetBitmap).
Если кнопок много, то надо каждой дать свой Tag и назначить указанные Вами обработчики, внутри которых цифры заменить на операции с TControl(Sender).Tag, самое простое у кнопок тэг ставить через 2: 1,3,5 и картинки в имейджлист складывать парой для наведённого и отведённого состояния, тогда тег и тег - 1 будут указывать на соотв номер картинки.
phomm вне форума Ответить с цитированием
Старый 04.09.2014, 21:11   #3
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

phomm,

Окей, спасибо, ушел пробовать
bilibian вне форума Ответить с цитированием
Старый 04.09.2014, 22:56   #4
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Работает, спасибо.

Код:
procedure TForm1.BitBtn1MouseEnter(Sender: TObject);
begin
  BitBtn1.Glyph.Assign(nil); // <--- чистим
  ImageList1.GetBitmap(BitBtn1.Tag,BitBtn1.Glyph);
end;

procedure TForm1.BitBtn1MouseLeave(Sender: TObject);
begin
  BitBtn1.Glyph.Assign(nil); // <--- чистим
  ImageList1.GetBitmap(BitBtn1.Tag+1,BitBtn1.Glyph);
end;
bilibian вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение рисунка кнопки BitBtn bang Общие вопросы Delphi 10 07.05.2013 15:06
Изменение рисунка согласно данных в ячейке. Vikup Microsoft Office Excel 0 25.04.2012 00:10
Изменение рисунка при наведении курсора мыши ru3000 Microsoft Office Excel 4 15.04.2011 01:13
BitBtn форма кнопки/прозрачность TilerDerton Общие вопросы Delphi 6 30.05.2009 10:56
Изменение пропорций рисунка, макрос laneon Microsoft Office Excel 4 12.02.2009 04:49