![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
listview + ShGetFileInfo [D7, WinXP]
Redlord © (2004-10-28 20:38:00)всем приве
искал инфу по listview + ShGetFileInfo
в инете тока этот пример везде лежит.
но он у меня не пашет (windows XP).
точнее пашет тока иконок от него не дождешся
подскажите в чом ошибка ???
буду рад рабочему примеру
procedure TForm1.FormCreate(Sender: TObject);
var
fi: TSHFileInfo;
lc: TListColumn;
ImageListHandle:thandle;
begin
DriveComboBox1.DirList := DirectoryListBox1;
listview1.SmallImages := TImageList.Create(nil);
listview1.SmallImages.Handle := ShGetFileInfo('*.*', 0, fi,
SizeOf(fi), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
listview1.LargeImages := TImageList.Create(nil);
listview1.LargeImages.Handle := ShGetFileInfo('*.*', 0, fi,
SizeOf(fi), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
lc := listview1.Columns.Add;
lc.Caption := 'Name';
lc := listview1.Columns.Add;
lc.Caption := 'Size';
UpdateFiles;
end;
VMcL (2004-10-29 07:46:00) [1]>> Redlord (29.10.04 00:36) [2]
> всегда отображается одна и таже на все типы файлов
А знаешь почему? Потому что тебе лень нажать F1.
procedure TForm1.Button1Click(Sender: TObject);
var
fi: TSHFileInfo;
begin
ImageList1.Handle := ShGetFileInfo(
'C:\1.doc',
0, fi,
SizeOf(fi), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
ListView1.Items[0].ImageIndex := fi.iIcon;
end;
Форма:
object Form1: TForm1
Left = 1
Top = 106
Width = 716
Height = 414
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object ListView1: TListView
Left = 5
Top = 10
Width = 661
Height = 321
Columns = <>
Items.Data = {
210000000100000000000000FFFFFFFFFFFFFFFF000000000000000004746573
74}
SmallImages = ImageList1
TabOrder = 0
ViewStyle = vsSmallIcon
end
object Button1: TButton
Left = 5
Top = 340
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 1
OnClick = Button1Click
end
object ImageList1: TImageList
Left = 40
Top = 115
end
end
Естественно, чтобы пример функционировал, нужно чтобы существовал файл "C:\1.doc".
Redlord (2004-10-29 00:36:00) [2]при указании любого существующего файла (shell32.dll) иконка всегда отображается одна и таже на все типы файлов (знак расшаренного ресурса)
VMcL (2004-10-28 23:57:00) [3]>> Redlord (28.10.04 20:38)
> подскажите в чом ошибка ???
Во-первых, в слове "чом".
Во-вторых, в том, что нет такого файла *.*