StartButton flackert?

Anfängerfragen zum Programmieren mit PureBasic.
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

Beitrag von ts-soft »

Kaeru Gaman hat geschrieben: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...
Image ID ist nur 0, wenn Du es in der IDE testet. Desweiteren ist ein Icon für die Exe erforderlich
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
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

Beitrag von ts-soft »

Hab Code 4 mal umgestellt, mit funktionierender Ereignisbehandlung:

Code: Alles auswählen

Global Image
Procedure WinCallback(WindowID, Message, wParam, lParam) 
  Result.l = #PB_ProcessPureBasicEvents 
    If Message = #WM_SIZE 
      Select wParam 
        Case #SIZE_MINIMIZED: 
          HideWindow(0, 1)
          AddSysTrayIcon(0, WindowID(0), Image)
      EndSelect 
    EndIf 
  ProcedureReturn Result    
EndProcedure 

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)
  SetWindowCallback(@WinCallback())
  Repeat
    Event = WaitWindowEvent()
    Select Event 
      Case #PB_Event_SysTray
        Select EventType()
          Case #PB_EventType_LeftDoubleClick
            RemoveSysTrayIcon(0)
            HideWindow(0, 0)
            SetForegroundWindow_(WindowID(0))
            ActivateWindow()
            ;GadgetResize()          
          Case #PB_EventType_RightClick
            DisplayPopupMenu(1,WindowID())
        EndSelect
    EndSelect
  Until Event = #PB_Event_CloseWindow
EndIf
End
Mußte nur noch in Dein Programm einpassen
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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ts-soft hat geschrieben:Image ID ist nur 0, wenn Du es in der IDE testet. Desweiteren ist ein Icon für die Exe erforderlich
...hätt ich auch selber drauf kommen können, aber war ehrlich gesagt zu faul...

also

bei mir flackert der startbutton auch.
außerdem scheint irgendwo ne ziemliche belastung aufgetreten zu sein,
einer der internen lüfter hat an drehzahlen zugelegt...
könnte der von der graka gewesen sein, die ist nämlich kurz darauf ausgestiegen (blackscreen)

------------------------------------------------------------------

so, jetzt mal das getestet, was von ts umgestellt wurde.

das flackern ist weg.

der lüfter scheint auch ein wenig nervöser zu werden,
aber bis jetzt ist mein screen noch da... XD

------------------------------------------------------------------


noch etwas:
das systray-icon erwartet einen doppelklick zur reaktivierung,
damit erwisch ich das nebenstehende icon gleich mit.

entweder mit einfachem click aktivieren, oder das icon im tray permanent machen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Beitrag von Blackskyliner »

Dankeschön funktioniert nun einwandfrei, es lag bei mir auch hauptsächlich an der If Iconic_() in der Reapeatschleife...
Keine meiner Antworten ist endgültig, es kann passieren, dass ich den so eben geposteten Beitrag noch mehrmals ändere, um Doppelposts zu umgehen.
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
Antworten