Newsgroup: it.comp.lang.delphi
Titolo: Icone dei tipi di file registrati (+ auguri :)

Salve! Qualcuno sa dove andare a spulciare le icone che sono assegnate ad
ogni tipo di file registrato ?
Ad esempio l'icona dei bmp, dei file zip ecc ecc..
devo fare una specie di browser dei file su un server e vorrei visualizzare
le icone del sistema.. un po' come fa winzip con gli zip :)
Grazie a chi risponde e tanti auguri per un felice anno a tutti :-)
--
{MSX}  -  
http://msx.rules.it
Mantenitore delle FAQ di it.comp.lang.delphi,
reperibili qui: 
http://gpi.infomedia.it/abc/delphi/FaqDelphi.txt

>>>>>>>>>>>>>>>>> Notizia originaria <<<<<<<<<<<<<<<<<<
Il 31/12/2001, 11.12.07, "{MSX}" <nicola...@THISlugato.org> ha scritto 
sull‘argomento Icone dei tipi di file registrati (+ auguri :):


(a quando KTA2) ?
Ehehe a dirti la verita' avevo iniziato il progetto, ma poi mi era passata
la voglia.. Ora volevo un giochino che avesse qualche risvolto multiplayer
in rete.. avevo provato a fare KTAarena (cioe' multiplayer) ma nei giochi
d'azione la latenza e' davvero un ostacolo insormontabile..  Al massimo
sarebbe venuto bene per le lan..
Ciao !                            {MSX}

"{MSX}" ha scritto nel messaggio
| Salve! Qualcuno sa dove andare a spulciare le icone che sono assegnate ad
| ogni tipo di file registrato ?
Io faccio cosi':
uses shellapi;
procedure GetIconaFile ( const NomeFile: string;
                                   var Immagine: TImage; Piccola: Boolean);
var
  tempSFI: TShFileInfo;
begin
  FillChar(tempSFI, SizeOf(tempSFI), 0);
  if SHGetFileInfo( PCHAR(NomeFile), 0, tempSFI,
                    SizeOf(tempSFI), SHGFI_ICON + Ord(Piccola)) <> 0
  then begin
    Immagine.Picture.Icon.ReleaseHandle;
    Immagine.Picture.Icon.Handle := tempSFI.hIcon;
  end;
end;
--
Ciao e auguri.
ACSH
[D4]
---------------------------
Chi fa da se'
fatica il doppio

Grazie ero arrivato anche io a questa soluzione grazie ad alcuni consigli..
Pero' qui occorre avere un file specifico, mentre il mio programma deve
visualizzare un elenco di file remoti, quindi non presenti.
Percio' mi serve l'icona del tipo di file avendo a disposizione solo
l'estensione, non un file di quel tipo..
Spero di essermi spiegato :)
Avete consigli ?
Grazie!
"ACSH" <cat...@XXXinfinito.it> ha scritto nel messaggio
news:30mY7.2348$2F4....@news1.tin.it...


MSX guarda qua :)
http://www.codeproject.com/shell/diriconexample.asp
P.S. fra un po aggiorno la sezione delphi di GPI (sapete.. ora sono io il
successore di MSX.. sarò degno???)
Per KTA2: Arena (troppo bello sto titolo che ti avevo suggerito) forse con
opportune ottimizzazioni è possibile farlo anche con un misero server 56k!!!
Vi terrò informati!
Tanner
"{MSX}" <nicola...@THISlugato.org> ha scritto nel messaggio
news:OIoY7.6393$%B.23...@twister2.libero.it...


Purtroppo l'articolo non me lo ricordo ma potesti fare una ricerca per 
“ExtractIcon” o vedere nella sezione WinApi
Ciao Daniele

 Vi terrò informati!
Beh che sia possibile, lo e', anche Quake3 infondo gira benino col 56k, ma
alla ID sono un po' piu' bravi di noi :)
Io avevo fatto vari test, usando alcuni metodi di comunicazione e
sincronizzazione letti qua e la oppure inventati, e gli omini saltavano
sempre, neanche avessero il teletrasporto.. davvero pessimi risultati.
Se riesci a farlo tu, tanto meglio :) KTA multiplayer sarebbe davvero
stupendo :)
Anzi quasi quasi a tempo perso mi ci rimetto piu' seriamente :)
Ciao !


Nel caso servisse a qualcuno, riporto la soluzione (accidenti se e' stata
dura):
dopo lunghe peregrinazioni, ho trovato, tra i sorgenti trovati al link di
Tanner, questo link:
http://support.microsoft.com/support/kb/articles/Q179/1/67.ASP
In cui si dice:
HOWTO: Retrieve an Icon for a File Class Without a File (Q179167)
SUMMARY
This article explains how to use the SHGetFileInfo API to retrieve the icon
for a file class without having a specific file of that class available.
MORE INFORMATION
To do this, select the SHGFI_USEFILEATTRIBUTES flag and
FILE_ATTRIBUTE_NORMAL so that the API assumes that the file exists and it
will not try to look for it on disk.
For example, to find the icon associated with ".zip" files the call would
look like:
   SHFILEINFO sfi;
   HIMAGELIST hil;
   ZeroMemory(&sfi,sizeof(sfi));
   hil = SHGetFileInfo(".zip",
                       FILE_ATTRIBUTE_NORMAL,
                       &sfi,
                       sizeof(sfi),
                       SHGFI_USEFILEATTRIBUTES|SHGFI_ICON);
   // hil now contains the handle to the system image list
   // containing the large icon images.
   // sfi.hIcon contains the large icon for the file.

ottimo...
mettilo nella FAQ!!!
"{MSX}" <nicola...@THISlugato.org> ha scritto nel messaggio
news:X5MY7.8703$%B.33...@twister2.libero.it...


 mettilo nella FAQ!!!
Giusto, provvedo subito