Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Icon in System Tray....
Message
De
17/01/2000 03:35:09
 
 
À
16/01/2000 20:09:54
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Divers
Thread ID:
00318426
Message ID:
00318856
Vues:
21
Dear Justok,

these are good ideas!

The automatic window supporting is quite a new one!

The menu problem is an apparent need of users, but VFP needs _SCREEN to be visible (or a TOP LEVEL WINDOW) to display a menu.
There is an article in File Section WIN95 menu, that uses API32 to display popup menus. That is usable, here.

But....

The fll form is a shrinked enviroment. So, I donot plain to put more features into this.
I will rewrite this fll into an OCX. This will be the bbSysTray.ocx. And, of course, it will be shareware also. This active-x will have all of the features that were requested by users of bbSysTray.fll.

Coming soon...

bb

P.S.: Recently, I have been working on my bbButton.ocx


>Hi, BB!
>
>I also use your fll to put Icon into system tray..
>but I would like to have more Enhancement that I fail to do!!
>
>First, I add a timer such as Talking Clock V1.0 does, Check _SCREEN.WindowState to consider hide in Tray or Not..
>
>I would try to make a Simply Restore back function for DblClick Action:
>
>Function ReStoreWin
>_SCREEN.Visible = .T.
>_SCREEN.WindowState = 2 && Max.
>EndFunc
>
>Well, in Normal Case, RightClick Icon in System Tray Would appear a Menu for selection....
>But Even I make a Simply Menu and put the RightClick Function as:
>
>"Do MYMenu.Mpr"
>
>but it still nothing to see.. maybe the menu show inside _SCREEN.. can't Show Just Above the Tray Icon...
>
>
>The Below is my Dtmrtray.prg, very simply to hide and store _SCREEN..
>You only need to do is to copy some Icon to same directory.. :)
>
>

