КулЛиб - Классная библиотека! Скачать книги бесплатно
Всего книг - 803328 томов
Объем библиотеки - 2093 Гб.
Всего авторов - 303820
Пользователей - 130331

Последние комментарии

Впечатления

pva2408 про Пламенев: Миротворец II. Дипломатия Мечей (Городское фэнтези)

Предыдущий первый том: https://coollib.in/b/796158-vladimir-plamenev-diplomatiya-klanov автор на АТ скрыл. Как первый том ( с таким названием) выложен у него на странице в АТ: https://author.today/work/series/46755

Рейтинг: 0 ( 0 за, 0 против)
yan.litt про Воронков: Везунчик (Фэнтези: прочее)

Прочитал серию. Поставил 4 с минусом. ГГ переносится в новый мир, на поле усеянное костями, он собирает лут и идет в случайном направлении. Впереди только неизвестность, жажда, голод и магические ловушки, но ГГ все вытерпит и выживет. На самом деле ГГ на старте получил стандартный набор попаданца - магическое зрение и знание местного языка, что и позволяет ему справляться с трудностями
Плюсы
1. Сюжет довольно интересный, автор умеет

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против)
pva2408 про Шабловский: Никто кроме нас 2 (Недописанное)

«Перерыв был большой но вроде дело двинулось пока половина новой главы. К НГ хотел закончить 2 книгу но не факт. Буду постараться.»
Шабловский Олег

Рейтинг: +2 ( 2 за, 0 против)
Serg55 про Шабловский: Никто кроме нас 2 (Недописанное)

как то не понятно? 7 глав? а где продолжение? или усё...

Рейтинг: +1 ( 1 за, 0 против)
Serg55 про Романов: На пути к победе (Альтернативная история)

как-то рано тов. Сталин умер...

Рейтинг: +1 ( 1 за, 0 против)

Построители GUI [Автор неизвестен] (fb2) читать постранично


 [Настройки текста]  [Cбросить фильтры]

ПОСТРОИТЕЛИ GUI

Существуют различные средства, предназначенные для построения графических интерфейсов пользователя (GUI). Среди них некоторые используют язык Ада. Вот список некоторых коммерческих построителей GUI для Motif и замеченные недостатки (предоставил Вадим Годунко).

• BX Pro от ICS. BX Pro — совершенно не обеспечивает возможность проведения локализации разрабатываемого интерфейса. Предложенное решение поразило своей новизной: когда интерфейс нарисован и сгенерирован файл ресурсов необходимо загрузить этот самый файл ресурсов и отредактировать там все текстовые надписи.

• X/Designer от IST фактически генерирует код на C и связку с этим кодом на Ada.

• TeleUSE от Aonix — самый навороченный (имеет даже собственный язык написания callback‐ов), но при генерации кода тянет за собой огромную «стандартную библиотеку».

Среди аналогичных средств из «мира Open Source» можно назвать программу Glade, которая позволяет создавать GUI на базе связки GtkAda для переносимого набора тулкита GTK+.

Следует отметить, однако, что язык Ада имеет уникальную возможность строгой типизации и богатый механизм пользовательских типов. В следствии чего и построение GUI имеет смысл вести несколько по другому, чем это принято в других языках. Программисту удобнее предоставлять данные для отображения используя собственные типы данных. При этом сами типы зачастую довольно точно характеризуют данные, обрабатываемые приложением. Интерфейс может использовать информацию заключенную в типах чтобы для контроля диапазона и точности вводимых пользователем значений.

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

Удобно было бы четко разделить GUI интерфейс и прикладную программу, формально описав методы их взаимодействия.

Зачастую программе не нужно знать всех тонкостей реализации интерфейса, а достаточно предоставить данные для отображения и среагировать на реакцию пользователя. Строго оговорив взаимодействие программы и интерфейса, в дальнейшем, каждая составляющая может развиваться независимо от другой. Например, интерфейс может быть усовершенствован или портирован на другую платформу без изменения текста логики программы.

Четкая спецификация интерфейса программы может быть использована для автоматизации тестирования логики и реализации интерфейса.

Можно рассмотреть следующий механизм для реализации этого подхода.

Интерфейс программы удобно рассматривать в виде набора компонент интерфейса. Компоненты могут содержаться друг в друге, и, таким образом, объединяются в иерархии (дочерние компоненты содержатся в родительских). Компоненты имеют свойства меняющиеся в процессе выполнения программы. Интерфейс может представлять собой статический набор компонент, либо компоненты могут создаваться и уничтожаться со временем.

Спецификация интерфейса может быть выражена в виде спецификации пакета на языке Ада. Для каждого компоненты верхнего уровня (не имеющего родителей) создается отдельных пакетах.

Если в процессе работы предполагается существование нескольких экземпляров данного компонента, то в пакете определяется тип — ссылка на компонент. С помощью значений данного типа программа может манипулировать конкретным экземпляром. Работа с компонентом (создание и удаление компонента, изменение его атрибутов) осуществляется при помощи примитивных операций данного типа. Если предполагается существование единственного экземпляра, тип не применяется и работа с компонентом ведется при помощи обычных подпрограмм описанных в пакете.

Чтобы предоставить интерфейсу методы оповещения о реакции пользователя программа предоставляет свои процедуры используя формальные параметры настраиваемого пакета.

Спецификация интерфейса дает большой простор для его реализации. Описание реализации интерфейса под конкретную платформу хранится в отдельном файле в своем формате. При таком подходе процесс построения приложения может проходить так:

• Построение описания интерфейса в виде спецификации пакета с использованием типов данных прикладной задачи.

• Построение реализации интерфейса для одной из поддерживаемых платформ с использование построителя GUI.

• Генерация исполняемого кода по файлу реализации интерфейса.

• Сборка прикладной части программы с кодом интерфейса.

Идеи построения GUI подобным методом обсуждались в нашей конференции и --">