Benutze Icon und Systray

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
stab
Beiträge: 96
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

Benutze Icon und Systray

Beitrag von stab »

Hallo,

überall werden Resourcen eingespart, sind sie auch noch so gering.
Ich schließe mich mal an, bevor die EU hier einen Riegel vorschiebt.

Wenn ich ein ICON für das Fenster einbinde, benutze ich die Compiler Option: "Benutze Icon:"
Damit vergrößert sich das Executable verständlicherweise um die Größe des Icons.

Benutze ich Systray-Funktionen mit dem gleichen Icon, binde ich es ein zweites Mal mit DataSection ein.
Damit habe ich das gleiche Icon zweimal eingebunden, also vergrößert sich das Executable zweimal um die Größe des Icons.

Ist das richtig oder kann ich das einmal eingebundene Icon für beide Zwecke nutzen?
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Benutze Icon und Systray

Beitrag von RSBasic »

Du kannst natürlich auch das selbe Icon, welches du in den Compiler-Optionen eingebunden hast, für beide nutzen, aber dafür wird ein bisschen WinAPI benötigt. Falls es plattformunabhängig sein soll, dann musst du wohl zweimal das Icon einbinden.
Falls die WinAPI-Verwendung kein Problem sein sollte:

Code: Alles auswählen

EnableExplicit

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  AddSysTrayIcon(1, WindowID(0), GetClassLongPtr_(WindowID(0), #GCL_HICON))
  SysTrayIconToolTip(1, "My Application")
  
  Repeat
  Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Bevor du den Beispielcode testest, wähle zuerst ein Icon in den Compiler-Optionen aus.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
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: Benutze Icon und Systray

Beitrag von ts-soft »

Der funktioniert bei mir nicht, also noch einen:

Code: Alles auswählen

EnableExplicit

Define icon
icon = LoadIcon_(GetModuleHandle_(0), 1)

OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "")
AddSysTrayIcon(1, WindowID(0), icon)
SysTrayIconToolTip(1, "My Application")

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Break
  EndSelect
ForEver
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.
Bild
Benutzeravatar
stab
Beiträge: 96
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

Re: Benutze Icon und Systray

Beitrag von stab »

Danke,

bei mir funktionieren beide Codes.

PB 5.22
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Benutzeravatar
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: Benutze Icon und Systray

Beitrag von ts-soft »

Bei mir jetzt auch :oops: :wink:
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.
Bild
Antworten