Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

listview + ShGetFileInfo   Найти похожие ветки 

 
Redlord   (2004-10-28 20:38) [0]

всем приве
искал инфу по 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-28 23:57) [1]

>>Redlord  (28.10.04 20:38)

>подскажите в чом ошибка ???

Во-первых, в слове "чом".
Во-вторых, в том, что нет такого файла *.*


 
Redlord   (2004-10-29 00:36) [2]

при указании любого существующего файла (shell32.dll)  иконка всегда отображается одна и таже на все типы файлов (знак расшаренного ресурса)


 
VMcL ©   (2004-10-29 07:46) [3]

>>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".



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.047 c
14-1098805111
Сергей__С
2004-10-26 19:38
2004.11.14
Инсталятор


3-1097629887
dark
2004-10-13 05:11
2004.11.14
Как включить поддержку кодировки в таблицу формата *.dbf (dBASE)


1-1099029748
dms_main
2004-10-29 10:02
2004.11.14
Dll и TThread


4-1096901315
bgs
2004-10-04 18:48
2004.11.14
Добавить пользователя в вин 2000 средствами делфи


4-1096828629
Velzevul
2004-10-03 22:37
2004.11.14
тоновый, импульсный