>
>
>* dTMRTRAY.PRG
>LPARAMETERS pIcon, pTips, pDblClick, pRightClick, pRepeat
>
>SET PROCEDURE TO dTMRTRAY.PRG ADDITIVE
>
>IF PEMSTATUS(_SCREEN, "TMRTRAY1", 5)
>	_SCREEN.REMOVEOBJECT("TMRTRAY1")
>ENDIF
>
>PPCOUNT=PCOUNT()
>
>DO CASE
>CASE PPCOUNT = 0
>	_SCREEN.ADDOBJECT("TMRTRAY1", "TMRTRAY")
>CASE PPCOUNT = 1
>	_SCREEN.ADDOBJECT("TMRTRAY1", "TMRTRAY", pIcon)
>CASE PPCOUNT = 2
>	_SCREEN.ADDOBJECT("TMRTRAY1", "TMRTRAY", pIcon, pTips)
>CASE PPCOUNT = 3
>	_SCREEN.ADDOBJECT("TMRTRAY1", "TMRTRAY", pIcon, pTips, pDblClick)
>CASE PPCOUNT = 4
>	_SCREEN.ADDOBJECT("TMRTRAY1", "TMRTRAY", pIcon, pTips, pDblClick, pRightClick)
>CASE PPCOUNT = 5
>	_SCREEN.ADDOBJECT("TMRTRAY1", "TMRTRAY", pIcon, pTips, pDblClick, pRightClick, pRepeat)
>ENDCASE
>
>* Start Hide in Tray!
>_SCREEN.WINDOWSTATE = 1
>
>
>
>
>
>** Starting System Tray
>PROCEDURE AddTray
>LPARAMETERS pIcon, pTips, pDblClick, pRightClick, pRepeat
>
>PUBLIC SysIconNum
>IF TYPE("SysIconNum")="L"
>	SysIconNum = 1
>ELSE
>	IF SysIconNum < 5
>		SysIconNum =	SysIconNum + 1
>	ELSE
>		SysIconNum = 1
>	ENDIF
>ENDIF
>
>IF ! [BSYSTRAY.FLL] $ SET([LIBRARY])
>	SET LIBRARY TO BSYSTRAY.FLL
>ENDIF
>
>PPCOUNT=PCOUNT()
>
>DO CASE
>CASE PPCOUNT = 0
>	AddSysTrayIcon(SysIconNum, [Skat.ico], ALLTRIM(STR(SysIconNum))+[ Demo on Using System Tray], [Messagebox("DblClick me! Great Test!")], [Messagebox("RightClick me! Wonderful!")], .T.)
>CASE PPCOUNT = 1
>	AddSysTrayIcon(SysIconNum, pIcon, [Demo on Using System Tray], [Messagebox("DblClick me! Great Test!")], [Messagebox("RightClick me! Wonderful!")], .T.)
>CASE PPCOUNT = 2
>	AddSysTrayIcon(SysIconNum, pIcon, pTips, [Messagebox("DblClick me! Great Test!")], [Messagebox("RightClick me! Wonderful!")], .T.)
>CASE PPCOUNT = 3
>	AddSysTrayIcon(SysIconNum, pIcon, pTips, pDblClick, [Messagebox("RightClick me! Wonderful!")], .T.)
>CASE PPCOUNT = 4
>	AddSysTrayIcon(SysIconNum, pIcon, pTips, pDblClick, pRightClick, .T.)
>CASE PPCOUNT = 5
>	AddSysTrayIcon(SysIconNum, pIcon, pTips, pDblClick, pRightClick, pRepeat)
>ENDCASE
>
>ENDPROC
>
>PROCEDURE ModTray
>LPARAMETERS pIcon, pTips
>
>PUBLIC SysIconNum
>IF TYPE("SysIconNum")="L"
>	SysIconNum = 1
>ENDIF
>
>IF ! [BSYSTRAY.FLL] $ SET([LIBRARY])
>	SET LIBRARY TO BSYSTRAY.FLL
>ENDIF
>
>PPCOUNT=PCOUNT()
>
>DO CASE
>CASE PPCOUNT = 0
>	ModSysTrayIcon(SysIconNum, [Skat.ico], [Terence, You can go ahead!])
>CASE PPCOUNT = 1
>	ModSysTrayIcon(SysIconNum, pIcon, [Terence, You can go ahead!])
>CASE PPCOUNT = 2
>	ModSysTrayIcon(SysIconNum, pIcon, pTips)
>ENDCASE
>
>ENDPROC
>
>PROCEDURE DelTray
>
>PUBLIC SysIconNum
>IF TYPE("SysIconNum")="L"
>	SysIconNum = 1
>ENDIF
>
>IF ! [BSYSTRAY.FLL] $ SET([LIBRARY])
>	SET LIBRARY TO BSYSTRAY.FLL
>ENDIF
>
>DelSysTrayIcon(SysIconNum)
>
>ENDPROC
>
>PROCEDURE RestoreWIN
>
>_SCREEN.VISIBLE = .T.
>_SCREEN.WINDOWSTATE = 2
>
>ENDPROC
>
>**************************************************
>*-- Class:        tmrtray
>*-- ParentClass:  timer
>*-- BaseClass:    timer
>*
>DEFINE CLASS tmrtray AS timer
>
>
>	Height = 23
>	Width = 23
>	Interval = 1000
>	jIcon = []
>	jtips = [Traffic Light System Demo]
>	jdblclick = [RestoreWin()]
>	jrightclick = [RestoreWin()]
>*	jrightclick = [IIF(MessageBox("(Yes) for Restore Window, (No) for Quit?", 4+32, "Fun....")=6, RestoreWIN(), QUIT)]
>	jrepeat = .T.
>	Name = "tmrtray"
>
>	PROCEDURE Init
>	LPARAMETERS jIcon, jTips, jDblClick, jRightClick, jRepeat
>	
>	PPCOUNT = PCOUNT()
>	IF PPCOUNT > 0
>		* Appoint Icon, ZERO PARAMETERS WILL USE DEFAULT
>		THIS.jIcon = jIcon
>		PUBLIC IconFace
>		IconFace = jIcon
>	ENDIF
>	IF PPCOUNT > 1
>		THIS.jTips = jTips
>	ENDIF
>	IF PPCOUNT > 2
>		THIS.jDblClick = jDblClick
>	ENDIF
>	IF PPCOUNT > 3
>		THIS.jRightClick = jRightClick
>	ENDIF
>	IF PPCOUNT > 4
>		THIS.jRepeat = jRepeat
>	ENDIF
>
>	THIS.TIMER()
>	ENDPROC
>
>	PROCEDURE Timer
>		IF WEXIST([DEBUG])
>			THIS.INTERVAL = 0
>			THIS.ENABLED = .F.
>		ENDIF
>
>		IF ! [BSYSTRAY.FLL] $ SET([LIBRARY])
>			SET LIBRARY TO BSYSTRAY.FLL
>			SET PROCEDURE TO COMMON.PRG ADDITIVE
>		ENDIF
>
>		** Start to Minimized on Tray!
>		IF _SCREEN.WINDOWSTATE = 1	&& Minimized
>			_SCREEN.VISIBLE = .F.
>			PUBLIC IconFace
>			DO CASE
>			CASE TYPE([IconFace]) = "L"
>				IconFace = [Trflight.ico]
>
>			CASE IconFace = [Trflight.ico]
>				IconFace = [Trfred.ico]
>
>			CASE IconFace = [Trfred.ico]
>				IconFace = [Trfyellw.ico]
>
>			CASE IconFace = [Trfyellw.ico]
>				IconFace = [Trfgreen.ico]
>
>			CASE IconFace = [Trfgreen.ico]
>				IconFace = [Trflight.ico]
>			
>			OTHERWISE
>				* Do Nothing Because Init gives Defined Icon!
>			ENDCASE
>
>			PUBLIC SysIconNum
>			IF TYPE("SysIconNum")="L"
>				AddTray(IconFace, 	THIS.jTips, THIS.jDblClick, THIS.jRightClick, THIS.jRepeat)
>			ELSE
>				ModTray(IconFace, THIS.jTips)
>			ENDIF
>		ENDIF
>
>		** Restore From Tray!
>		IF INLIST(_SCREEN.WINDOWSTATE, 0, 2)	&& Normal
>			PUBLIC SysIconNum
>			IF TYPE("SysIconNum")<>"L"
>				DelTray()
>				RELEASE SysIconNum
>				_SCREEN.WINDOWSTATE = 2
>			ENDIF
>		ENDIF
>	ENDPROC
>
>
>ENDDEFINE
>*
>*-- EndDefine: tmrtray
>**************************************************
>
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform