Иллюстрированный самоучитель по Turbo Pascal

Введение в Turbo Vision

  • Простейшая программа в Turbo Vision

    В этой главе мы попробуем разработать программу, которая использует некоторые возможности Turbo Vision. Пусть, например, нам необходимо создать простейшую информационную систему – нечто вроде электронной записной книжки.
  • Формирование строки статуса

    Стандартный вид экрана, показанный на рис. 15.1, можно изменять. Попробуем придать ему некоторый специфический для нашей программы вид. Например, заменим в строке статуса стандартное сообщение: | ALT + X Exit | На русифицированное: | ALT + X Выход | Таким образом, нам необходимо модифицировать стандартное поведение объекта Notebook.
  • Формирование меню

    Вернемся к смысловой части нашего примера и подумаем о том, какие еще свойства следует придать программе. Поскольку мы предполагаем работу с файлом, можно включить в программу код, реализующий строку меню с опцией "Файл", связав с этой опцией такие действия, как открытие уже существующего файла данных и/или создание нового.
  • Команды

    Необходимо пояснить назначение вновь введенных констант сmХХХХ. Это так называемые команды, точнее их коды (шифр). Сразу же замечу, что префикс cm в идентификаторах команд не является следствием каких-либо требований со стороны Turbo Vision, просто он принят для предопределенных (стандартных) команд, таких как cmQuit и cmClose.
  • События и их обработка

    Весьма важным принципом Turbo Vision является принцип отделения процесса создания видимых изображений от процесса обработки данных. Это означает, что все действия по созданию разнообразных окон, меню и прочих видимых элементов можно осуществлять, не заботясь о тех командах (действиях пользователя), которые будут связаны с ними.
  • Программирование диалоговых запросов

    В обработчике событий TNotebook.HandleEvent мы предусмотрели вызовы нескольких процедур, с помощью которых реализуются конкретные действия программы. Настала пора запрограммировать эти действия. | Начнем с процедуры FileOpen.
  • Инкапсуляция новых полей и методов

    При попытке откомпилировать полученный вариант программы Турбо Паскаль сообщит о неизвестном идентификаторе DisableCommands. На первый взгляд это кажется странным – ведь аналогичное обращение в обработчике событий TNotebook.HandleEvent не вызывало проблем!
  • Создание и использование групп

    Пора заняться основной содержательной частью нашей программы – процедурой Work. Прежде всего следует продумать способ взаимодействия пользователя с данными (интерфейс пользователя).
  • Вывод текста

    По сравнению с рис. 15.4 мы добились немногого, ведь пока еще не решена главная проблема – вывод нужного текста. Разумеется, в Вашем распоряжении всегда имеется процедура WRITELN, однако вывод текста "в лоб" с помощью этой процедуры практически никогда не используется в Turbo Vision, так как в этом случае выведенный текст не будет связан с окнами.
  • Цветовая палитра

    В процедуре Draw переменная Color задает атрибуты (цвет символов и цвет фона) символов, выводимых с помощью методов MoveChar и MoveStr. С помощью функции GetColor она устанавливается таким образом, чтобы символы на экране отображались цветовым сочетанием с номером 1.
  • Использование коллекций

    Для вывода текста мы использовали глобальный массив Lines. Как известно, длина любого массива в Турбо Паскале не может превышать длину сегмента данных (64 Кбайт). Это ограничение можно убрать, если воспользоваться еще одним механизмом Turbo Vision – коллекциями.
  • Указатель на элемент списка

    Как уже отмечалось, с помощью процедуры Draw можно выводить обычный текст и выделенный текст. Попробуем использовать это обстоятельство для того, чтобы поместить в окно просмотра указатель на текущий элемент данных.
  • Диалоговое окно выбора режима

    Подведем некоторые итоги. Мы создали программу, которая погружает пользователя в среду объектно-ориентированного диалога Turbo Vision: она поддерживает командные клавиши, работу с мышью, может сменить каталог или диск, выбрать нужный файл и загрузить его в окно просмотра.
  • Обработка команд пользователя

    Обработчик событий диалогового окна поддерживает только стандартные команды cmClose, cmOk, cmCancel. Как заставить его реагировать на команды пользователя? Вы правы: нужно перекрыть стандартный обработчик событий.
  • Редактирование и добавление записей

    Для редактирования и добавления записей создадим окно, показанное на рис. 15.11. | Рис.15.11. Окно ввода/редактирования записей | Режим редактирования отличается от режима добавления записей двумя обстоятельствами: во-первых, в режиме редактирования поля ввода данных окна должны содержать текст, взятый из редактируемой записи, а в режиме ввода эти поля пусты.
  • Удаление записи. Режим поиска записи. Итоги.

    При реализации режима удаления записи нам нужно учесть тот факт, что порядок следования записей в файле и коллекции может быть различным. | Поэтому в процедуре DeleteItem организуется цикл поиска в файле удаляемой записи: | Procedure DeleteItem;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.