Seite 1 von 1

Fenster blinken lassen

Verfasst: 13.04.2013 11:27
von Pure_Beginner
Hallo Leute,

bin auf der Suche nach einem Befehl, mit dem ich das Fenster blinken lassen kann, nach Möglichkeit rot.
Hab schon in der Hilfe gesucht aber nichts gefunden.

Ist das mit PB überhaupt möglich oder braucht man die Win API, da blick ich nämlich überhaupt nicht durch.

Grüße
Christian

Re: Fenster blinken lassen

Verfasst: 13.04.2013 11:40
von RSBasic
Es gibt diese Standard-Möglichkeit, um das Fenster in der Taskleiste blinken zu lassen: http://www.rsbasic.de/aktualisierung/wi ... blinken.pb
Wenn du das Blinken deines Fensters selber bestimmen möchtest, dann kannst du ja einen Timer erstellen und das Fenster automatisch alle x Sekunden in den Vordergrund setzen.
Was meinst du mit "nach Möglichkeit rot"? Willst du die Titelleiste des Fensters rot färben oder den Hintergrund? Oder die Schaltfläche deines Fensters in der Taskleiste? http://www.purebasic.fr/german/viewtopi ... 70#p300070 ?

Re: Fenster blinken lassen

Verfasst: 13.04.2013 11:46
von Pure_Beginner
@RSBasic

Das Fenster als solches soll blinken, am besten einen roten Rand oder so um den Nutzer darauf aufmerksam zu machen Daten nur zu ändern wenn er weis was er tut.
ziemlich großes Projekt für einen Anfänger :lol:

Grüße Christian

Re: Fenster blinken lassen

Verfasst: 13.04.2013 12:47
von Kiffi
vielleicht so?

Code: Alles auswählen

EnableExplicit

#myWindow = 0
#myTimer = 0

Define WindowColor, Event, BgColor

OpenWindow(#myWindow, 100, 200, 195, 260, "PureBasic Window", #PB_Window_SystemMenu)

AddWindowTimer(#myWindow, #myTimer, 500)

WindowColor = GetWindowColor(#myWindow)

Repeat
	Event = WaitWindowEvent()
	If Event = #PB_Event_CloseWindow : Break : EndIf
	If Event = #PB_Event_Timer And EventTimer() = #myTimer
		If BgColor = #Red
			BgColor = WindowColor
		Else
			BgColor = #Red
		EndIf
		SetWindowColor(#myWindow, BgColor)
	EndIf
ForEver
Grüße ... Kiffi

Re: Fenster blinken lassen

Verfasst: 13.04.2013 12:59
von Pure_Beginner
@Kiffi

Super Vorschlag, der Befehl

Code: Alles auswählen

 AddWindowTimer() 
war mir gänzlich unbekannt. :oops: ( is ja nix neues bei mir)

Es leuchtet zwar das ganze Fenster und nicht nur der Rand, aber ich denke das werde ich so umsetzen.

Besten Dank für die Tipps und eure Mühe.

schönes Wochenende
Christian

Re: Fenster blinken lassen

Verfasst: 13.04.2013 13:01
von ts-soft
Kiffi hat geschrieben:vielleicht so?

Code: Alles auswählen

...
WindowColor = GetWindowColor(#myWindow)
...
Da vorher nie eine Hintergrundfarbe gesetzt wurde, wird WindowColor -1 sein :wink:
Wenn es für Windows ist:

Code: Alles auswählen

WindowColor = GetSysColor_(#COLOR_WINDOW)
Gruß
Thomas

Re: Fenster blinken lassen

Verfasst: 13.04.2013 13:19
von Kiffi
ts-soft hat geschrieben:Da vorher nie eine Hintergrundfarbe gesetzt wurde, wird WindowColor -1 sein :wink:
Danke für den Hinweis! Auf meinem miesen Monitor konnte ich das nicht erkennen.
ts-soft hat geschrieben:GetSysColor_(#COLOR_WINDOW)
... ist bei mir weiß. Wie wär's mit #COLOR_BTNFACE?

Grüße ... Kiffi

Re: Fenster blinken lassen

Verfasst: 13.04.2013 13:44
von ts-soft
Bin im moment nicht unter Windows, lt MSDN: http://msdn.microsoft.com/en-us/library ... 85%29.aspx
ist es aber richtig, obwohl es falsch ist :mrgreen:
COLOR_BTNFACE erscheint mir auch richtiger.