Seite 1 von 2
Weitere Icons in die .EXE
Verfasst: 31.07.2016 14:30
von DarkSoul
Hallo Forum,
ich habe ein Problem, in eine EXE mehr als ein Icon zu machen. Irgendwas ist falsch....
Ich habe folgendes RC Script erstellt:
Code: Alles auswählen
#define folder_explorer 0
#define folder_explorer_wcl 1
#define folder_explorer_wclx 2
#define win_frame 3
#define LANG_NEUTRAL 0
#define SUBLANG_NEUTRAL 0
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
folder_explorer ICON "packager.ico"
folder_explorer_wcl ICON "wclfile.ico"
folder_explorer_wclx ICON "wclxfile.ico"
win_frame ICON "winlaunch.ico"
Dabei handelt es sich um Icons, die für die assoziierten Dateitypen verwendet werden sollen. (Seite mit Knickecke und stark vereinfachter Designer-Ausführung des Programmicons)
Jedoch überschreibt es die Einstellung für das in den Compilereinstellungen gewählte Icon. Stattdessen wird "packager.ico" verwendet.
Und kann ich vorgeben, welches Icon genommen werden soll, wenn der User über "Öffnen mit..." mein Prog wählt? Das Programmicon selbst, das er standardmäßig nimmt, ist dafür total ungeeignet (zu bombig und bunt, um zig mal nebeneinander gezeigt zu werden).
Alle Icons sind je für 16, 32 und 48 Pixel erstellt.
Wenn ich das Programmicon da nochmal reinschreibe, ist es ja doppelt drin. Oder muss ich das Icon in den Compilereinstellungen abwählen, wenn ich das Script verwende?
Bin ratlos.

Re: Weitere Icons in die .EXE
Verfasst: 31.07.2016 15:52
von ts-soft
Ich kann zwar gerade nicht testen, da ich linux nutze aber so in etwa kommt es hin:
Nr 0 oder 1 werden durch das Icon in der IDE überschrieben, nimm also höhere Nummern, also z.B. 100, 101 usw.
Als RC-Script benötigt die IDE absolute Pfade, mit doppelten Backslash:
Code: Alles auswählen
#define folder_explorer_wcl 100
folder_explorer_wcl ICON "c:\\bla\\wclfile.ico"
Re: Weitere Icons in die .EXE
Verfasst: 31.07.2016 16:43
von DarkSoul
Hat geklappt (sogar mit den relativen Pfaden), danke!
Habe meine Zusatzicons ab 10 eingetragen. Ist das so ok oder noch höher?
Re: Weitere Icons in die .EXE
Verfasst: 31.07.2016 18:16
von ts-soft
DarkSoul hat geschrieben:Hat geklappt (sogar mit den relativen Pfaden)
Dann hat Freak wohl was geändert, früher klappte das nicht mit relativen Pfaden, jedenfalls nicht in der IDE.
DarkSoul hat geschrieben:Habe meine Zusatzicons ab 10 eingetragen. Ist das so ok oder noch höher?
Ist eigentlich egal, solange die sich nicht ins Gehege kommen und unter 32767 bleiben. Ich bevorzuge 3 oder 4 stellige Nummern.
Re: Weitere Icons in die .EXE
Verfasst: 31.07.2016 21:03
von DarkSoul
Absolute Pfade machen an der Stelle für mich keinen Sinn. Ich wäre gar nicht auf die Idee gekommen, es so zu machen.
Funktioniert das denn zuverlässig? Nicht, dass Windows denkt, da sind keine weiteren Icons, weil Platz 2-99 ja NULL oder so wäre.
So nach dem Motto: Liste Icon für Icon, bis du auf NULL triffst.

Re: Weitere Icons in die .EXE
Verfasst: 31.07.2016 21:21
von ts-soft
DarkSoul hat geschrieben:Absolute Pfade machen an der Stelle für mich keinen Sinn. Ich wäre gar nicht auf die Idee gekommen, es so zu machen.
Der relative Path für PORC.exe muss ja stimmen und den verändert die PBCOMPILER.exe ja häufiger. Absolute Pfade machen schon Sinn,
wenn Du bedenkst, der dient ja nur das ICON zu finden und hat keinen Einfluss auf die Resource.
Die IDs der Resourcen sind Windows egal, solange sie zwischen 0 und 32767 liegen. Anders als bei PB-IDs, die immer mit 0 anfangen sollten
und dann fortlaufend, je ObjectTyp, da dort ein Array definiert wird, wobei jedes fehlende Glied mit seiner Structure mit einfließt.
Re: Weitere Icons in die .EXE
Verfasst: 01.08.2016 10:17
von DarkSoul
Wah? Bei den PB-IDs sollte man lückenlos arbeiten
Ausgerechnet da habe ich nicht damit gerechnet und fröhlich große Lücken eingebaut. Da fange ich immer erst ab 1024 an zu belegen. Und bei GUI pro Fenster in 256-er Blöcken .
Macht das viel aus?

Re: Weitere Icons in die .EXE
Verfasst: 01.08.2016 10:27
von RSBasic
Wenn du beispielsweise folgendes definierst:
Code: Alles auswählen
ButtonGadget(0, ...)
ButtonGadget(1000, ...)
ButtonGadget(2000, ...)
ButtonGadget(3000, ...)
ButtonGadget(4000, ...)
ButtonGadget(5000, ...)
Dann werden nicht 6 IDs adressiert, sondern insgesamt 5001 IDs.
Kleiner Nachteil: Der Arbeitsspeicherverbrauch deiner Anwendung ist etwas höher.
\\Edit:
In der PB-Hilfe steht es auch:
http://www.purebasic.com/german/documentation/reference/purebasic_objects.html hat geschrieben:
I. Indexierte Nummerierung
Der statische bzw. indexierte Weg ermöglicht Ihnen, auf ein Objekt durch einen vordefinierten numerischen Wert zu verweisen. Die erste verfügbare Index-Zahl ist 0, weitere Indizes werden anschließend fortlaufend (sequentiell) zugeordnet. Dies bedeutet, wenn Sie die Index-Nummer 0 und dann die Nummer 1000 verwenden, werden 1001 Indizes reserviert und 999 (von 1 bis 999) bleiben unbenutzt, welches keine effiziente Art und Weise zur Benutzung von indexierten Objekten darstellt. Wenn Sie eine flexiblere Methode brauchen, verwenden Sie die dynamische Art zum Zuordnen von Objekten, wie im Abschnitt II. beschrieben.
Re: Weitere Icons in die .EXE
Verfasst: 01.08.2016 10:43
von ts-soft
Außerdem ist es gar nicht nötig Sprünge zwischen den IDs zu machen, nutze einfach benannte Enumerationen (siehe Hilfe / Enumeration).
Re: Weitere Icons in die .EXE
Verfasst: 01.08.2016 10:46
von RSBasic
Oder #PB_Any