Autor Beitrag
Viper
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 88



BeitragVerfasst: Mi 28.07.04 16:52 
Hallo.

Mit Hilfe der ExtractIconEx Funktion lade ich alle Icons die in einer DLL oder EXE vorhanden sind. Jetzt habe ich aber das Problem, dass ich nie die Icons in Originalgröße erhalte, sondern einmal in 32x32 und in 16x16. Bei einigen Icons sieht man dann, dass sie einfach vergrößert, bzw. verkleinert wurden.
Jetzt ist meine Frage, ob es eine Möglichkeit gibt, an die Originalgröße der Icons heran zu kommen?

_________________
"Der Sinussatz ist nur was für Leute, die Teichbesitzer mit Insel und Baum sind. Alle anderen können ihn vergessen" (Mein Mathe-Prof.)
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Do 29.07.04 10:44 

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
Viper Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 88



BeitragVerfasst: Do 29.07.04 11:40 
Ja, das habe ich schon min. 10x gelesen. Ich glaube du hast mich nicht ganz verstanden. Ich habe es auch etwas umständlich formuliert, also versuch ich es nochmal:
Erstmal die Funktion:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
UINT ExtractIconEx(
    LPCTSTR lpszFile,
    int nIconIndex,
    HICON *phiconLarge,
    HICON *phiconSmall,
    UINT nIcons
);

Als erstes lese ich mit der ExtractIconEx - Funktion aus, wieviele Icons sich insgesamt in der Datei befinden. Dann lade ich die Icons mit der Funktion, wobei ich beide Arrays, phiconLarge und phiconSmall, füllen lasse. Wenn ich die beiden Arrays auslese und anzeigen lasse, ist es aber so, dass in beiden Arrays alle Icons sind. Ich bekomme aber nicht die Originalgröße der Icons, sondern die Funktion setzt alle Icons im phiconLarge Array auf 32x32 (egal ob es die Originalgröße der Icons war, oder nicht) und im phiconSmall Array auf 16x16. Das führt dazu, dass besonders bei Icons, die einfach vergrößert wurden, das Ergebnis aufgedunsen aussieht. Ich möchte es irgendwie schaffen, dass die Icons nicht einfach von der Funtion vergrößert oder verkleinert werden.

_________________
"Der Sinussatz ist nur was für Leute, die Teichbesitzer mit Insel und Baum sind. Alle anderen können ihn vergessen" (Mein Mathe-Prof.)
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Do 29.07.04 19:03 
sind die Icons in einer ImageList? auch da musst du die Size angeben, ansonsten wird imho 32x32 genommen, und dann werdn die Bilder etwas "unscharf".
grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 29.07.04 23:06 
OT: Wie geht das mit ExtractIconEx, wenn ich 256-Farb-Icons (oder mehr Farben) haben will? Krieg über die Delphi-TICon-Kompo immer nur 16 Farben raus ... Source von mir folgt, wenn nötig...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Viper Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 88



BeitragVerfasst: Fr 30.07.04 10:34 
@BenBe: genau die gleichen Probleme habe ich auch, aber ich habe bei [url]www.torry.net[/url] einen Anwendung mit Source gefunden, die alle Icons lädt (egal wieviel Farben und welche Auflösung) und dann erstmal als Bitmap darstellt. Ich werde mir die wichtigen Units daraus jetzt für mein Programm umschreiben.
Hier der direkte Downloadlink: www.torry.net/sample...res/readiconlist.zip
Dann gibt es noch eine Komponente dort, die TIcon32 heißt. Ich habe es noch nicht getestet, aber so wie es aussieht kann die auch 256-Farb-Icons speichern.

@MSCH: natürlich habe ich die in einer ImageList. Aber ich habe eine ImageList für große und kleine Icons, nur ich bekomme bei ExtractIcon nie die richtige Größe der Icons geliefert.

_________________
"Der Sinussatz ist nur was für Leute, die Teichbesitzer mit Insel und Baum sind. Alle anderen können ihn vergessen" (Mein Mathe-Prof.)
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 30.07.04 21:59 
Werd mir die beiden mal angucken. Problem ist, dass ich das Icon aus ner (mit Shit AsPack gecrypteten) EXE (IrfanView) auslesen will und Resourcen-Editoren da nicht weit kommen...
Und mein Icon-Extracter hatte auch nicht die erwünschten Erfolge (wie gesagt: nur 16 Farben mit VCL ...)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.