/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Default ikon?
Fra : Kasper (TSW)


Dato : 18-03-01 16:33

Hej alle...

Jeg har lidt brug for at kunne finde default ikonet for fx en PHP eller en
GIF fil. Sådan så at jeg bare, via et filnavns extension, kan finde ikonet
for den filtype, og smide det ind i et TImage. Hvordan kan det gøres
smartest? Lidt kode vil være lækkert

--
Med Venlig Hilsen

Kasper (TSW)

www.tsw.dk - The SoftWare You Need!
www.udvikleren.dk - What Programmers Need!



 
 
Niels (18-03-2001)
Kommentar
Fra : Niels


Dato : 18-03-01 22:28

Just as I expected, Kasper (TSW) came up with this:

>Jeg har lidt brug for at kunne finde default ikonet for fx en PHP eller en
>GIF fil. Sådan så at jeg bare, via et filnavns extension, kan finde ikonet
>for den filtype, og smide det ind i et TImage. Hvordan kan det gøres
>smartest? Lidt kode vil være lækkert

Den her kode skulle virke (utestet):

function GetFileIcon(FileName: string): TIcon;
begin
Result := TIcon.Create;
Result.Handle := ExtractAssociatedIcon(HInstance,
PChar(FileName), 0);
end;

Jeg er ikke sikker på parametren HInstance, det skal være programmets
instance-handle (defineret og tildelt i System.pas).

Niels
--
e-mail: nmartin at iname dot com
ICQ UIN: 50187323
http://www.niller.f2s.com/ - niLLer's pages

Niels (18-03-2001)
Kommentar
Fra : Niels


Dato : 18-03-01 23:24

Just as I expected, Niels came up with this:

>Den her kode skulle virke (utestet):

<snip>

Det gjorde den altså ikke! Men den her virker, og det er testet!

function GetFileIcon(FileName: string): TIcon;
var
FileInfo: SHFILEINFO;
begin
SHGetFileInfo(PChar(FileName), 0, FileInfo, SizeOf(FileInfo),
SHGFI_ICON or SHGFI_ICONLOCATION);
Result := TIcon.Create;
Result.Handle := FileInfo.hIcon;
end;

Husk at tilføje ShellAPI til din USES sætning.

Niels
--
e-mail: nmartin at iname dot com
ICQ UIN: 50187323
http://www.niller.f2s.com/ - niLLer's pages

Kasper (TSW) (19-03-2001)
Kommentar
Fra : Kasper (TSW)


Dato : 19-03-01 09:33

Hej Niels...

>Men den her virker, og det er testet!

Sorry, men det virker altså stadig ikke her
Jeg bruger funktionen således her, er det ikke rigtigt? Der sker i hvert
fald ikke noget (Image1 får ikke noget ikon). Hvad er der mon galt?

function GetFileIcon(FileName: string): TIcon;
var
FileInfo: SHFILEINFO;
begin
SHGetFileInfo(PChar(FileName), 0, FileInfo, SizeOf(FileInfo),
SHGFI_ICON or SHGFI_ICONLOCATION);
Result := TIcon.Create;
Result.Handle := FileInfo.hIcon;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.Icon := GetFileIcon('c:/Help.htm');
end;

--
Med Venlig Hilsen

Kasper (TSW)

www.tsw.dk - The SoftWare You Need!
www.udvikleren.dk - What Programmers Need!



Thomas P (19-03-2001)
Kommentar
Fra : Thomas P


Dato : 19-03-01 13:18

> Image1.Picture.Icon := GetFileIcon('c:/Help.htm');

Ikke for at blande mig på mærkelige måder, men plejer det ikke at være
sådan, at det der står efter "c:" skal være "\" i stedet for "/" ?

--
- Thomas [blomme@post.com] [http://www.FlowCode.f2s.com]


Kasper (TSW) <kasper@tsw.dk> skrev i en
nyhedsmeddelelse:994g7e$roc$1@news.inet.tele.dk...
> Hej Niels...
>
> >Men den her virker, og det er testet!
>
> Sorry, men det virker altså stadig ikke her
> Jeg bruger funktionen således her, er det ikke rigtigt? Der sker i hvert
> fald ikke noget (Image1 får ikke noget ikon). Hvad er der mon galt?
>
> function GetFileIcon(FileName: string): TIcon;
> var
> FileInfo: SHFILEINFO;
> begin
> SHGetFileInfo(PChar(FileName), 0, FileInfo, SizeOf(FileInfo),
> SHGFI_ICON or SHGFI_ICONLOCATION);
> Result := TIcon.Create;
> Result.Handle := FileInfo.hIcon;
> end;
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> Image1.Picture.Icon := GetFileIcon('c:/Help.htm');
> end;
>
> --
> Med Venlig Hilsen
>
> Kasper (TSW)
>
> www.tsw.dk - The SoftWare You Need!
> www.udvikleren.dk - What Programmers Need!
>
>



Kasper (TSW) (19-03-2001)
Kommentar
Fra : Kasper (TSW)


Dato : 19-03-01 15:41

Hej Thomas...

>men plejer det ikke at være sådan, at det der står efter "c:" skal være "\"
i stedet for "/" ?

Jo, det har du da så evigt ret i, og nu virker det sgu! Jeg fatter ikke
hvorfor jeg har indsat /, når jeg udemærket er klar over at det skal være et
\, men måske surfer jeg bare for meget

Tak Thomas, og _mange_ tak til Niels

--
Med Venlig Hilsen

Kasper (TSW)

www.tsw.dk - The SoftWare You Need!
www.udvikleren.dk - What Programmers Need!



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste