Форум: "Media";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
ВнизКак правильно отображать в TListView 32 -битные иконки Найти похожие ветки
← →
vnavigator (2004-12-06 20:05) [0]Проблема в том что я создаю динамически иконки, и когда их отображаю на елементе управления TListView они выходят какие-то угловатые то есть 8-битные (в Listview я их добавляю с помощью TIcon и TImageList)
← →
Mihey_temporary © (2004-12-06 20:36) [1]
> в Listview я их добавляю с помощью TIcon и TImageList
TIcon не умеет грузить 32-битные правильно.
← →
vnavigator (2004-12-06 23:05) [2]Я сам знаю, что TIcon не умеет грузить 32-битные иконы правильно, а как это сделать, чтоб грузил правильно?
← →
vnavigator (2004-12-06 23:59) [3]Короче я тут копал, копал и накопал:
unit uImgList;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,CommCtrl;
procedure ConvertTo32BitImageList(const ImageList: TImageList);
implementation
procedure ConvertTo32BitImageList(const ImageList: TImageList);
const
Mask: array[Boolean] of Longint = (0, ILC_MASK); var
TempList: TImageList;
begin
if Assigned(ImageList) then
begin
TempList := TImageList.Create(nil);
try
TempList.Assign(ImageList);
with ImageList do
begin
Handle := ImageList_Create(Width, Height, ILC_COLOR32 or Mask[Masked],0, AllocBy);
if not HandleAllocated then
raise EInvalidOperation.Create("Bad ImageList");
end;
Imagelist.AddImages(TempList);
finally
FreeAndNil(TempList);
end;
end;
end;
end.
При создании формы вызываеш ConvertTo32BitImageList(ilIcons); и все ОК!!! Ура,Ура,Ура...
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c