Icon gezielt aus ico-Datei laden

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Icon gezielt aus ico-Datei laden

Beitrag von Werner_Bayern »

Servus,

eine ico kann ja mehrere Versionen eines Icons, oder auch mehrere versch. Icons enthalten. Wie komme ich gezielt daran? Mit XbpIcon() geht das ja offensichtlich nicht?
Hab auch schon versucht, das über die Größe zu machen, er lädt mir aber trotzdem das erste Icon mit XbpIcon().
Icon1.PNG
Icon1.PNG (4.56 KiB) 3219 mal betrachtet

Code: Alles auswählen

soIcon_Ansprech := XbpIcon():new():create()
soIcon_Ansprech:load(NIL, 123, 31, 31)
lädt das 1. mit der hohen Auflösung und Farbe.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Icon gezielt aus ico-Datei laden

Beitrag von AUGE_OHR »

Werner_Bayern hat geschrieben:eine ico kann ja mehrere Versionen eines Icons, oder auch mehrere versch. Icons enthalten. Wie komme ich gezielt daran? Mit XbpIcon() geht das ja offensichtlich nicht?
Hab auch schon versucht, das über die Größe zu machen, er lädt mir aber trotzdem das erste Icon mit XbpIcon().
ich würde mal sagen das 2nd Icon ist "invalid" ...

XbpIcon ist als Class im Source in c:\ALASKA\XPPW32\Source\SYS\xbparts.prg
wenn du dir die METHOD XbpIcon:Load( cDLL, nId, nWidth, nHeight ) ansiehst

Code: Alles auswählen

   ::Handle := LoadImageA( hModule,       ;
                           nId,            ;
                           IMAGE_ICON,     ;
                           nWidth,nHeight, ;
                           LR_DEFAULTCOLOR )
wird die Grösse als Parameter übergeben und "müsste" wirken "wenn" du ein Standard Icon Format hast.
gruss by OHR
Jimmy
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Icon gezielt aus ico-Datei laden

Beitrag von Werner_Bayern »

Servus Jimmy,

danke, dann geht es wohl nicht, es gibt ja ausser der Größe keinen Parameter für das gezielte Laden.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Icon gezielt aus ico-Datei laden

Beitrag von Tom »

Hallo, Werner.

Wenn eine ICO-Datei ein Icon in verschiedenen Größen enthält, wird bei Größenangaben, zu denen es keine Entsprechung gibt, die nächstkleinere Version geladen. Gibt es also ein Icon als 16x16, 32x32, 64x64 und 256x256 Pixel-Versionen, und Du lädst 31x31, greift die Methode die Version 16x16. Zeigst Du es aber in 31x31 an, wird unglücklich skaliert.

Das funktioniert bei mir sauber, sowohl aus Ressourcendateien, als auch beim direkten Laden aus DLLs (numerischer Pointer).

Was nach meiner Erfahrung allerdings nicht sauber funktioniert, das ist die GetBitmap()-Methode auf XbpIcon. Die liefert zuweilen seltsame Ergebnisse.
Herzlich,
Tom
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Icon gezielt aus ico-Datei laden

Beitrag von Werner_Bayern »

Servus Tom,

siehe aber mein Beispiel, es wird das falsche Icon geladen.
es grüßt

Werner

<when the music is over, turn off the lights!>
Antworten