- •Windows -приложение
- •Среда программирования
- •Встроенный отладчик
- •Использование графики
- •Графические данные и палитра
- •Сохранение проекта
- •Структура приложения
- •Структура модуля
- •Простые типы
- •Символьные типы
- •Логические типы
- •Тип перечень
- •Составной оператор
- •Оператор if
- •Оператор цикла for
- •Оператор цикла while
- •Оператор цикла repeat
- •Пример приложения 6
- •Пример приложения 7
- •Статические массивы
- •Динамические массивы
- •Оператор with
- •Идентичность типов
- •Совместимость типов
- •Преобразование типов
- •Операторы обработки исключительных ситуаций
- •Рекурсия
- •Процедура exit
- •Директивы подпрограммы
- •Класс как объектный тип
- •Наследование
- •Операции is и as
- •Типы ссылки на класс
- •Типизированные файлы
- •Файлы без типа
- •Пример приложения 17
- •Компонент tmainmenii
- •Двунаправленные списки
- •Потоки данных
- •Пример приложения 22
- •Интерфейс drag and drop
- •Пример приложения 24
- •С файлами
- •Пример приложения 26
- •Программные потоки
- •Приоритеты потоков
- •Класс tthread
- •Проблемы синхронизации потоков
Графические данные и палитра
Традиционно графические данные подразделяются на два типа: векторные и растровые.
В компьютерной графике векторные данные обычно используются для представления прямых, многоугольников, кривых (или любых объектов, созданных на их основе) с помощью определенных в численном виде контрольных ключевых точек. Программа воспроизводит линии посредством соединения ключевых точек. С векторными данными всегда связаны информация об атрибутах (цвете, толщине линий) и набор соглашений (или правил), позволяющих программе начертить требуемые объекты. Понятие вектор в данном случае определяет отрезок линии.
Растровые данные представляют набор числовых значений, определяющих цвета отдельных точек, расположенных на правильной сетке и формирующих образ. Таким образом, растр (bitmap) - это массив точек, заданный с помощью массива числовых значений окраски отображаемого образа. Очень часто числовые значения (три или четыре числа на один пиксел), задающие тот или иной пиксел в растровой картинке, называют просто пикселом.
Количество возможных цветов (глубину цвета) пиксела определяет битовая глубина. Однобитовый пиксел может быть одного из двух цветов, четырехбитовый - одного из 16 и т. д. На сегодняшний день, в основном, используется глубина цвета в 24 и 32 бита (возможны варианты в 1, 2, 4, 8, 15,16 бит).
Изображения в растровом формате представляют собой набор точек, организованных в виде последовательности строк, называемых строками развертки. Значения в формате представления (например, записанные в файл) точек растра обычно упорядочены таким образом, чтобы их легко можно было отобразить практически на любом растровом устройстве.
Чтобы передать цвет, нужно задать несколько значений (обычно три), определяющих интенсивность каждого из основных цветов (цветовых каналов), которые смешивают для получения составных цветов. Конкретный цвет представляет собой точку в цветовом пространстве.
Наиболее распространенным способом передачи цвета является модель RGB. В этой модели основными являются цвета: красный (Red), зеленый (Green) и синий (Blue). Цвет задается посредством RGB-триплета. Каждый пиксел физически определяется триадой веществ. Обычно используются оксиды: цинка (зеленый), меди (синий), европия (красный). При сохранении цветовых данных в файле триплет записывают в виде чисел. Если глубина
19
цвета равна 24 битам, например, по 8 бит на каждый основной цвет, то диапазон значений цвета для каждого байта равен 0...255. Причем, чаще всего, принимают, что пикселные значения (0, 0, 0) соответствуют черному цвету, (255, 255, 255) - белому, (255, 0, 0) - красному, а, например, триплет (127, 127, 127) определяет один из вариантов серого. Таким образом, теоретически данная схема описывает около 16,7 млн составных цветов.
Довольно часто набор цветов, который задается в файле, отличается от того, который может быть отображен на конкретном устройстве. Задача согласования наборов цветов обычно решается программой визуализации, которая осуществляет преобразование цветов, заданных в файле, в цвета устройства отображения. Если количество цветов, заданных пикселными значениями в файле, меньше количества цветов, которое может отображать устройство вывода, то проблем обычно не возникает, в противном случае происходит потеря данных, и могут появиться нежелательные эффекты. В любом варианте программа визуализации должна выполнить определенную работу, сопоставляя наборы цветов источника и адресата.
Значения триплета непосредственно передаются устройству отображения. При записи этих значений в файл может осуществляться кодировка с помощью палитр. Палитра представляет собой одномерный массив цветовых величин. С помощью палитры цвета задаются косвенно посредством указания их позиций (индексов) в массиве. Это позволяет сократить объем файлов. Например, 4-битовые пикселные данные могут использоваться для представления изображений, содержащих 16 цветов. Определив для этих 16 цветов палитру, данные в файл1 записываются в виде чисел из диапазона 0...15. Программа визуализации, читая данные из файла, перекодирует их в соответствии с палитрой в триплеты, которые и используются для окрашивания точек на устройстве вывода. При глубине цвета 24 и выше палитра не используется.
В настоящее время часто используется глубина цвета в 32 бита. Данный режим работы графического устройства похож на режим в 24 бита, но в нем добавлен четвертый 8-битовый канал (альфа-канал), содержащий дополнительную информацию о прозрачности каждой точки. Существует режим pfCustom, предназначенный для реализации программистом собственных конструкций.
НЕКОТОРЫЕ ОБЩИЕ СВОЙСТВА КОМПОНЕНТОВ
Рассмотрим некоторые общие свойства компонентов и формы. Эти свойства задаются с помощью страницы Properties инспектора объектов или программным путем.
Align - задает тип выравнивания компонента внутри формы (по умолчанию равно alNone).
Caption - заголовок компонента (надпись на компоненте). Могут ис-пользоватья русские буквы.
Color - цвет фона для формы или компонента. Цвет можно задавать при помощи обозначений, например зеленый - clGreen, или шестнадцатеричных констант (зеленый - $008000).
Height - вертикальный размер в пикселах.
Enabled - если это свойство равно True, то компонент реагирует на действия пользователя (сообщения мыши, клавиатуры), иначе эти сообщения игнорируются.
Hint - задает текст (подсказка), который будет отображаться при нахождении курсора в области компонента.
Left - горизонтальная координата левого угла компонента относительно формы в пикселах. Для формы это значение указывается относительно экрана дисплея.
Name - задает имя компонента (идентификатор), которое будет использоваться в программе.
ParentColor - если значение этого свойства равно True, то компонент будет отображаться цветом родительского компонента, иначе используется собственное свойство Color.
TabOrder - задает порядок получения компонентами на форме фокуса при нажатии клавиши Tab. По умолчанию этот порядок определяется последовательностью размещения компонентов на форме. Для изменения этого порядка необходимо явно изменить значения свойства TabOrder компонентов. Следует отметить, что компонент, значение TabOrder которого равно 0, получает фокус при отображении формы. Использование свойства TabOrder зависит от значения свойства TabStop.
TabStop - это свойство позволяет указать, может ли компонент получать фокус или нет.
Тор - вертикальная координата левого верхнего угла интерфейсного элемента относительно формы.
Visible - определяет видимость компонента.
Width - горизонтальный размер интерфейсного элемента или формы в пикселах.
Сведения о перечисленных выше свойствах помогут сориентироваться при первом знакомстве со средой Delphi.