_screen.AddProperty("PrintScr") ? PEMSTATUS(_Screen,'Printscr',4) && returned .T. ? PEMSTATUS(_Screen,'xPrintscr',4) && got error, as you did (which does seem like a bug, doncha think?) >I if try: ? PEMSTATUS(_Screen,'Printscr',4) > >it returns: function, argument value, type, or count is invalid... > >Hmmmmm, >interesting. 5 returns the right values (.t. if the property exists), but it clears the screen. Wonder why it doesn't for everyone. This happens if I run it immediately from starting VFP after typing 'dir' from the command window to draw something on the screen. Of course, I start out with screen colors like gr+/r,n/w etc and I am changing screen colors in the screenset procedure and setting them back in the screenrset procedure... > >>Well I'll try a coupla things... >> >>1) Maybe PEMSTATUS should be checking 4 instead of 5? >>--- You could really get by without the PEMSTATUS I think. >>2) Maybe ADDPROPERTY() would make a difference? >> >>good luck >> >> >>>Anyone? My goal is to restore the original screen that was saved in the screenset procedure. >>> >>>:o) >>> >>>>IF I have information on the screen (even issuing dir from the command window to draw on the screen) and I run this code: >>>><PRE> >>>>*Screenset >>>>#IF "VISUAL" $ UPPER(VERSION()) >>>> IF !PEMSTATUS(_Screen,'Printscr',5) >>>> _Screen.AddProperty('Printscr') >>>> ENDIF >>>> ACTIVATE SCREEN >>>> SAVE SCREEN TO _Screen.Printscr >>>> _screen.lockscreen=.t. >>>> _Screen.BackColor = RGB(255,255,255) >>>> _Screen.ForeColor = RGB(0,0,0) >>>> _Screen.FillColor = RGB(255,255,255) >>>> _screen.refresh >>>>#ENDIF >>>> >>>>RETURN >>>>>>>>
>>>>*screenrset >>>>#IF 'VISUAL' $ UPPER(VERSION()) >>>> >>>> DECLARE Sleep IN Win32API; >>>> INTEGER nMilliseconds >>>> = Sleep(100) && Wait a 1/10th of a second. >>>> >>>> * TCH 7/10/2002 Added >>>> >>>> WITH _screen >>>> .fontname=glFontName >>>> .fontsize=glFontSize >>>> .fontunderline=.f. >>>> .fontbold=.f. >>>> .BackColor = cOldbackcolor >>>> .ForeColor = cOldforecolor >>>> .FillColor = cOldfillcolor >>>> ENDWITH >>>> >>>> _SCREEN.lockscreen=.F. >>>> >>>> ACTIVATE SCREEN >>>> IF PEMSTATUS(_Screen,'Printscr',5) >>>> RESTORE SCREEN FROM _Screen.printscr >>>> = Sleep(100) && Wait a 1/10th of a second. >>>> ENDIF >>>> >>>> CLEAR DLLS "sleep" >>>> >>>>#ENDIF >>>>>>>>