Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Disappearing objects on forms
Message
De
09/10/2003 15:58:13
 
 
À
09/10/2003 14:22:47
William Metzener
Russell Mellon Analytical Services
Tacoma, Washington, États-Unis
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Divers
Thread ID:
00837050
Message ID:
00837086
Vues:
27
>I had a 7.0 project compiled in 8.0 it works great on windows 2000 machine but when i try to run it on a windows XP machine the objects on the forms dissappear as soon as I mouse over the form, but if i tab through the form the objects stay put. Also once they have disappeared if i hover over them with a mouse they reappear as long as the mouse is over them, text boxes and labels - never reappear.
>
>please and thank you in advance
>
>William

I have seen this occur with @ SAY/@ GET/READ applications due to VFP8 support for XP themes. You have a couple of choices. On XP, you can set _screen.themes = .F. at the beginning of your main program to disable theme support entirely in your application, or you can try implementing a workaround I recently discovered. For screens that use @ SAY/@ GET/READ code, you can try toggling LockScreen just before the READ command in each screen:
DEFINE WINDOW test ;
		AT 0.000, 0.000 ;
		SIZE 29.000,121.200 ;
		TITLE "test" ;
		FONT "MS Sans Serif", 8 ;
		NOFLOAT ;
		CLOSE ;
		NOMINIMIZE ;
		SYSTEM ;
		COLOR RGB(,,,192,192,192)

ACTIVATE WINDOW TEST
		
@ 2.500,55.833 GET lTest ;
	PICTURE "@*C Test" ;
	SIZE 1.308,21.400 ;
	DEFAULT 0 ;
	FONT "Microsoft Sans Serif", 8 ;
	STYLE "T"  

_screen.activeform.lockscreen = .t.
_screen.activeform.lockscreen = .f.
	
READ CYCLE	
If you choose to do this, I would recommend adding the lockscreen to a user defined function and calling the same function just before the READ of each of your screens. Then if you need to call anything else just before the read, you can add it to that function and have it apply to all your screens. Calling it from a READ WHEN or READ SHOW should also work.

So it would look like this:
* ACTI WINDOW, GET and SAY code

...

=FixScreen()

READ CYCLE

PROC FixScreen()
_screen.activeform.lockscreen = .t.
_screen.activeform.lockscreen = .f.
ENDPROC
I hope this helps! Your mileage may vary, but it seems to work OK for me in some simple testing.
Jim Saunders
Microsoft
This posting is provided “AS IS”, with no warranties, and confers no rights.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform