AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListView, Icon und SHGetFileInfo

Ein Thema von HomerGER · begonnen am 11. Mai 2004 · letzter Beitrag vom 13. Mai 2004
 
Benutzerbild von HomerGER
HomerGER

Registriert seit: 8. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#23

Re: ListView, Icon und SHGetFileInfo

  Alt 13. Mai 2004, 14:29
hab die Icon in den Columns weggelassen

nur hab ich jetzt folgenden effekt

ich hab 2 ListView

lass ich mir in ListView1 alle dateien anzeigen zeigt auch die Icon zu den Dateien
lass ich mir dann ListView2 die Dateien anzeigt zeigt er AUCH die Icon an

nun kommt es

start ich das programm neu und laß mir erst die Dateien in ListView2 anzeigen sind keine Icon da
lass ich sie dann wieder in ListView2 anzeigen sind sie da und kann ich sie mir auch in ListView1 anzeigen lassen

Delphi-Quellcode:
//******************************************************************************
//IE CookieCache lesen
Procedure IECache_Cookie_Lesen_IECU();
var
ie_cache : PINTERNETCACHEENTRYINFO;
size_dw : DWord;
cache_dir_dw : DWord;
icon_list_il : HImageList;
list_item_li : TListItem;
file_info_fi : TSHFileInfo;
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;

    Haupt_Form.Wartung_ListView01.Items.BeginUpdate;
    Haupt_Form.Wartung_ListView01.Items.Clear;

    size_dw := 65536;
    ie_cache := AllocMem(size_dw);

    try
        cache_dir_dw := FindFirstUrlCacheEntry(NIL, ie_cache^,size_dw);

        while cache_dir_dw <> 0 do
        begin
            Application.ProcessMessages;

            if ((ie_cache^.CacheEntryType AND COOKIE_CACHE_ENTRY) = COOKIE_CACHE_ENTRY) then
            begin
                //Name
                list_item_li := Haupt_Form.Wartung_ListView01.Items.Add;
                list_item_li.Caption := ie_cache^.lpszSourceUrlName;

                //Icon
                SHGetFileInfo(ie_cache^.lpszLocalFileName, 0, file_info_fi, SizeOf(file_info_fi), SHGFI_SYSICONINDEX or SHGFI_ICON);
                list_item_li.ImageIndex := file_info_fi.iIcon;

                //Grösse
                list_item_li.SubItems.Add(Datei_Groesse_Format_GU(Datei_Groesse_GU(ie_cache.lpszLocalFileName)));
            end;

            size_dw := 65536;

            if not FindNextURLCacheEntry(cache_dir_dw,ie_cache^,size_dw) then
            begin
                cache_dir_dw := 0;
            end;
        end;
    finally
        FreeMem(ie_cache,65536);
        Haupt_Form.Wartung_ListView01.Items.EndUpdate;
    end;
end;


//******************************************************************************
//IE URLHistoryCache lesen Verläufe
Procedure IECache_URLHistory_Lesen_IECU();
var
ie_cache : PINTERNETCACHEENTRYINFO;
size_dw : DWord;
cache_dir_dw : DWord;
icon_list_il : HImageList;
list_item_li : TListItem;
file_info_fi : TSHFileInfo;
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;

    Haupt_Form.Wartung_ListView11.Items.BeginUpdate;
    Haupt_Form.Wartung_ListView11.Items.Clear;

    size_dw := 65536;
    ie_cache := AllocMem(size_dw);

    try
        cache_dir_dw := FindFirstUrlCacheEntry(NIL, ie_cache^,size_dw);

        while cache_dir_dw <> 0 do
        begin
            Application.ProcessMessages;

            if (ie_cache^.CacheEntryType AND URLHISTORY_CACHE_ENTRY) = URLHISTORY_CACHE_ENTRY then
            begin
                //Name
                list_item_li := Haupt_Form.Wartung_ListView11.Items.Add;
                list_item_li.Caption := ie_cache^.lpszSourceUrlName;

                //Icon
                SHGetFileInfo(ie_cache^.lpszLocalFileName, 0, file_info_fi, SizeOf(file_info_fi), SHGFI_SYSICONINDEX or SHGFI_ICON);
                list_item_li.ImageIndex := file_info_fi.iIcon;
            end;

            size_dw := 65536;

            if not FindNextURLCacheEntry(cache_dir_dw,ie_cache^,size_dw) then
            begin
                cache_dir_dw := 0;
            end;
        end;
    finally
        FreeMem(ie_cache,65536);
        Haupt_Form.Wartung_ListView11.Items.EndUpdate;
    end;
end;


Es ist aber immer nur eine ListView sichbar

kannst du helfen ?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz