Среда, 18.06.2025, 21:08
Приветствую Вас Гость | RSS
Меню сайта
fff
  • Индексация
  • Девочки
    Форма входа
    Категории раздела
    Теория алгоритмов [3]
    Теория алгоритмов
    Code Snippets [1]
    Code Snippets
    Все о PHP [20]
    Все о PHP
    Visual C++ [13]
    Visual C++
    WIN32 API [7]
    WIN32 API
    Delphi [72]
    Delphi
    ASP [2]
    ASP
    Java [67]
    Java
    VBScript [6]
    VBScript
    CGI [2]
    CGI
    VRML [2]
    VRML
    PERL [9]
    PERL
    HTML [4]
    HTML
    XML [10]
    XML
    Архив записей

    Статьи по Оптимизации

    ПРОГРАММИРОВАНИЕ! СОЗДАНИЕ САЙТОВ И ИХ ОПТИМИЗАЦИЯ

    Главная » Статьи » Программирование » 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.ute then
    ImageList1.FileLoad(rtBitMap,OpenDialog1.FileName,clBtnFace);
    label1.Caption:= 'Количество иконок = ' + IntToStr(ImageList1.Count);
    end;

    Категория: Delphi | Добавил: Merlin (07.12.2009)
    Просмотров: 463 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *: