Seite 1 von 2

StartButton flackert?

Verfasst: 26.09.2005 21:43
von Blackskyliner
Hallo,
Ich habe ein Problem wenn ich mein Programm als Tray in die Leiste tue flackert mein Windumm Startknopf immer... (W2K)

Code: Alles auswählen

If IsIconic_(WindowID(#Window_Player)) = 1
        HideWindow(#Window_Player, 1)
        AddSysTrayIcon(#SysTrayIcon, WindowID(0), Image) 
      EndIf

Verfasst: 26.09.2005 21:50
von ts-soft
Evtl. ein Fehler in Deiner Ereignisschleife oder Windows-Fehler. Ohne Code kann man aber Wohl nicht viel zu sagen.

Verfasst: 26.09.2005 21:55
von Blackskyliner
also ich mache als eieignis event ein WindowEvent() und ein Sleep_() oder Delay() oder so...

Code: Alles auswählen

  If OpenWindow(#Window_Player, 270, 233, 360, 225, #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_WindowCentered | #PB_Window_MaximizeGadget, "MP3-Player")
    SetWindowCallback(@WCB())
    
    ;TrayIcon-Load
    Image = LoadIcon_(GetModuleHandle_(0), 1) 
    Repeat
      If EventID = #PB_Event_SizeWindow 
        ResizeGadget(#Playlist, 0, 0, WindowWidth(), WindowHeight() - 60) 
        For i=#LOAD To #QUIT 
          If IsGadget(i)
            ResizeGadget(i, -1, WindowHeight() - 45, -1, -1) 
          EndIf 
        Next 
        For i=#TIME_Total To #TIME_Current 
          If IsGadget(i)
            ResizeGadget(i, -1, WindowHeight() - 60, -1, -1) 
          EndIf 
        Next 
      EndIf 
      If IsIconic_(WindowID(#Window_Player)) = 1
        HideWindow(#Window_Player, 1)
        AddSysTrayIcon(#SysTrayIcon, WindowID(0), Image) 
      EndIf

      Current = GetAudioZState(#AUDIO_ID)
      
      ;Code von wegen Abspielen und adden der Lieder usw....
      
      EventID.l = WindowEvent()
      If IsAudioZPlaying(#AUDIO_ID) = #False
        Delay(10)
      EndIf 
      
      If IsAudioZPlaying(#AUDIO_ID)
        SetGadgetText(#TIME_Current, PositionAudioZTime(Current))
        Delay(10)
      EndIf 

    Until Quit=1
  EndIf
EDIT
ist bestimt das Delay()

EDIT2
Der StartButton von Windumm verhält sich wie ein Gadget der ständig aktualisiert wird.....

EDIT3:
Der schnipsel:

Code: Alles auswählen

If OpenWindow(0, 270, 233, 360, 225, #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_WindowCentered | #PB_Window_MaximizeGadget, "MP3-Player")
  Repeat
    If IsIconic_(WindowID(0)) = 1
      HideWindow(0, 1)
      AddSysTrayIcon(0, WindowID(0), Image) 
    EndIf
    If WindowEvent() = #PB_EventSysTray 
      Select EventType() 
        Case #PB_EventType_LeftDoubleClick 
          RemoveSysTrayIcon(0)
          HideWindow(0, 0)
          SetForegroundWindow_(WindowID(0))
          ActivateWindow()
          ;GadgetResize()
        Case #PB_EventType_RightClick
          DisplayPopupMenu(1,WindowID())  
      EndSelect 
    EndIf 
  Until WindowEvent() = #PB_Event_CloseWindow
EndIf
End
macht das allerdings nicht.... seltsam....

EDIT4:
Aber sobald ich da ein Icon über de Ressource lade flackert das wie verrückt...

Code: Alles auswählen

If OpenWindow(0, 270, 233, 360, 225, #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_WindowCentered | #PB_Window_MaximizeGadget, "MP3-Player")
  Image = LoadIcon_(GetModuleHandle_(0), 1) 
  Repeat
    If IsIconic_(WindowID(0)) = 1
      HideWindow(0, 1)
      AddSysTrayIcon(0, WindowID(0), Image) 
    EndIf
    If WindowEvent() = #PB_EventSysTray 
      Select EventType() 
        Case #PB_EventType_LeftDoubleClick 
          RemoveSysTrayIcon(0)
          HideWindow(0, 0)
          SetForegroundWindow_(WindowID(0))
          ActivateWindow()
          ;GadgetResize()
        Case #PB_EventType_RightClick
          DisplayPopupMenu(1,WindowID())  
      EndSelect 
    EndIf 
  Until WindowEvent() = #PB_Event_CloseWindow
EndIf
End

Verfasst: 26.09.2005 22:05
von ts-soft
Eine Ereignisbehandlung von #PB_Event_SysTray kann ich nicht entdecken, der Fehler könnte auch in Deinem WindowsCallback stecken.
Solltest Dir vielleicht doch die Mühe machen, einen abgespeckten lauffähigen Code zu erstellen, in dem der Fehler auftritt.

Verfasst: 26.09.2005 22:11
von Blackskyliner
Hab da jetzt mal geupdatet meinen Post...

Verfasst: 26.09.2005 22:22
von ts-soft
Hab jetzt mal Code 4 getestet, ohne Popup-Menue, das fehlt ja, der läuft problemlos

Verfasst: 26.09.2005 22:26
von Blackskyliner
Auf W2K oder XP?.... dasa reimt sich, wenn mans anders ausspricht...

Verfasst: 26.09.2005 22:37
von ts-soft
Blackskyliner hat geschrieben:Auf W2K oder XP?.... dasa reimt sich, wenn mans anders ausspricht...
Sollte zwar keinen Unterschied machen, dieser Code sollte auch auf Win95 mit IE 4.0 laufen, aber ich benutze WinXP SP2 Pro

Verfasst: 26.09.2005 22:39
von Blackskyliner
ja ber ich meine, dieses flackern tritt nur bei W2K auf, bei meim TestXP hab ich auch keine probleme und älter hab ich nichtsmehr am laufen *malwiederirgendwannvirtuellinstallier*

Verfasst: 26.09.2005 23:21
von Kaeru Gaman
wenn ich code 4 teste, sagt er mir beim minimieren, die image-ID wär Null.

wollte mal schauen, obs flackert, hab nämlich W2Kpro (SP4)

wenn du mir ein komplettes, lauffähiges snippet gibst, wos bei dir flackert, teste ichs gern mal...