Verfasst: 27.08.2005 19:51
Ich habe mich für den Code von roherter entschieden.
Das Fenster bekommt jetzt aber nur noch den Focus, wenn ich das Fenster über das
Popup-Menü wieder anzeigen lasse, obwohl bei der linken Maustaste die gleiche Prozedur
aufgerufen wird.
Könnt ihr mir vielleicht sagen, wo der Fehler liegt?
Mfg DerProgger
Das Fenster bekommt jetzt aber nur noch den Focus, wenn ich das Fenster über das
Popup-Menü wieder anzeigen lasse, obwohl bei der linken Maustaste die gleiche Prozedur
aufgerufen wird.

Könnt ihr mir vielleicht sagen, wo der Fehler liegt?
Code: Alles auswählen
;- Konstanten
#WM_SIZE = 5
#SIZE_MINIMIZED = 1
;- Enumerations
Enumeration
#Window_0
EndEnumeration
Enumeration
#Text_0
#Button_0
EndEnumeration
;- Prozeduren
Procedure.b Open_Window_0()
If OpenWindow(#Window_0, 532, 460, 191, 71, #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Laufzeit")
If CreateGadgetList(WindowID())
TextGadget(#Text_0, 10, 10, 170, 20, "", #PB_Text_Center | #PB_Text_Border)
ButtonGadget(#Button_0, 30, 40, 130, 20, "Anzeige aktualisieren")
If CreatePopupMenu(0)
MenuItem(1, "Anzeigen")
MenuItem(2, "Beenden")
EndIf
EndIf
ProcedureReturn 1
EndIf
EndProcedure
Procedure ShowTrayIcon(a.b)
If a = 1
AddSysTrayIcon(0,WindowID(),UseImage(0))
HideWindow(0,1)
Else
RemoveSysTrayIcon(0)
HideWindow(0,0)
ActivateWindow()
EndIf
EndProcedure
Procedure.l WinCallback(WindowID,Message,wParam,lParam)
If Message = #WM_SIZE And wParam = #SIZE_MINIMIZED
ShowTrayIcon(1)
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Procedure.s Zeit()
lSec.l = ElapsedMilliseconds() / 1000
bHr.b = lSec / 3600: lSec % 3600
bMin.b = lSec / 60: lSec % 60
sHr.s = Str(bHr): sMin.s = Str(bMin): sSec.s = Str(lSec)
If Len(sHr) = 1: sHr = "0" + sHr: EndIf
If Len(sMin) = 1: sMin = "0" + sMin: EndIf
If Len(sSec) = 1: sSec = "0" + sSec: EndIf
sAusgabe = sHr + ":" + sMin + ":" + sSec
ProcedureReturn sAusgabe
EndProcedure
;- Haupt-Code
If Open_Window_0() = 0: End: EndIf
SetWindowCallback(@WinCallback())
LoadImage(0, "D:\CLOCK01.ICO")
Repeat
EventID.l = WaitWindowEvent()
Select EventID
Case #PB_EventGadget
If EventGadgetID() = #Button_0
If EventType() = #PB_EventType_LeftClick
SetGadgetText(#Text_0, Zeit())
EndIf
EndIf
Case #PB_Event_SysTray
Select EventType()
Case #PB_EventType_LeftClick: ShowTrayIcon(0)
Case #PB_EventType_RightClick: DisplayPopupMenu(0, WindowID())
EndSelect
Case #PB_Event_Menu
Select EventMenuID()
Case 1: ShowTrayIcon(0)
Case 2: EventID = #PB_EventCloseWindow
EndSelect
EndSelect
Until EventID = #PB_EventCloseWindow
FreeImage(0)
End