Ряд st - имя вашего .bmp-файла, в который будет записана биткарта.
Индикатор результата операции i может принимать одно из следующих значений:
global constant BMP_SUCCESS = 0,-- успех операции
BMP_OPEN_FAILED = 1,-- файл не открылся на запись
BMP_INVALID_MODE = 4 -- неверный графический формат
-- или неверный аргумент
Комментарии:
save_screen() вырабатывает биткарты с 2, 4, 16, или 256 цветами, которые могут быть прочитаны с помощью read_bitmap(). Программа Paintbrush из пакета Windows и некоторые другие графические редакторы не поддерживают 4-х цветные биткарты.
save_screen() работает только в пиксельно-графических режимах, но не в текстовых.
Пример 1:
-- записывается весь экран:
code = save_screen(0, "c:\\example\\a1.bmp")
Пример 2:
-- записывается часть экрана:
err = save_screen({{0,0},{200, 15}}, "b1.bmp")
См. также:
save_image, read_bitmap, save_bitmap
save_text_image
Синтаксис:
include image.e
s3 = save_text_image(s1, s2)
Описание:
Записывает в ряд прямоугольную область экрана в текстовом режиме. Результатом будет ряд рядов, содержащий символы ASCII и их атрибуты с экрана. Вы сможете затем перевывести этот текст с помощью процедуры display_text_image(). s1 является двухэлементным рядом вида {строка1, колонка1}, в котором определена позиция (знакоместо) верхнего левого символа. s2 - ряд вида {строка2, колонка2}, определяющий позицию (знакоместо) правого нижнего символа.
Комментарии:
Поскольку сохраняются и атрибуты, вы будете получать правильные цвета фона, символов и другие свойства для каждого символа при перевыводе сохранённого текста.
Под DOS32 байт атрибута состоит из двух 4-битных полей, в которых содержится информация о цвете фона и символа для каждого знакоместа. Старшие 4 бита определяют цвет фона, а младшие 4 бита дают цвет символа на этом фоне.
Эта подпрограмма работает только в текстовых режимах.
Вы можете использовать эту функцию в графическом пользовательском интерфейсе текстового режима для сохранения участков экрана перед выводом выпадающих меню, диалогов, предупреждений и других элементов управления.
Под DOS32, если вы применяете чередование видеостраниц, имейте в виду, что данная функция производит чтение с текущей активной страницы.
Пример:
Если на двух верхних строках экрана имеется:
Hello
World
и вы исполните:
s = save_text_image({1,1}, {2,5})
тогда s будет иметь вид:
{"H-e-l-l-o-",
"W-o-r-l-d-"}
символ '-' здесь обозначает некие байты атрибутов.
См. также:
display_text_image, save_image, set_active_page, get_screen_char
scroll
Синтаксис:
include graphics.e
scroll(i1, i2, i3)
Описание:
Прокручивает участок текста на экране вверх (если i1 положительное) или вниз (если i1 отрицательное) на i1 строк. Участок текста - это последовательность строк на экране от i2 (верхняя строка) до i3 (нижняя строка) включительно. Сверху или снизу будут появляться новые пустые строки.
Комментарии:
Вы могли бы выполнять прокручивание экрана, используя серии вызовов puts(), но scroll() работает намного быстрее.
Позиция курсора после прокрутки не определена.
Пример программы:
bin\ed.ex
См. также:
clear_screen, text_rows
seek
Синтаксис:
include file.e
i1 = seek(fn, a1)
Описание:
Переход на позицию байта с номером a1 в файле fn или в конец файла, если a1 равно -1. Для каждого из открытых файлов у системы имеется информация о текущей байтовой позиции, которая обновляется в результате выполнения на файле операций ввода/вывода. Начальная позиция равна 0 для файлов, открытых на чтение, запись или обновление. Начальная позиция равна концу файла для файлов, открытых на добавление. Величина i1, выдаваемая функцией seek(), равна 0, если переход в заданную позицию завершился успешно, и не равна 0, если переходу что-то помешало. Возможен переход за границу имеющегося файла, в некоторую позицию за его концом. Если вы перешли за конец файла и записываете данные, в зазор между имевшимся концом файла и вашими новыми данными будут вставлены неопределённые байты.
Комментарии:
После перехода в заданную позицию и чтения (записи) последовательности байтов вам может потребоваться новый явный вызов seek() непосредственно перед переключением на запись (чтение) байтов, даже если позиция в файле уже была именно та, которая вам необходима.
Эта функция обычно используется с файлами, открытыми в двоичном режиме. В текстовом режиме DOS преобразует CR LF в LF на входе, и LF в CR LF на выходе, что может вызывать великую путаницу, когда вы пытаетесь подсчитывать байты.
Пример:
include file.e
integer fn
fn = open("mydata", "rb")
-- читает и отображает первую строку файла 3 раза:
for i = 1 to 3 do
puts(1, gets(fn))
if seek(fn, 0) then
puts(1, "перемотка не сработала!\n")
end if
end for
См. также:
where, open
sequence
Синтаксис:
i = sequence(x)
Описание:
Выдаёт 1, если x является рядом, иначе выдаёт 0.
Комментарии:
Основное назначение команды - определение переменных типа ряд. Но вы можете вызывать её как обычную функцию, чтобы проверить, является ли объект действительно рядом.
Пример 1:
sequence s
s = {1,2,3}
Пример 2:
if sequence(x) then
sum = 0
for i = 1 to length(x) do
sum = sum + x[i]
end for
else
-- x должен быть атомом
sum = x
end if
См. также:
atom, object, integer, atoms and sequences
set_active_page
Платформа:
DOS32
Синтаксис:
include image.e
set_active_page(i)
Описание:
Выбирает видеостраницу номер i для всех выводов на экран.
Комментарии:
Используя несколько видеостраниц, вы можете одновременно изменять содержимое всего экрана сразу без каких бы то ни было визуальных подёргиваний и мельканий. Вы можете также сначала записать информацию на невидимую страницу экрана, а потом быстро, практически мгновенно, переменить страницы и вывести эту новую информацию.
Функция video_config() сообщит вам, как много видео страниц доступно в текущем графическом режиме на вашей видеоплате.
По умолчанию активная страница и отображаемая страница обе имеют номер 0.
Всё это работает под DOS или в полноэкранном окне DOS. В окнах, занимающих часть экрана, вы не можете манипулировать номерами активной страницы.
Пример:
include image.e
-- активная и отображаемая страницы сначала обе имеют номер 0
puts(1, "\nЭто страница 0\n")
set_active_page(1) -- экранный вывод теперь пойдёт на страницу 1