Клиппер 5. Справочник

написанных на Ассемблере или 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()

Содержание раздела