На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Компоненты / Смена иконки BitBtn во время работы приложения Сделать домашней страницей Добавить в избранное Написать писмо

Смена иконки BitBtn во время работы приложения


Иконка компонента является инкапсулированным объектом, требующим для хранения изображения некоторый участок памяти. Следовательно, при замене иконки, память, связанная с первоначальной иконкой, должна возвратиться в кучу, а для новой иконки требуется новое распределение памяти. По правилам Delphi, этим должен заниматься метод "Assign". Ниже приведен код всей процедуры замены иконки.


implementation

{$R *.DFM}

var
  n: integer; // При инициализации программы данное значение будет равным нулю

procedure TForm1.Button1Click(Sender: TObject);
var
  Image: TBitmap;
begin // Изменение иконки в BitBtn1

  Image := TBitmap.Create;
  if n < ImageList1.Count then
    ImageList1.GetBitmap(n, Image);
  {end if}

  BitBtn1.Glyph.Assign(Image)
    // Примечание: Для изменения свойств объекта используется метод Assign

  inc(n, 2); // В данный момент кнопка содержит две иконки!
  if n > ImageList1.Count then
    n := 0;
  {end if}
  Image.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin // добавляем новую иконку кнопки в список ImageList1
  if OpenDialog1.Execute then
    ImageList1.FileLoad(rtBitMap, OpenDialog1.FileName, clBtnFace);
  label1.Caption := 'Количество иконок = ' + IntToStr(ImageList1.Count);
end;


Copyright ©   "DELPHI WORLD"   E-mail:   delphiworld@mail.ru  http://www.delphiworld.narod.ru
Источник получения информации: http://www.delphiworld.narod.ru
Hosted by uCoz