Entwickler-Ecke
Dateizugriff - Icon-Count Problem
Stefan-W - Do 15.01.04 19:26
Titel: Icon-Count Problem
Ich hab ein Prob mit dem Icon Count
Delphi-Quelltext
1: 2: 3: 4:
| var anzahl: Integer; ...
anzahl := ExtractIcon(hinstance,'D:\Icon\Test.dll',-1); |
geht nicht...
kommt immer ein Fehler das ein Parameter die untere Grenze verletzt...
kann mir bitte jemand helfen
Schon mal Danke im voraus
mfg Stefan
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt
KidPaddle - Do 15.01.04 19:59
Aus der Windows - Hilfe:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| HICON ExtractIcon(
HINSTANCE hInst, LPCTSTR lpszExeFileName, UINT nIconIndex ); |
UINT ist eine positiver Wert und kann daher nicht -1 annehmen, daher meldet der Complier diesen Fehler. Übergib einfach CARDINAL(-1) anstelle von nur -1 und es geht dann.
Gruß
KidPaddle
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt
Christian S. - Do 15.01.04 20:06
Hallo, Ihr beiden!
Bitte nutzt doch demnächst die Delphi- anstatt der Code-Tags. Das aktiviert das Syntax-Highlighting und macht den Quelltext sehr viel lesbarer.
MfG
Peter
Delete - Do 15.01.04 23:11
| KidPaddle hat folgendes geschrieben: |
| Übergib einfach CARDINAL(-1) anstelle von nur -1 und es geht dann. |
Hm, stellt sich die Frage was der Cast von -1 nach Cardinal mit der -1 anstellt. Warum nicht 0 oder eins übergeben je nach dem. 0 sollte das erste Icon sein.
So getestet:
Delphi-Quelltext
1:
| ShowMessage(IntToStr(Cardinal(-1))); |
Ergibt: 4294967295
Stefan-W - Fr 16.01.04 21:53
Jetzt gehts (mit dem 'Cardinal(-1)')
vielen Dank!!!
mfg Stefan
@Luckie mit 1 oder 0 bekommt man das Handle auf das jewielige Icon in der Datei. und nicht die Anzahl der enthaltenen Icons
KidPaddle - Sa 17.01.04 11:23
In der Windows - Hilfe steht das man -1 übergeben soll. Der C-Compliler wandelt das dann in $FFFFFFFF um, was der ausgegebenen Dezimalzahl entspricht, und genau das wird erreicht mit dem CARDINAL(-1).
Das wird übrigens bei vielen Funktionen, wie z. B. MessageBeep(CARDINAL(-1)), gefordert. Ich habe den tieferen Sinn noch nicht verstanden, auf der einen Seite die Typen mit UINT zu deklarieren aber -1 übergeben zu lassen, warum nicht gleich dann als INT deklarieren? Vieleicht wegen des größeren Bereiches?
Gruß
KidPaddle
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!