Seite 1 von 3

Minimieren frage

Verfasst: 26.02.2009 22:19
von X360 Andy
Diese frage beschäftigt mich schon länger, und bis jetzt hab ich noch keine Lösung darauf gefunden. :mrgreen:

Also....


Code: Alles auswählen

If EventID = #PB_Event_CloseWindow
   Quit = 1
   Debug "Geschlossen"
EndIf
Kann ich sowas auch mit dem minimieren machen ?

Das also etwas im Fenster ausgelöst wird wenn auf den minimieren Button drücke.

Z.b
Hidewindow und dann ein SystrayIcon anlegen.

Gibts dafür eine Lösung ?
Hab zumindest beim suchen nicht das gefunden was mir helfen würde, nur wie ich das Fenster durch eine Aktion minimieren kann.


Mfg

Verfasst: 26.02.2009 22:24
von Kaeru Gaman
Autocomplete hat geschrieben:#PB_Event_MinimizeWindow
:?:

Verfasst: 26.02.2009 22:28
von X360 Andy
Error Meldung meint hat geschrieben: Constant not Found #PB_Event_MinimizeWindow
:!:

Liegts an PB4.20 ? :idea:

Verfasst: 26.02.2009 22:36
von Kaeru Gaman
schätzungsweise. hab nicht auf deine sig geachtet.
Debug #PB_Event_MinimizeWindow hat geschrieben:13107
... probier mal, ob dir

Code: Alles auswählen

#PB_Event_MinimizeWindow = 13107
das gewünschte Ergebnis liefert...

Verfasst: 26.02.2009 22:41
von X360 Andy
Nope zumindest

Code: Alles auswählen


If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
Repeat
EventID=WaitWindowEvent()
Until EventID = 13107
EndIf

geht das hier nicht.

Trotzdem danke

Aber ich glaub ich Update wenn mein Dad morgen kommt mal auf 4.30.
Da ich Heute gesehen habe , das Pb 4.30 besseren DirectX9 Support hat....

Verfasst: 27.02.2009 12:00
von Shardik
Einen Linksklick auf die "Fenster minimieren"-Schaltfläche zu entdecken und eine Meldung auszugeben, ist auch unter PB 4.20 nicht schwierig. Beispiele (die sowohl unter PB 4.20 und 4.30 laufen) wurden schon z.B. von Fluid Byte (mit reinen PB-Anweisungen ohne API: http://www.purebasic.fr/english/viewtop ... 2&start=18) oder edel (http://www.purebasic.fr/german/viewtopi ... 62&start=4) gezeigt. Möchte man aber _vor_ dem Minimieren eine Aktion durchführen, hilft mein folgendes Beispiel weiter. Auch in PB 4.30 bei Nutzung von #PB_Event_MinimizeWindow in der Event-Schleife hält ein Delay(2000) den Minimierungsprozess übrigens nicht auf (mein Code-Beispiel aber schon :wink:)!

Code: Alles auswählen

; Achtung! Die Delay-Anweisung im Callback sollte man _nie_ in produktivem Code verwenden.
; Sie dient hier nur zur Demonstration und sollte im Produktiv-Code durch den Aufruf der benötigten Prozedur ersetzt werden!

Procedure WindowCallback(WindowHandle, Msg, wParam, lParam)
  If Msg = #WM_SYSCOMMAND 
    If wParam = #SC_MINIMIZE 
      Debug "Fenster wird in 2 Sekunden minimiert..."
      Delay(2000)
    EndIf 
  EndIf 

  ProcedureReturn #PB_ProcessPureBasicEvents 
EndProcedure

OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
SetWindowCallback(@WindowCallback(), 0)

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow

Verfasst: 27.02.2009 13:59
von Andesdaf
unter 4.3 gehts auch mit Andys code.

Shardiks Code ist mir zu groß :wink:

Verfasst: 27.02.2009 14:14
von ts-soft
Andesdaf hat geschrieben:unter 4.3 gehts auch mit Andys code.
Aber Du kannst das minimieren selber nicht verhindern. Beenden ist kein Problem.
Man kann den Status aber sofort selber wieder ändern, zum Beispiel in
HideWindow() bei Trayanwendungen. Das geht ohne Callback

Verfasst: 27.02.2009 14:21
von Andesdaf
wenn man es als Button nutzen will geht das, ja.

Verfasst: 27.02.2009 14:22
von ts-soft
Andesdaf hat geschrieben:wenn man es als Button nutzen will geht das, ja.
Er minimiert aber trotzdem :lol: