Programmicon
Programmicon
Hallo!
Wie kann ich meinem Programm ein Icon verpassen? Ich meine das Icon links oben in der Fensterecke und dass im Explorer angezeigt wird, wenn die EXE angezeigt wird.
Habe im DataSection Bereich den Eintrag ICON: IncludeBinary "d:\meinpfad\favicon.ico" probiert, hat aber keine Wirkung und bringt auch keinen Fehler beim Compilieren.
Ist das falsch oder hat das Icon vielleicht nicht das richtige Format? Es handelt sich um ein "echtes" favicon was man in der Webprogrammierung nutzt.
Danke euch
Wie kann ich meinem Programm ein Icon verpassen? Ich meine das Icon links oben in der Fensterecke und dass im Explorer angezeigt wird, wenn die EXE angezeigt wird.
Habe im DataSection Bereich den Eintrag ICON: IncludeBinary "d:\meinpfad\favicon.ico" probiert, hat aber keine Wirkung und bringt auch keinen Fehler beim Compilieren.
Ist das falsch oder hat das Icon vielleicht nicht das richtige Format? Es handelt sich um ein "echtes" favicon was man in der Webprogrammierung nutzt.
Danke euch
Re: Programmicon
Unter dem Menü "Compiler->Compiler Options" einfach "Use Icon" anklicken und ein .ICO Bildchen auswählen (32x32 "üblicherweise").
Frohes Fest!
Frohes Fest!
Re: Programmicon
Klasse!
Vielen Dank und allen frohes Fest.
Vielen Dank und allen frohes Fest.
Re: Programmicon
Hallo
und wie mache ich das unter Linux, bei mir wird das Icon leider nicht angezeigt.
(wen ich den gleichen Code in Windows compiliere wird das Icon angezeigt)
Walter
und wie mache ich das unter Linux, bei mir wird das Icon leider nicht angezeigt.
(wen ich den gleichen Code in Windows compiliere wird das Icon angezeigt)
Walter
Lesen bei schlechten Lichtverhältnissen ist nicht schlecht für die Augen, sondern trainiert sie sogar.
Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Programmicon
Das wird auch nicht unterstützt. Unter Linux werden Icons auch unter den meisten Themes nicht unterstützt,Waldixxl hat geschrieben:Hallo
und wie mache ich das unter Linux, bei mir wird das Icon leider nicht angezeigt.
(wen ich den gleichen Code in Windows compiliere wird das Icon angezeigt)
Walter
und wenn, dann befinden sich die Icons nicht in der Exe, sondern in dem zuständigem Systemordner für
shared icons.
Die Möglichkeit ein Icons zur Exe hinzuzufügen besteht aber dennoch, hierzu mal ein
Beispielcode aus dem engl. Forum, Autor und link sind mir leider nicht bekannt, hier
mußt Du wohl selber noch mal suchen.
Code: Alles auswählen
;** Created by Icon Creator
;** Tested with Ubuntu 9.10 (32-bit)
;** www.RE-Applications.be
Structure PixData
magic.l
length.l
pixdata_type.l
rowstride.l
width.l
height.l
pixel_data.l
EndStructure
ImportC ""
gtk_window_set_icon(a.l, b.l)
gdk_pixbuf_from_pixdata(a.l, b.l, c.l)
EndImport
Procedure SetWindowIcon(iWindow.i)
Protected mIcon.PixData
mIcon\magic = $47646B50
mIcon\length = 749
mIcon\pixdata_type = $2010002
mIcon\rowstride = 64
mIcon\width = 16
mIcon\height = 16
mIcon\pixel_data = ?WindowIcon
lPixbuf.l = gdk_pixbuf_from_pixdata(mIcon, #False, lError.l)
gtk_window_set_icon(WindowID(iWindow), lPixbuf)
EndProcedure
#frmTest = 1000
If OpenWindow(#frmTest, 50, 50, 150, 50, "Icon Test", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
SetWindowIcon(#frmTest)
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
End
DataSection
WindowIcon:
Data.a 134,255,255,255,0,4,37,37,39,162,36,36,37,249,40,40,40,240,49,49,59,115,139,255,255,255,0,6,39,39,39,72
Data.a 36,36,36,254,36,36,36,255,40,40,40,255,50,50,50,255,37,37,42,95,138,255,255,255,0,6,39,39,42,123,56,56
Data.a 57,255,42,44,45,255,60,61,62,255,45,45,46,255,36,36,36,183,138,255,255,255,0,6,45,45,53,103,86,82,74,255
Data.a 216,213,199,255,187,185,177,255,65,65,65,255,36,36,36,194,138,255,255,255,0,7,39,39,45,77,207,178,47,255,252,221
Data.a 47,255,247,215,48,255,131,112,52,255,36,38,47,209,37,37,39,8,137,255,255,255,0,7,41,42,46,97,190,174,111,255
Data.a 225,194,70,255,234,208,122,255,127,125,121,255,49,49,52,255,37,37,39,83,136,255,255,255,0,9,36,36,36,39,110,110
Data.a 111,224,243,244,246,255,230,229,231,255,252,254,255,255,194,194,193,255,45,45,45,255,36,36,36,214,38,38,39,27,134,255
Data.a 255,255,0,11,37,37,39,2,36,36,36,189,177,177,177,255,255,255,255,255,252,252,253,255,252,252,252,255,241,241,240,255
Data.a 66,66,67,255,36,36,36,255,37,37,39,180,38,38,39,1,133,255,255,255,0,4,36,36,36,56,86,86,87,252,243,243
Data.a 241,255,255,255,254,255,130,253,253,252,255,5,255,255,254,255,195,195,194,255,56,56,56,255,39,39,39,254,37,37,39,65
Data.a 133,255,255,255,0,6,36,36,36,151,165,165,165,255,255,255,255,255,249,249,247,255,252,252,251,255,253,253,252,255,130,255
Data.a 255,254,255,3,81,81,81,255,36,36,37,255,36,36,39,131,132,255,255,255,0,12,39,37,41,28,50,49,48,240,191,191
Data.a 194,255,255,255,255,255,247,247,246,255,252,252,250,255,253,253,252,255,255,255,253,255,255,255,255,255,93,93,94,255,36,36
Data.a 36,255,36,36,39,148,131,255,255,255,0,13,197,155,46,19,180,140,46,98,208,167,40,252,164,152,112,255,230,232,239,255
Data.a 253,253,252,255,252,252,250,255,253,253,252,255,255,255,255,255,253,207,83,255,96,85,45,255,36,36,39,255,109,96,45,154
Data.a 131,255,255,255,0,14,216,171,50,176,248,199,45,255,255,207,46,255,201,161,36,255,83,81,75,255,212,213,216,255,255,255
Data.a 255,255,255,255,254,255,250,253,255,255,246,190,54,255,226,164,39,255,201,145,40,255,245,180,41,236,243,176,44,84,130,255
Data.a 255,255,0,6,221,172,46,180,252,203,46,255,248,197,45,255,254,199,42,255,156,130,51,255,200,202,207,255,130,255,255,255
Data.a 255,6,177,179,186,255,188,141,51,255,255,188,40,255,255,188,41,255,254,188,41,255,237,171,44,216,130,255,255,255,0,14
Data.a 210,159,44,208,234,181,45,255,243,189,45,255,254,199,45,255,235,179,47,255,124,114,95,255,113,114,118,254,90,90,91,254
Data.a 39,39,43,255,136,101,38,255,255,190,42,255,246,179,42,255,203,139,42,191,182,118,48,69,130,255,255,255,0,6,167,121
Data.a 42,20,149,109,41,74,141,106,41,133,167,121,42,206,142,105,40,225,53,46,37,57,130,36,36,36,8,5,36,36,40,13
Data.a 100,78,42,125,186,126,40,247,159,105,41,146,129,90,41,2,130,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0
Data.a 0,0,0,0,0,0,0,0,208,142,175,8,0,0
EndDataSection
es hilft Dir erstmal (die Einsicht der Überflüssigkeit eines solchen Icons unter Linux sollte da auch reichen

Gruß
Thomas
// edit:
hier noch ein Link zur korrespondierenden API:
http://developer.gnome.org/gdk-pixbuf/s ... -data.html
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Programmicon
Hallo ts-soft
erst einmal Danke für Deine Hilfe
Der Code läuft auf 10.04 und auf Mint 12 jeweils 32 Bit einwandfrei.
Walter
erst einmal Danke für Deine Hilfe
Der Code läuft auf 10.04 und auf Mint 12 jeweils 32 Bit einwandfrei.
Walter
Lesen bei schlechten Lichtverhältnissen ist nicht schlecht für die Augen, sondern trainiert sie sogar.
Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Programmicon
Ich hoffe mal, Du findest auch den notwendigen Icon Creator, weil ich möchte den
ohne Erlaubnis des Autors, vor allem da der mir im moment garnicht bekannt ist, nicht
hier verlinken.
Hab es inzwischen unter XUbuntu x64 testen können, läuft also auch unter 64-Bit.
Man sollte die Structure aber besser anpassen:
Vielleicht steht das ja mal nativ in PB zur Verfügung, ich meine mich zu erinnern, Freak hätte das
mal geplant.
Gruß
Thomas
ohne Erlaubnis des Autors, vor allem da der mir im moment garnicht bekannt ist, nicht
hier verlinken.
Hab es inzwischen unter XUbuntu x64 testen können, läuft also auch unter 64-Bit.
Man sollte die Structure aber besser anpassen:
Code: Alles auswählen
Structure PixData
magic.l
length.l
pixdata_type.l
rowstride.l
width.l
height.l
*pixel_data
EndStructure
mal geplant.
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Programmicon
Hallo
Ich habe noch ein wenig im Netz gesucht und bin auf folgende Lösung gekommen.
gefällt mir viel besser
man muss nur darauf achten das die Datei gefunden wird. (beim testen das Bild, wenn nötig,in das tmp-Verzeichnis Kopieren)
Walter
Ich habe noch ein wenig im Netz gesucht und bin auf folgende Lösung gekommen.
Code: Alles auswählen
ImportC ""
gtk_window_set_icon(a.l, b.l)
gdk_pixbuf_new_from_file( a.s,b.l)
EndImport
Procedure SetWindowIcon(iWindow.i, Datei$)
lPixbuf.l = gdk_pixbuf_new_from_file(Datei$, NULL)
gtk_window_set_icon(WindowID(iWindow), lPixbuf)
EndProcedure
#frmTest = 0
If OpenWindow(#frmTest, 50, 50, 150, 50, "Icon Test", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
SetWindowIcon(#frmTest, GetPathPart(ProgramFilename())+"Bild.png")
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
End

man muss nur darauf achten das die Datei gefunden wird. (beim testen das Bild, wenn nötig,in das tmp-Verzeichnis Kopieren)
Walter
Lesen bei schlechten Lichtverhältnissen ist nicht schlecht für die Augen, sondern trainiert sie sogar.
Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Programmicon

Macht was es soll und ist unkompliziert, gefällt mir!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Programmicon
Es geht sogar noch kürzer...
Dieses Beispiel hatte ich bereits in einer Crossplatform-Variante für Windows
und Linux im englischen Forum gezeigt...:
http://www.purebasic.fr/english/viewtop ... 07&start=9

Code: Alles auswählen
IconPath.S = #PB_Compiler_Home + "examples/sources/Data/CdPlayer.ico"
OpenWindow(0, 0, 0, 300, 100, "<-- Changed titlebar icon", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
gtk_window_set_icon_from_file_(WindowID(0), IconPath, IconError)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
und Linux im englischen Forum gezeigt...:

http://www.purebasic.fr/english/viewtop ... 07&start=9