Структура на Delphi-приложение



страница1/6
Дата18.09.2016
Размер401.28 Kb.
#10237
  1   2   3   4   5   6
Структура на Delphi-приложение

Delphi-проектът е съвкупност от файлове, които заедно изграждат Delphi-приложение или динамична библиотека. Някои от тези файлове се генерират в дизаин-режим, когато работите над проекта. Други се създават, когато компилирате сорс-кода на този проект.

Когато стартирате Delphi по подразбиране се отваря празен проект. Ако друг проект е вече отворен изберете File/New Application, за да създадете нов проект. Delphi автоматично създава следните два файла:


  • Unit1.pas: файл, наречен модул, който се асоциира с главната форма на проекта;

  • Project1.dpr: файл, който указва използваните форми и съответстващите им модули във вашия проект.

За всеки нов проект Delphi генерира форма, която се визуализира на екрана и по подразбиране се нарича Form1. Формите и обектите, които поставяте върху тях ви позволяват да създадете потребителски интерфейс за своето приложение.

Обектът е функционално завършена единица от данни и код. Той може да се разглежда като съвкупност от даннови елементи. Подобно на записите той също има полета с определен тип. За разлика от записите обаче включва код – процедури и функции, работещи с данните от тези полета. Процедурите и функциите се наричат методи /methods/. Това всъщност са действията, които обектът може да изпълнява. Освен методи обектът притежава и свойства /properties/, които имат определени стойности по подразбиране и представят съдържанието на данни в него. Стойностите могат да се модифицират както в дизаин-режим, така и в режим на изпълнениена проекта. Третата основна характеристика на обекта са събитията /events/, представляващи условията, на които той реагира.

Класът е тип данни, дефиниран от потребителя, който има състояние /представяне/ и няколко операции /поведение/. Той описва родовите характеристики и поведението на даден брой сходни обекти. Обектът е инстанция на даден клас, т.е. променлива от типа данни, който е дефиниран от класа. Обектите са действителни величини. Когато програмата се изпълнява, те заемат някаква памет за вътрешното си представяне. Взаимовръзката между обекти и клас е същата, както между променлива и тип. Класовете формират йерархия. Всички класове са наследници на класа TObject. Една част от тях са свързани с компонентите, а друга- дефинират типове данни за свойствата на компонентите. Втората група класове обикновено са наследници на класа TPersistent. Примерно свойството Items на списъка е обект от класа TString.

Delphi генерира автоматично следния код за всеки нов проект:


program Project1;

uses

Forms,


Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;



end.
Project1 е идентификатор на проекта, който Delphi използва и като име на проетния файл. Ключовата дума Program указва, че проектът е приложение.

Клаузата Uses указва на компилатора кои модули се включват в проекта. Forms е идентификатор на стандартен модул, който се включва във всчки Delphi-проекти, използващи форми и е свързан с класа TApplication.

Unit1 е идентификатор на модула. 'Unit1.pas' представя името на файла, съдържащ кода на съответния модул. За коректното компилиране на проекта е необходимо идентификатора на модула и името на файла да съвпадат. Ключовата дума in указва на компилатора къде да намери кода на всеки модул.

По подразбиране всеки Delphi-проект, който се компилира като приложение притежава ресурсен файл със същото име както проектния файл, но с разширение .res. Директивата $R указва, че именно този файл ще бъде добавен към вашия проект.

Блокът begin…end включва главния код на проекта. TАpplication е клас, който инкапсулира прозоречни приложения. Методите и свойствата представени в TApplication рефлектират върху създаването, изпълнението, съхранениети и унищожаването на приложения, фундаментално заложени в операционната система Windows. TАpplication прави разбираем интерфейса между потребителя и Windows-средата при създаването на приложения за Windows. Всяко Delphi-приложение декларира обект Application от клас TApplication. Прозорецът, свързан с обекта Application, обединява всички прозорци в програмара. Този прозорец е невидим, тъй като има нулева височина и ширина. Изразът Application.CreateForm зарежда формата с нейните параметри. Този израз Delphi добавя за всяка форма, включена в проекта. Изразите следват реда на добавяне на формите в проекта. Това всъщност е реда, в който формите ще бъдат създавани в паметта при стартиране на приложението. Изразът Application.Run стартира вашето приложение.

Винаги когато създавате нова форма за проекта Delphi генерира модулен файл със следния код:


unit Unit1; { unit identifier }

interface

uses { uses clause }

SysUtils, Windows, Messages, Classes, Graphics, Controls,

Forms, Dialogs;

type

TForm1 = class(TForm) { class declaration }



private

{ Private declarations }



public

{ Public declarations }



end;

var

Form1: TForm1; { instance declaration }



implementation

{$R *.DFM} { compiler directive to link form file }



end.

Всеки модул започва с резервираната дума Unit, след която следва името на съответния модул. Следва резервираната дума interface, която обозначава интерфейсната част на модула, ограничена от резервираната дума implementation. Тази част е видима за други модули и приложения, използващи този модул. В нея можете да декларирате константи, типове данни, променливи, процедури и функции. Частта implementation съдържа тялото на тези процедури и функции.

Директивата type в интерфейсната част служи за декларирането на нов клас TForm1, който наследява класа TForm. Така всички елементи на TForm стават част от TForm1. С var се декларира конкретен обект Form1, като проявление на класа TForm1. Директивата $R указва ресурсния файл на формата.

Клаузата uses може да се появи както в интерфейсната част, така и в частта implementation:



  • interface

Ако в текущия модул използвате декларация, декларирана в интерфейсната част на друг модул, то е необходимо да включите името на този модул в uses клаузата на текущия модул.

Uses клаузата на интерфейсната част включва идентификатори на няколко стандартни модула като:

Classes: описва класа TComponent

Всички компоненти в Delphi наследяват класа TComponent. Този клас инкапсулира основните методи и свойства, свързани със способността на компонентите да се появяват в палитрата с компоненти и възможността да бъдат манипулирани в дизаин-режим, способността им да притежават и управляват други компоненти и т.н.

Controls: описва класа TControl

TControl е абстрактен основен клас за всички визуални компоненти. По същество контролите са визуални компоненти, които потребителя може да види и променя в режим на изпълнение.

SysUtils: описва класа Exception

Exception е основен клас за всички изключения, възникващи по време на изпълнение. Всички методи, представени в този клас, са конструктори, осигуряващи начини за изработването на съобщения за грешки. Приложението извиква тези констуктори динамично при появата на грешки. Съществуват различни изключения, отнасящи се до проблеми в програмата /деление на нула, грешно преобразуване на типовете/, до проблеми в Windows /недостатъчна памет/ или до грешки в компонентите /грешен идекс/. Възможно е да дефинирате собствени изключения, като създадете нов клас наследник на класа Exception.



  • implementation

Модулите, използващи даден модул, не могат да използват модулите, изброени в uses клаузата на интерфейсната част на този модул. Ако модул Б е в uses клаузата на частта implementation на модул А, то модул А може да бъде в uses клаузата на частта implementation на модул Б. Това не е позволено за интерфейсната част.

Ключовата дума private показва, че полетата и методите на класа не са достъпни извън модула, в който е деклариран класът. Ключовата дума public показва, че полетата и методите на класа са достъпни от всяка друга част на програмата, а не само от модула, в който са дефинирани. Ключовата дума protected се използва, за да покаже, че полетата и методите са с ограничен достъп. Единствено текущия клас и неговите наследници имат право на достъп до тези елементи. Съществува и четвърти спецификатор, наречен published. Полетата и методите със спецификатор за достъп published са достъпни не само по време на изпълнение на програмата, но и по време на създаване на програмата. Всички компоненти от палитрата с компонентите имат published полета и методи.



  • initialization

Частта initialization се добавя към модула, ако желаете да инициализирате данни. За целта се използва резервираната дума initialization, която се поставя в края на модула. Тази част не е задължителна. Когато приложението използва един модул, кода в инициализационната секция се извиква преди изпълнението на всеки друг код от това приложение.

  • finalization

Ако искате да реализирате някакви оптимизации при приключване на приложението, като например освобождаване на ресурсите, заети в частта initialization, е необходимо да добавите към модула още една част, нареяена finalization. Finalization частта следва яастта initialization. Когато приложението приключва, то изпълнява финалните секции на своите модули в ред, обратен на тяхното инициализиране.

Когато стартирате Delphi на вашия екран ще се появят някои от главните инструменти, с помощта на които можете да създадете приложение:



  • Главно меню

