Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi SHGetFileInfo Icon und ListView (https://www.delphipraxis.net/24727-shgetfileinfo-icon-und-listview.html)

HomerGER 25. Jun 2004 08:02


SHGetFileInfo Icon und ListView
 
Hallo
Ich lese tmp dateien aus und zeige sie in ein Listview an
zustätzlich noch das Datei-Icon

Delphi-Quellcode:
//******************************************************************************
//Haupt Function
Procedure Temp_Ordner_Anzeigen_WHU();
var
list_item_li : TListItem;
icon_list_il : HImageList;
file_info_fi : TSHFileInfo;
dateien_sl : TStringList;
folder_s : String;
i : Integer;

begin
    //Icon laden
    icon_list_il := HImageList(SHGetFileInfo('', 0, file_info_fi, SizeOf(file_info_fi), SHGFI_SYSICONINDEX or SHGFI_ICON));

    if (icon_list_il <> 0) then
    begin
        Haupt_Form.Wartung_Temp_ImageList1.Handle := icon_list_il;
        Haupt_Form.Wartung_Temp_ImageList1.Height := 16;
        Haupt_Form.Wartung_Temp_ImageList1.Width := 16;
    end;

    //Alles löschen
    Haupt_Form.Wartung_ListView41.Clear;

    //Spezial Ordner auslesen
    folder_s := Windows_System_Variable_GU('Temp');

    dateien_sl := TStringList.Create;
    dateien_sl.Clear;

    try
        Dateien_Suchen_GU(dateien_sl , folder_s, '*.*');

        for i := 0 to dateien_sl.Count - 1 do
        begin
            Application.ProcessMessages;

            //Name
            list_item_li := Haupt_Form.Wartung_ListView41.Items.Add;
            list_item_li.Caption := ExtractFileName(dateien_sl.Strings[i]);

            //Icon
            SHGetFileInfo(PChar(dateien_sl.Strings[i]), 0, file_info_fi, SizeOf(file_info_fi), SHGFI_SYSICONINDEX or SHGFI_ICON);
            list_item_li.ImageIndex := file_info_fi.iIcon;

        end;


    finally
        dateien_sl.Free;
    end;
end;
nur bekomme ich jetzt den fehler Out of Resource
nehme ich
Delphi-Quellcode:
           
SHGetFileInfo(PChar(dateien_sl.Strings[i]), 0, file_info_fi, SizeOf(file_info_fi), SHGFI_SYSICONINDEX or SHGFI_ICON);
list_item_li.ImageIndex := file_info_fi.iIcon;
raus ist alles ok
habe ich irgendwo vergessen den speicher freizugeben?
oder was ist da falsch?
kann jemand helfen

HomerGER 27. Jun 2004 12:05

Re: SHGetFileInfo Icon und ListView
 
hallo
ich habe jetzt es so gemacht

ListView4.SmallImages.Handle := SHGetFileInfo(PChar(dateien_sl.Strings[i]), 0, file_info_fi, SizeOf(file_info_fi), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);

list_item_li.ImageIndex := file_info_fi.iIcon;

jetzt kommt das Programm ohne absturz und grafik fehler aus


aber warum ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz