Среда разработки Timur часть 23 Первые окна подготовка места для рисования окон

Автор Georgiy Dronov
Среда разработки Timur часть 23 Первые окна подготовка места для рисования окон

раз-два-три-четыре-пять так начнем, что же в прошлый раз мы остановились на том, что создавали функцию для рисования окна и для создания окна.

Так секундочку. Ага Да вот наш функции для создания окна ещё раз как бы попробую вспомнить то, что было так так вот у нас есть параметры окна леворвер ширина высота атрибуты, что же рассмотрим еще раз установку вот у нас есть специальная функция с параметром устанавливают параметры значит поменяем здесь высоту 10 отступ слева 10 ширина окна пусть будет 30 высота окна пусть будет. Ну пусть будет 10 хорошо и установка атрибутов теперь когда мы создаем окно.

Она должна возвращать адрес окна.

Вот он у нас в регистре сохраняется та которая на ваш взгляд и моего добавляют в родительский элемент соответственно вернуть адрес созданного опять о том, что на вершине стека находится регистр и чтобы его вернуть необходимо поместить его на вершину. СТ Так теперь мы исключительно для отладки создаем ещё одно функцию для создания окна просто с другими параметрами отступ справа вас по высоте 2 ширина окна будет. Пусть будет петь высота 5 и атрибуты. Давайте другие поставил как-то вот так чтобы они по цвету отличались и так теперь рассмотрим наш функцию вот она создаёт окно внутри этого хлама создаем ещё одно окно и смотрим как она создаётся как. Ага она не добавилась ты сама на одном мужчине сейчас находится почему она не добавилась ко ржеву 2 так только говорил, что регистр DX и опять же ты написал. Вот Вот теперь правильно теперь внутри этого к нам вложено ещё одно окно с другими параметрами она внутри этого угла соответственно его координаты. Вот и слева выксу пять и два должна быть его координата 7 за — это у нас отвечает специальная функция абсолютные координаты по иксу 1 и возвращает она их в регистре AX для акнаде окно. Вот второе окно здесь создается значит. Вычисли абсолютные координаты окна слева элементы и выводимых на сразу функции описаны функции. Принц и нет ещё раз. Напоминаю, что предпринимать. Выводит на печать содержимое регистра AX в которой заносятся абсолютно слева окна компилируем запускаем 7 всё правильно функции работают правильно даже странно хотя я её так написал её от балды, что ж. Ну раз у нас всё выводится. Убирай — это теперь мы будем проверять функцию рисования окон. У нас есть специальная функция уже написано kls очищает участник участок экрана для рисования. Канаде как она называется или. КСК ls600h. Ага выскакивает ошибка не проинициализирован ли видеопамяти у нас есть функция для инициализации видеопамяти. Вот она устанавливается нет — это не то фарша фото установлен to register As DS адрес начала видеопамяти устанавливает нужно страницу для вывода мы её должны запустить что. Запусти моя после инициализации памяти сразу и попробуем ещё раз от компилировать и так ничего не видно — это связано со следующими вещами, а именно установка атрибутов. Следовательно у нас установка атрибутов и происходит так. Смотрим А ну да вот у нас Hey высота потому, что копировали функцию из функции не поменяли смещение. Так пускай она возвращает небо h.a.y. достаёт значение соответственно смотрим функцию для очистки окна ещё раз готовки выводу для чтения атрибутов. Вот производит чтения в регистр ecx атрибутов, но так как она читает твои значение атрибута 1 байту. Значит надо из регистра Al переместить в регистр ah AJ. А в регистратуре заносим пробел для затирания экрана ещё раз смотрим, что ещё забыли а. Ну вот теперь мы видим, что у нас рисуется второе окно маленькое. Первое окно не рисуется. Давайте посмотрим. Почему видимо по цветовой гамме неправильно подобрали цвет фона 000. Напишем какой-то. Другой цвет фона. Ну вот, а значит 1 4 бита этот цвет фона 16 цветов возможно 2 4 бита этот цвет текста и у нас здесь вот почему он возникает — это у нас функция очистки окна. Давайте посмотрим так — это от инициализация очистки окна. Вот оно происходит — это по следующей причине. Дело в том, что мы выберем потом прибавляем как бы перебираю все. Знакомые места для окна сразу прибавляем зарисовка символ должна производиться до того как. Мы производим в борисовку символа ещё раз. Ну вот теперь у нас правильно рисует только в следующем видео мы займемся выводом текста в эти окна, а также проверкой чтобы не выскакивали за края правый нижний у нас только абсолютно левый верхний правый угол высчитываем, а вот этот угол не высчитывали ещё. Так, что до следующего видео и уже попробуем потом мышку и клавиатуру подключать чтобы можно было эти окна перемещать и текст них выводить.

0 комментариев
0

Читайте также