Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
BUG: Form Activate() fired after GotFocus() events
Message
De
30/05/2003 06:40:30
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Gestionnaire d'écran & Écrans
Titre:
BUG: Form Activate() fired after GotFocus() events
Divers
Thread ID:
00794420
Message ID:
00794420
Vues:
41
Hi

i have found one bug:
- in particular cases, the event Activate() of a Form, happens after the GotFocus() events. It seems to depend on the execution speed.

Code for search bug, remove #define commented for change form type.
* Comment #DEFINE for combination mode
*#DEFINE _TOP_
*#DEFINE _NOTASKBAR_

PUBLIC oform1,g_flag

oform1=NEWOBJECT("form1")
oform1.Show
_SCREEN.Show
\ 
\ Sequence 1: EVERY COMBINATION
\ Click on Desktop
\ Click on FormTop Title
\
\ Sequence 2: EVERY COMBINATION
\ Minimize FormTop
\ 
\ repeat since get bug
\ Click on VFP MAIN Title
\ Click on FormTop Title, retain minimize status
\ 
\ Sequence 3: #define #_TOP_ 
\ 
\ repeat since get bug ( improbable )
\ Click on VFP MAIN Title
\ Click on FormTop Title
\ 
\ Sequence 4: #define #_TOP_ and #_NOTASKBAR_
\ 
\ repeat since get bug
\ Click on VFP MAIN Title
\ Click on TaskBar FormTop Title
\ 

RETURN

DEFINE CLASS form1 AS form


	Height = 600
	Width = 400
	DoCreate = .T.
	Caption = "FormTop"
	Name	= "Form1"
#IFDEF _TOP_
	ShowWindow = 2
	#IFDEF _NOTASKBAR_
		ShowInTaskBar = .F.
	#ENDIF
#ELSE
	ShowWindow = 0
	DeskTop   = .T.
#ENDIF
	
	ADD OBJECT text1 AS textbox

	PROCEDURE text1.GotFocus
		\    TextBox GotFocus

	PROCEDURE text1.LostFocus
		\    TextBox LostFocus
	
	PROCEDURE Activate
	     \Form Activate
   	   IF g_Flag
   	   		 \\ BUG: AFTER GOTFOCUS
   	   	ENDIF
		STORE .T. TO g_Flag
		
	PROCEDURE GotFocus
   	   \  Form GotFocus
   	   IF !g_Flag
		  \\ BUG: BEFORE ACTIVATE
   	   	ENDIF
		STORE .T. TO g_Flag
			   		
    PROCEDURE LostFocus
		\  Form LostFocus

	PROCEDURE DeActivate
		STORE .F. TO g_Flag
		\Form Deactivate
		\
	
	PROCEDURE Load
*		RELEASE ALL
*		CLOSE ALL
		DEFINE WINDOW OUTPUT FROM 0,0 TO 50,60 TITLE 'output' grow FLOAT NAME out
		SHOW WINDOW OUTPUT
		SET TEXTMERGE ON
		SET TEXTMERGE WINDOW OUTPUT
		
   	PROCEDURE Unload
   		SET TEXTMERGE OFF
   		RELEASE WINDOWS OUTPUT
   		RELEASE oform1,g_flag
ENDDEFINE
I found on VFP6/7/8.

Fabio
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform