Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ELIK / ELIK / ALL.DOC
Скачиваний:
8
Добавлен:
16.04.2013
Размер:
4.19 Mб
Скачать

Технология программирования с использованием средств быстрой разработки приложений. Введение.

Тема данной главы - технология быстрой разработки приложений - RAD (Rapid Application Development). Данная технология сравнительно нова, но она быстро становится популярной, многие производители средств разработки приложений взяли эту технологию на вооружение.

Хотя это и новый подход в программировании, но и до появления RAD–средств делались попытки облегчить труд программиста, сделать этот труд более продуктивным, повысив этим быстродействие и удобство создания приложений. Первоначально появились интегрированные среды разработки - IDE (Integrated Development Environment), объединяющие компилятор, специальный текстовый редактор, ориентированный на работы с текстами на целевом языке программирования и средства отладки - трассировщик—дебаггер и другие. По сравнению с предыдущими средствами программирования это был большой шаг вперед, но затем появились CASE–средства, которые позволяли максимально визуализировать процесс создания программы, но пользоваться ими было чересчур неудобно из-за их негибкости. В большинстве случаев написать достаточно сложную программу было очень трудно. Сейчас эти средства используются там, где подход достаточно однообразен - например при написании средств работы с базами данных.

Средства же быстрой разработки приложений (в дальнейшем - RAD–средства), взяв все лучшее из интегрированных сред разработки и CASE систем, объединили мощь и гибкость работы с исходными текстами с удобством создания графического интерфейса пользователя - GUI (Graphic User Interface). К сожалению, большинство RAD–средств не позволяют визуализировать логику самой программы, но и те методы, которые заложены в современные RAD–средства, позволяют поднять производительность разработки программ в 2-3 раза.

Первой вариантом RAD–средств можно назвать продукт фирмы Microsoft - Visual Basic, появившийся в начале девяностых годов. Но пик популярности подобных средств наступил совсем недавно - сразу несколько ведущих фирм по производству средств создания приложений анонсировали новые версии своих продуктов, которые уже могут по праву называться RAD–средствами. Среди них можно назвать Microsoft Visual C++, Microsoft Visual Java, Power Builder (PowerSoft), Optima++ (PowerSoft), Borland Delphi, Borland C++ Builder и много других. В данной главе основной акцент будет делаться на систему Borland Delphi 3, поскольку именно эта среда использовалась при разработке программы в рамках данного дипломного проекта. Соответственно, большее внимание будет уделяться и диалекту языка Pascal - Object Pascal, который используется в качестве языка программирования в среде Delphi.

Особенности rad–средств.

Две основных черты RAD–средств - это визуальная компонентность и многократное использование кода. Каждая из этих черт предназначена для повышения производительности программирования. Рассмотрим их подробнее.

Визуальная компонентность.

Данный подход является логическим развитием объектно-ориентированного программирования (ООП). Каждый компонент имеет свои события (events), методы (methods) и свойства (properties). Методы и события пришли из объектно-ориентированного программирования, а свойства являются привилегией компонентного подхода. Свойства позволяют изменить состояние компонента, причем как динамически - во время работы программы, так и статически - визуально во время разработки. Естественно, что компоненты имеет все те особенности, что и объекты в объектно-ориентированном программировании - наследование, полиморфизм и инкапсуляция. Таким образом, описание типичного компонента выглядит следующим образом:

TBitBtn = class(TButton)

private

FCanvas: TCanvas;

FGlyph: Pointer;

FStyle: TButtonStyle;

FKind: TBitBtnKind;

FLayout: TButtonLayout;

FSpacing: Integer;

FMargin: Integer;

IsFocused: Boolean;

FModifiedGlyph: Boolean;

procedure DrawItem(const DrawItemStruct: TDrawItemStruct);

procedure SetGlyph(Value: TBitmap);

function GetGlyph: TBitmap;

function GetNumGlyphs: TNumGlyphs;

procedure SetNumGlyphs(Value: TNumGlyphs);

procedure GlyphChanged(Sender: TObject);

function IsCustom: Boolean;

function IsCustomCaption: Boolean;

procedure SetStyle(Value: TButtonStyle);

procedure SetKind(Value: TBitBtnKind);

function GetKind: TBitBtnKind;

procedure SetLayout(Value: TButtonLayout);

procedure SetSpacing(Value: Integer);

procedure SetMargin(Value: Integer);

procedure CNMeasureItem(var Message: TWMMeasureItem); message CN_MEASUREITEM;

procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM;

procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;

procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;

procedure WMLButtonDblClk(var Message: TWMLButtonDblClk);

message WM_LBUTTONDBLCLK;

protected

procedure CreateHandle; override;

procedure CreateParams(var Params: TCreateParams); override;

function GetPalette: HPALETTE; override;

procedure SetButtonStyle(ADefault: Boolean); override;

public

constructor Create(AOwner: TComponent); override;

destructor Destroy; override;

procedure Click; override;

published

property Cancel stored IsCustom;

property Caption stored IsCustomCaption;

property Default stored IsCustom;

property Enabled;

property Glyph: TBitmap read GetGlyph write SetGlyph stored IsCustom;

property Kind: TBitBtnKind read GetKind write SetKind default bkCustom;

property Layout: TButtonLayout read FLayout write SetLayout default blGlyphLeft;

property Margin: Integer read FMargin write SetMargin default -1;

property ModalResult stored IsCustom;

property NumGlyphs: TNumGlyphs read GetNumGlyphs write SetNumGlyphs stored IsCustom default 1;

property ParentShowHint;

property ShowHint;

property Style: TButtonStyle read FStyle write SetStyle default bsAutoDetect;

property Spacing: Integer read FSpacing write SetSpacing default 4;

property TabOrder;

property TabStop;

property Visible;

property OnEnter;

property OnExit;

end;

В данном примере описан стандартный компонент TBitBtn, наследующий от стандартного класса Tbutton - стандартная кнопка, используемая повсеместно в Windows. Он имеет четыре секции в описании - private, protected, published и public. Данные секции регламентируют доступ к методам, полям и свойствам, находящимся в них для других компонент и для программ пользователя.

Соседние файлы в папке ELIK