русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Элементы управления


Дата добавления: 2013-12-23; просмотров: 1688; Нарушение авторских прав


ПОСТРОЕНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА

ФУНКЦИИ РАБОТЫ С ДАТОЙ И ВРЕМЕНЕМ

(стр 92)

 

 

Основные понятия:

VCL (Visual Components Library) – библиотека визуальных компонент.

CLX(Component Library for Cross Platform -библиотека компонентов кроссплатформенного программирования)

 

Компонент – любой класс, порожденный от класса TComponent. То есть это класс, имеющий опубликованные свойства, объект которого содержится в палитре компонентов. Это так называемые “строительные кирпичики” для создания приложений. TComponent является предком всех компонентов VCL-библиотеки. Владельцем всех компонентов, расположенных в форме, является сама форма. Владельцем всех форм является приложение.

 

 

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

Предком для всех компонентов является класс TComponent. Он содержит несколько свойств и методов, общих для всех потомков. В первую очередь каждый компонент обладает собственным именем. Все компоненты в программе взаимосвязаны: каждый компонент имеет владельца и сам может быть владельцем других компонент. Свойство компонента:

property Owner: TComponent;

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



Предком класса TComponent служит класс TPersistent: в нем реализован виртуальный метод Assign – основа для копирования объектов VCL.

 

 

 

Потомком класса TComponent является класс TControl – элемент управления Windows. Все что видит пользователь в клиентской области формы, порождено от класса TControl. Таким образом, потомки TControl являются визуальными компонентами. Этот класс уже обладает “поведением” – в нем предусматривается реакция на основные события. Но объект класса TControl не является окном Windows и не может получить фокус ввода.

Понятие окна Windows инкапсулировано в потомке TControl – классе TWinControl. Такой компонент получает соответствующий атрибут – дескриптор окна.

В библиотеке VCL классы TControl и Twincontrol являются предками всех компонентов, которые должны уметь отображать себя на экране при помощи графических средств операционной системы. В библиотеке CLX(Component Library for Cross Platform -библиотека компонентов кроссплатформенного программирования) аналогичную задачу выполняют классы TControl и TWidgetControl. Они обеспечивают работоспособность компонентов-потомков в качестве экранных объектов widget. Widget — класс, объекты которого должны менять свое поведение в зависимости от состояния. Большинство свойств и методов классов Twincontrol и TWidgetControl совпадают. Однако есть и различия, вызванные особенностями графических интерфейсов операционных систем Windows и Linux.

Благодаря созданию специального варианта библиотеки VCL, которая называется Component Library for Cross Platform (CLX) стала возможной кроссплатформенная разработка приложений в Delphi Большинство свойств и методов компонентов VCL и CLX идентичны. А существующие различия вызваны необходимостью использования специальных объектов - widget и особенностями представления визуальных элементов в Linux.

Каждый визуальный компонент унаследует от класса TControl такие важные свойства как:

1) property BoundsRect: TRect; - определяет прямоугольник, содержащий координаты верхнего левого и правого нижнего углов компонента в системе координат клиентской области родительского элемента. Можно установить положение и размер компонента, изменяя координаты верхнего левого угла, длины и ширины методом:

procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer; virtual;

пример: Button1.SetBounds(150,150,200,80);

Кроме того, к каждой из этих величин есть раздельный доступ с помощью свойств:

2) property Left: Integer;

3) property Top: Integer;

4) property Width: Integer;

5) property Height: Integer;

 

6) property Visible: Boolean; - определяет возможность видимости элемента.

7) property Align: TAlign; - определяет выравнивание компонента относительно границ родителя. Может принимать такие значения как alNone– выравнивание отсутствует, alTop, alLeft, alRight, alBottom– выравнивание происходит по соответствующей стороне родителя.alClient– занимает все пространство клиентской области родителя.

 

Форма, работа с формами(стр 349)

Приложения, создаваемые в среде Delphi, как, впрочем, и любые другие Windows-программы, сосредоточены вокруг форм – окон приложения.

Форма – контейнер, в котором размещаются другие визуальные и невизуальные компоненты.

К каждой форме в Delphi привязываются 2 файла. Один из них, с типичным для языка Pascal расширением pas, является программным модулем (unit), описывающим класс формы и все ее компоненты. Другой файл, имеющий тип dfm, описывает расположение всех компонент на форме, их свойства, а так же параметры самой формы – т.е. все то, что можно настроить при помощи инспектора объектов.

Пример файла dfm:

object Form1: TForm1

Left = 192

Top = 114

Width = 870

Height = 600

Caption = 'Form1'

Color = clBtnFace

Font.Charset = DEFAULT_CHARSET

Font.Color = clWindowText

Font.Height = -11

Font.Name = 'MS Sans Serif'

Font.Style = []

OldCreateOrder = False

PixelsPerInch = 96

TextHeight = 13

object Button1: TButton

Left = 296

Top = 168

Width = 75

Height = 25

Caption = 'Button1'

TabOrder = 0

end

end

 

Что касается другой составляющей формы – файла pas, который мы, собственно и видим в паре с ее визуальным представлением, то в нем хранится описание формы как класса, а так же подпрограмм, типов и переменных, не являющихся частью формы как таковой, но по тем или иным соображениям помещенных в данный файл. Применительно к той же самой форме, содержащей лишь одну простую кнопку, pas-файл для нее будет выглядеть так, как представлено на листинге 11.2.

Листинг 11.2. Программный файл формы

unit pro2;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

 

type

TForm1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

end.

 



<== предыдущая лекция | следующая лекция ==>
ФУНКЦИИ РАБОТЫ С ФАЙЛАМИ | Hierarchy


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.