написанных на Ассемблере или C,
в экранную память, направляется в текущее активное окно.
. Видеовывод Clipper всегда направляется в активное окно.
DSETWINDOW() воздействует только на видеовывод подпрограмм,
написанных на Ассемблере или C, а также внешних программ,
запускаемых командой RUN. В данном случае CT II-функции
рассматриваются как внешние. При вызове из программ, использующих
оконные функции CT II, внешних программ и утилит следует вызовом
DSETWINDOW(.F.) временно выключать режим перенаправления вывода в
активное окно.
. Если направление вывода в окно включено, то изменение
позиции курсора во внешнем модуле или программе будет влиять на
позицию курсора в Clipper. Во избежание этого следует вызовом
DSETWINDOW(.F.) выключить перенаправление. Если после этого
необходимо передать позицию курсора в Clipper, то следует вызвать
функцию SETRC() без параметров.
. Внимание! Перед запуском внешних программ Clipper-командой
RUN, следует вызовом DSETWINDOW(.F.) выключать перенаправление
вывода, иначе некоторые программы будут выполняться неправильно.
. Некоторые CT II-функции игнорируют режим, устанавливаемый
DSETWINDOW(), т.к. работают непосредственно с видеопамятью.
В CT II имеется переменная, которую можно использовать в
программах на языках Ассемблер и Си для воздействия на
переключатель, управляемый DSETWINDOW(). Адресуется она
следующим образом:
EXTR _WINDOW:WORD
MOV _WINDOW, 0 ; Оконные функции отключены, остальные включены!
. Если режим перенаправления включен, то прерывание 16 (10h,
видео) и функция 19 (13h, вывод строки), доступные обычно только для
PC AT становятся доступны и для PC XT.
Примеры
. Выключение направления вывода внешних программ в окно:
DSETWINDOW(.F.)
. Проверка установки драйвера ANSI.SYS:
lVar := DSETWINDOW(.F.)
? ISANSI()