2016-12-24 17 views
0

Приложение Visual FoxPro 9 накладывается на экран с помощью? командыКак исправить пустой экран, если приложение переключено в RDP

SYS(602 , 1) 
MODIFY WINDOW screen FONT 'Arial',14 
_Screen.Themes = .F. 
hide menu _msysmenu 
ACTIVATE SCREEN 
clear 

do while .t. 
clear 
    ?'1 Option1' 
    ?'2 Option 2' 
    ?'. Exit' 

    wait 'Select ' to valik 
clear 
... 
enddo 

При запуске под RDP после переключения на локальный рабочий стол и обратно текст на экране исчезает. Весь экран пуст.

Как исправить это, чтобы выход экрана приложения был виден после переключения обратно в приложение? Я пробовал SYS (602, 1) и SYS (602, 0), но этот не исправляет пустой экран.

+1

Не используйте эту древнюю технику. Вместо этого используйте форму (или меню). –

ответ

0

Это происходит потому, что разрешение экрана изменилось при подключении RDP.
При изменении разрешения VFP перерисовать _screen и очистить весь текст. (текст на экране не хранится нигде)
Если вы хотите сохранить вывод, вы можете добавить некоторый слой на _screen, например, textbox.
Его содержимое постоянно хранится в object.value и сохраняется после перекраски.

_screen.AddObject('out', 'textbox') 
_screen.out.Visible= .T. 
_screen.out.value = 'sometext' 

Или вы можете использовать set alternate для обработки выходных данных.