Форум: "Система";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];
ВнизИконка в ListBox Найти похожие ветки
← →
SVF (2002-01-17 21:35) [6]Чего то неполучается. Непойму что.
Отображается только в 32х32 пикселя. Но видно что Иконка 16х16
Хотя в Rect значения left=0,top=0,Bottom=16;
Вот исходник процедуры.
procedure TMainForm.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
Var
Ic: TIcon;
p:string;
begin
Ic:=TIcon.Create;
p:=ListBox1.Items[Index];
Ic.Handle:=GetFileIconByName(p);// получаем указатель на значёк 16х16 пикселей
ImageList1.GetIcon(1,Ic);
try
With TListBox(Control) Do
Begin
Canvas.FillRect(Rect);
// рисуем твоё изображение
Canvas.StretchDraw(Rect,Ic);
// выводим строку текста
Canvas.TextOut(Rect.Left+20,Rect.Top+2,Items[Index]);
End;
finally
Ic.Free;
end;
end;
function GetFileIconByName(FileName:String):hIcon;
var
FileInfo:TSHFileInfo;
attr:Integer;
begin
attr:=FileGetAttr(FileName);
SHGetFileInfo(PChar(FileName),attr,FileInfo,SizeOf(FileInfo),
SHGFI_SYSICONINDEX or
SHGFI_ICON or
SHGFI_SMALLICON or
SHGFI_OPENICON);
Result:=FileInfo.hIcon;
end;
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c