Менюто осигурява на потребителя лесен начин да изпълнява логически групирани команди.

  • Панел за бърз достъп

Бутоните от този панел ви осигуряват бърз достъп до някои от командите на главното меню, като отваряне на файл или проект, добавяне на файл към проект, съхранение на файл или проект, избор на форма или модул от проекта и др.

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

Компонентите са визуални или невизуални обекти, които изграждат вашето приложение. Те са наследници на класа TComponent. Компонентите се разделят на две групи: визуални компоненти, наречени контроли и невизуални компоненти. Контролите наследяват класа TControl. Те имат позиция и размер на екрана и позицията по време на създаване на формата се запазва и по време на изпълнение на програмата. Контролите са два вида: прозоречни и графични. Прозоречните контроли наследяват класа TWinControl, което означава, че имат манипулатор на прозорец. Тъй като не са базирани на прозорец, графичните контроли не могат да получават фокус и не могат да съдържат други контроли. Невизуални са всички компоненти, наследници на класа TComponent, но не и на TControl. Невизуалните компоненти се появяват под формата на икони по време на създаване на формата. Те не са видими по време на изпълнение на програмата, въпреки че могат да управляват нещо, което е видимо. Палитрата с компонентите има няколко страници, всяка от които съдържа група от икони, представящи определени компоненти:

Стандартни компоненти /Standard Components/

Тези компоненти правят достъпни за вашето приложение стандартните контроли на Windows. Това са етикети, бутони, падащи менюта и др.

Допълнителни компоненти /Additional Components/

Тези компоненти правят достъпни за вашето приложение специализирани Windows-контроли.

Системни компоненти /System Components/

Това са специални системни компоненти като Timer, PaintBox и др.

Win3.1 компоненти

Това са компоненти за достъп до файлове, директории и дискови устройства и др.

Компоненти за достъп до данни /Data Access Components/

Това са компоненти, осигуряващи достъп до бази от данни или предоставящи възможност за запитвания към тях.

Компоненти за управление на данни /Data Controls Components/

Това са компоненти за визуализация на данни.

Диалогови компоненти /Dialogs Components/

Тези компоненти правят достъпни за вашето приложение стандартните диалогови кутии на Windows. Диалоговите кутии осигуряват унифициран интерфейс за файлови операции, като отваряне, съхранение и печат на файл.


  • Инспектор на обектите

Инспектортт на обектите осигурява връзка между визуалния вид на вашето приложение и кода, осигуряващ неговото изпълнение. Той прави достъпни свойствата на обектите в дизаин-режим и предоставя възможност за управление на техните събития посредством методи. Инспекторът на обектите има две страници:

Страница на свойствата /Properties page/

Ако искате да променяте свойство на обект в режим на изпълнение е необходимо да напишете код, отнасящ се до дадено събитие. При възникването на това събитие се изпълнява методът, свързан с него. Когато използвате инспектора на обектите, за да добавите такъв код, Delphi генерира заглавие на процедура и блок begin..end.

Пр.:


procedure TForm1.Button1Click(Sender: TObject);

begin
end;

Кодът, включен в блока begin..end ще се изпълнява винаги, когато Button1 е натиснат.

Страница на събитията /Events page/

Страницата на събитията ви позволява да свържете обектите с потребителски или системни събития. Тя показва събитията само на текущо избрания обект. При двойно натискане с мишката върху дадено събитие Delphi създава метод и пренасочва фокуса към редактора на кода.



  • Редактор на кода

Редакторът на кода ви осигурява достъп до кода, който изпълнява вашето приложение. Когато отворите нов проект Delphi добавя страница в редактора на кода за модула на главната форма. При компилация съобщенията за грешки се извеждат в рамките на този редактор.

  • Прозорец на формата




Каталог: project -> staf
project -> Г бнр безработицата в Ловешко бележи спад за пореден месец
project -> И радиационна защита
project -> Програма на С, която генерира и извежда на екрана редица от числа на Фибоначи: от 1 до зададено от потребителя число оценка: 4
project -> Нсорб до есента ще има единен регистър за хора с психични заболявания
staf -> Бази данни
staf -> Най-популярният език за създаване на интерактивни и динамични web сайтове е php
staf -> Управление на съобщенията за грешка


Сподели с приятели:
  1   2   3   4   5   6




©obuch.info 2024
отнасят до администрацията

    Начална страница