Этот сайт предназначен, прежде всего, людям, ностальгирующим по ушедшим РУССКОМУ СЛОВУ, Windows 3.1, ФОТОНУ, процессорам 486SX и иже с ними.
Конечно, времена должны идти вперед, но почему они обязательно должны уходить?
StuhlbergR 2007-2008 ©
|
Новая диалоговая оболочка системы МАСТЕР (окончание)
Средства процедурного программирования
В описываемой оболочке появилось много новых системных функций общего назначения, предназначенных для использования как в прикладных программах, так и в самой оболочке.
Более простые функции реализуют примитивные действия, такие, как загрузка рамки, выполнение подпрограммы-оверлея, смена текущего каталога и т.д. Функции Всплыть(), Убрать(), Модифицированы() предназначены для поддержки технологии всплывающих окон. Функции ИмяПакета(), ДайПакет(), УдлПакет() используются для работы с пакетами программ - составными рамками, содержащими наборы функций.
Отдельный набор функций позволяет работать с текстом специального формата - формата файлов, описывающих конфигурацию и настройки оболочки. Программисты могут использовать эти функции для обработки конфигурационных файлов своих прикладных программ.
Функция СисКонст() позволяет связывать с любыми рамками системные константы, а затем запрашивать их. В частности, со всем рамками, считанными средствами ИС МАСТЕР, связывается константа ИМЯ-ФАЙЛА. Эта константа является строковой записью имени файла, из которого была считана рамка. Сохранение вместе с рамкой имени файла позволяет записывать ее в тот же файл, откуда она была загружена. При необходимости программист может добавить к списку существующих констант свои константы.
Наконец, функция _Вызов() может быть использована для вызова внешних по отношению к системе МАСТЕР программ, хранящихся на диске в виде COM- или EXE-файлов. Перед вызовом указанной программы функция высвобождает оперативную память, оставляя в ней только ядро системы МАСТЕР, а все остальное выгружая во временные файлы. По окончании выполнения внешней программы функция _Вызов() загружает данные обратно.
К более сложным функциям относятся: _Меню(), ВыбДиск(), ВыбКаталог(), ВыбФайлы() и некоторые другие. Эти функции во время выполнения поддерживают собственный диалог с пользователем.
Функция _Меню() позволяет автоматически строить спускающиеся (pull-down) меню. Функции передается список пунктов меню и подсказок по этим пунктам, а также такие атрибуты, как цвет окна меню, его размеры и координаты на экране дисплея и некоторые другие. Функция автоматически строит окно меню, а после выбора пользователем какого-либо пункта (или отказа нажатием клавиши <Esc>) убирает окно и возвращает номер выбранного пункта (или число 0). Функция создает именно спускающееся подменю. Если требуется создать горизонтальное меню, из которого будет "расти" подменю, то это следует делать другими средствами.
Функции выбора диска и каталога работают примерно одинаково: создают всплывающее (pop-up) окно и организуют внутри него диалог с пользователем. В окне выбора диска пользователь может выбрать один из дисков. В окне выбора каталога пользователь может передвигаться по дискам и выбрать определенный каталог. По окончании выбора соответствующая функция убирает окно и возвращает в качестве результата имя выбранного диска или каталога.
Функция выбора файлов работает несколько сложнее. В числе прочих аргументов она получает имя исходного каталога и шаблон имен файлов. Она также поддерживает диалог с пользователем, позволяя ему сменить диск, каталог или шаблон имен файлов. По окончании выбора одного или нескольких файлов функция убирает окно и возвращает текст, в строках которого записаны имена всех выбранных файлов и имя каталога с этими файлами. Программа, обращавшаяся к функции ВыбФайлы(), использует полученную информацию по своему усмотрению.
Программисты могут также воспользоваться появившимся в новой оболочке системным таймером, реализованным как одна из функций ядра оболочки.
С помощью таймера, указав время, имя функции и строку-аргумент, которая будет передана этой функции, можно в заданные моменты времени вызывать произвольное количество определенных функций. Единственное требование: указанные функции должны находиться непосредственно в рамке "Биб".
Все предоставляемые средства программист может использовать как расширения ИС МАСТЕР (диалоговой оболочки), так и для создания совершенно самостоятельных прикладных систем. Системные функции оболочки могут быть скопированы в прикладную программу или оставлены в рамке "Биб". Практически любую функцию можно использовать в качестве резидентной (постоянно находящейся в оперативной памяти) либо сделать оверлеем. Кроме того, прикладной программист может использовать технологию всплывающих окон, примененную в программах оболочки.
ОСОБЕННОСТИ ПРОГРАММИРОВАНИЯ В СРЕДЕ ИС МАСТЕР
Прикладных программистов, познакомившихся с системой МАСТЕР, привлекает в ней легкость и быстрота программирования. С одной стороны, язык Мастер прост и компактен, с другой - в системе МАСТЕР нет необходимости самому программировать такие сложные процедуры, как оконный интерфейс, диалоговую обработку текста или таблиц, обперации управления базой данных. Поэтому разрабатывать прикладные системы удается специалистам, не слишком искушенным в программировании, но хорошо понимающим специфику задачи. Даже в тех случаях, когда возможностей системы МАСТЕР явно недостаточно, программисты предпочитают использовать ее хотя бы для создания интерфейса с пользователем, а функциональную часть пишут на Си или Фортране.
Другим неомненным плюсом системы МАСТЕР является относительная легкость модификации программ. В обычной технологии программирования для того, чтобы изменить что-либо в старой программе, нужно отыскать файлы с исходными текстами; просмотреть их, вспоминая, "где что лежит"; найти место предполагаемого исправления и внести его. После этого может идти довольно долгий процесс компиляции, отладочного запуска, выявления новых ошибок, их исправления и т.д.
В системе МАСТЕР, благодаря наличию декомпилятора, программа и ее исходный текст - это практически одно и то же. Соответственно, фаза компиляции в привычном понимании отсутствует. Процедуры запуска программы тоже нет, поскольку все программы ИС МАСТЕР, находящиеся в оперативной памяти, постоянно готовы к исполнению и вызываются просто нажатием клавиш. Компактность же языка Мастер позволяет писать короткие и понятные программы. В результате модификация программы в системе МАСТЕР оказывается проще, чем в традиционных системах программирования. Специалист, разработавший для себя прикладную систему, может месяцами пользоваться ею, каждый день внося в нее какие-то поправки и улучшения.
При программировании в среде системы МАСТЕР наиболее удобным, пожалуй, является сам стиль программирования. Этот стиль можно назвать "визуальной раскруткой". Суть его в том, что прогаммист находится не в среде инструментария (как, например, в системах турбопрограммирования), а в среде собственных программ. Каждая созданная им функция, как только она введена, тут же компилируется и может быть выполнена. Все диалоговые окна с момента своего создания являются именно теми окнами, с которыми будет работать пользователь; в эти окна можно "заходить" и проверять их работу; находясь в них или рядом с ними, можно тут же перепрограммировать их "поведение".
Все вышесказанное объясняет тот факт, что многие прикладные программисты и программирующие пользователи, познакомившись с системой МАСТЕР, становятся ее приверженцами и переходят на другие среды программирования только в тех случаях, когда наталкиваются на принципиальные ограничения этой системы.
ОБ АВТОРЕ
Дмитрий Борисович Куксенко - старший научный сотрудник СП Микроинформ.
[1] [2] [3]
Статья была опубликована в журнале "Мир ПК" №8 1992
Программы
|
Большинство предоставленного здесь материала является цитированием со старых номеров компьютерных журналов, таких, как
"Мир ПК" или "Весь Компьютерный Мир". К сожалению, все мои попытки связаться с этими изданиями по поводу вопроса о цитировании были безуспешны.
Издания упорно хранили молчание. Что я разрешил себе расценивать как знак согласия, указывая, тем не менее, повсюду как выходные данные
издания (с работающей ссылкой на Интернет-представительство), так и автора публикации. Тем более, что, в силу срока давности этих публикаций, вряд ли материал можно рассматривать как коммерческий или рекламный,
пусть даже названия фирм здесь и присутствуют (уж без этого никуда).
Ежели появятся какие претензии по оному поводу, прошу
издания связаться со мной
Райво Штулберг |