Seite 1 von 1

SysTray, blöde Icons, blödes Fenster & Task blöd

Verfasst: 18.05.2007 15:30
von Xaby
Ich weiß, ich hab's in der Hilfe gelesen.
LoadImage() und Icons gehen nur. Aber wieso? Und wie kann ich onTheFly ein Icon im Speicher erstellen, so dass ich das Icon im Programm generieren kann.
So wie es der Taskmanager macht, der kann doch auch den Status anzeigen oder haben die vorgeränderte Icons eingebaut?
Hab auch schon mal die Spiele aus dem Try irgendwo im Forum hier gesehen. Die konnten ja Pong und Snake auch irgendwie darstellen.

Genauso würde mich interessieren, wie ich mein Programm so starten kann, dass ich kein Fenster in der Taskleiste sehe.
Ist es als Child zu einem TryIcon oder so möglich?

Und was passiert, wenn ich das Fenster schließe? Muss ich mir alle wichtigen Fenstereinstellungen etc. extra im Speicher merken, da das Fenster weg ist, wenn ich es schließe. Oder kann ich es unsichtbar machen? Was ist die vernünftigste Vorgehensweise?

Code: Alles auswählen

For i=0 To 2
CreateImage(i,32,32) ; Welche Größe sollte es haben?
StartDrawing(ImageOutput(i))
Box(0,0,32,32,RGB(i*70,250-20*i,120-30*i))
DrawText(5,5,Str(i),0,RGB(i*70,250-20*i,120-30*i))
StopDrawing()
Next


If OpenWindow(0, 100, 150, 300, 100, "PureBasic - SysTray Example", #PB_Window_SystemMenu)
   
  
  AddSysTrayIcon(1, WindowID(0), ImageID(0))
  AddSysTrayIcon(2, WindowID(0), ImageID(1))
  SysTrayIconToolTip(1, "Icon 1")
  SysTrayIconToolTip(2, "Icon 2")
  
  Repeat
    Event = WaitWindowEvent()
    
    If Event = #PB_Event_SysTray
      If EventType() = #PB_EventType_LeftDoubleClick
        MessageRequester("SysTray", "Left DoubleClick on SysTrayIcon "+Str(EventGadget()),0)
        
        ChangeSysTrayIcon (EventGadget(), ImageID(2))
        SysTrayIconToolTip(EventGadget(), "Changed !")
      EndIf
      
    EndIf
  Until Event = #PB_Event_CloseWindow
  
EndIf

Verfasst: 18.05.2007 15:43
von Xaby
Okay, ich vergess immer wieder das CodeArchive.

CreateIcons.pb

Scheint cool zu sein. Das kann Icons machen. :allright:

Verfasst: 18.05.2007 15:53
von ts-soft
Der Taskmanager lädt die Icon-Resource, der erstellt nichts on the fly :mrgreen:
Man kann nicht nur die Resourcen des eigenen Programmes laden, sondern
auch die eines x-beliebigen Programmes oder DLL. Was meinste wo die
ToolbarIcons in PB herkommen.

Fenster vor der Taskbar verstecken werde ich hier auch nicht zum 45x
posten, lerne lieber die Suche zu nutzen, hab keine Lust dauernd meine
Beiträge für andere rauszusuchen, weil diese oft zu Faul sind :freak:

Verfasst: 18.05.2007 16:30
von Xaby
Hab doch schon geschrieben, das ich was im CodeArchive gefunden habe, das macht genau das, was ich wollte.

:allright:

Verfasst: 18.05.2007 16:53
von ts-soft
Xaby hat geschrieben:Hab doch schon geschrieben, das ich was im CodeArchive gefunden habe, das macht genau das, was ich wollte.

:allright:
Macht aber nicht das was der Taskmanager macht, wie Du oben beschrieben
hast :mrgreen:
LoadLibrary_ und LoadIcon_ API und schon haste das Icon. Die Nummer 1
ist normallerweise das Applikationsicon.

Verfasst: 18.05.2007 17:11
von HeX0R
Hier gibts übrigens noch ein Beispiel, wie man ein Icon im Tray scrollen kann.
Ist zwar noch für PB3.94 gemacht, aber sollte einfach anzupassen sein.