Өрiстер
|
Форманы жобалау кезінде Delphi 7 қосымшасы Бағдарлама текстіне қажетті обьектілерді автоматты түрде қосып отырады. Бағдарламалаушы форма оқиғасын немесе оның компонентін өңдеу функциясын құрғанда, Delphi 7 қосымша форма класынын сипаттамасына әдісті хабарлауды қосады.
|
interface
type
TMyClass=class(TParentClass)
private
FField: integer
protected
function GetField: string;
procedure SetField(AValue: string);
published
|
Қасиеттер
|
Delphi 7 тілінде обьект алаңдарына енуге шектеу қою обьект қасиеттерінің көмегімен орналасады. Обьект қасиеті, осы қасиеттің мәнін сақтайтын алаңмен және қасиет алаңына енетін екі әдіспен сипатталады. Қасиеттің мәнін алатын әдіс қасиетті оқу әдісі деп аталады. Класс сипаттамасында қасиет атының алдында property (қасиет) сөзі жазылады. Қасиет атынан соң оның типі, сонан соң қасиет мәндеіне енуді қамтамассыз ететін әдістердің аттары көрсетіледі.
|
property PField: string
read GetField write SetField;
end;
var MyObj: TMyClass; implementation
function TMyClass.GetField: string;
begin
Result:=IntToStr(FField);
end;
procedure TMyClass.SetField(AValue: string);
var x,Code: integer;
begin
Val(AValue,x,Code);
if (x<>FField) and (Code=0) then
begin
FField:=x;
end;
end;
end.
|
Әдiстер
|
Әдіс орындалу үшін обьект аты мен әдіс атын бір-бірінен нүкте арқылы ажыратып көрсету қажет.
Бағдарламаны дайындау барысында Delphi 7 модульінiң Interface бөлiмiде формаға енгiзiлген компоненттер мен оқиға таңдалған әдiстердi сипаттауавтоматты түрде енгiзіледі, әдiстердi iске асыру нұсқаулары модульдiң implementation бөлiмiне қолымен жазылады.
|
constructor TSampleControl.Create = class(TWinControl)
begin
inherited Create(AOwner) ;
FHeight := 25;
FWidth := 50;
FColor := clWindows;
end;
|
Объект
|
Өрiстер, қасиеттер және әдiстердiң бiрлiгiнен тұратын тип немесе жалпы түрде, өңдеу әдiстерi не қасиеттерi ортақ түрде сипатталатын объектiлер (нысандар) жиынтығы. Delphi 7-дегі динамикалық құрылым. Айнымалы обьект мәліметтерден емес, обьектінің мәліметтеріне сілтемеден тұрады. Сондықтан бағдарламалаушы осы мәліметтер үшін жады бөлуді ойластырылуы тиіс.
|
Var
Flower: Tperson;
Rose:Tperson;
|
Оқиға
|
Жүйе объект үшiн жадтың динамикалық облысынан арнайы орын қалдырады. Яғни, шын мәнiнде, объект жай айнымалы емес, ол - жадтың динамикалық облысының кездейсоқ адресiн сақтайтын көрсеткiш.
Объект құрылған кезде автоматты түрде конструктор (constructor) деп аталатын әдiс шақырылып, ол объектiнi динамикалық облыста орналастырады, динамикалық жадтан объектiнi арнайы деструктор (destructor) әдiсi жояды.
|
TControl компонентіне оқиға:
type
TControl = class(TComponent)
private
FOnClick : TNotifyEvent;
FOnDblClick : TNotifyEvent
20
FOnMouseDown : TMouseEvent;
FOnMouseMove : TMouseMiveEvent;
…
protected
procedure Click; dynamic;
property OnClick: TNotifyEvent
read FOnClick write FOnClick;
property OnDblClick : TNotifyEvent
read FOnDblClick write OnDblClick;
property OnMouseDown : TMouseEvent
read FOnMouseDown write FOnMouseDown;
property OnMouseMove : TMouseMoveEvent
read FOnMouseMove write FOnMouseMove;
…
end;
|
Kласс
|
Delphi 7-нің интерфейсін жүзеге асыру үшін кластар кітапханасын қолданады. Онда формада қолданылатын әртүрлі кластардың үлкен саны және форманың әртүрлі компоненттері қамтылған. Delphi 7-де класс атауын T әрпiнен бастау келiсiлген. Формаға енгiзiлген компонент данасы сандық индекс қосылған класс атауын алады. Кластың өрiстерi мен қасиеттерiн өңдейтiн процедуралар мен функциялар класс обьектілеріне арналған іс-әрекеттерді орындайды.
Мұндағы класс мүшелерi - өрiстер, қасиеттер және әдiстер.
TForm1 = class (TForm) жазуы TForm класының үлгiсiмен құрылатын жаңа (туынды) TForm1 класын анықтайды. Form1 : TForm1 жолындағы Form1 айнымалысы - класс данасы
|
Туынды кластың сипатталу түрi:
type
<туынды класс атауы>=class (<негiзгi класс атауы>);
<класс мүшелерiнiң тiзiмi>
end;
var
<объект> : <класс атауы>;
Мысалы,
type
TForm1 = class (TForm)
Button1 : TButton;
Label1 : TLabel;
Procedure Button1Click ( Sender : TObject);
end;
var Form1 : TForm1;
|
Объектiлi бағдарламалауда барлық кластар иерархиялық түрде негiзгi TObject класынан тарайды (Tobject Tpersistent Tcomponent …). Әдетте негiзгi класты аталық, бағыныңқы кластарды туынды не сәбилiк кластар деп атайды (TObject – барлық кластардың арғы атасы, TComponent – барлық иерархиялық компоненттердiң жоғарғысы (компонент деп Tcomponent класының мұрагерi болатын класс данасын атайды)). Әр ұрпақ өзiнiң аталық класының мүмкiндiктерiн (өрiстерiнiң, қасиеттерiнiң, әдiстерiнiң сипаттамаларын) қабылдайды. Мысалы, TObject класының Create (бастапқы мән меншiктеу (инициалдау)) әдiсi барлық туынды кластарға тиiстi (TObject класында конструктор Create деп аталады). Әр ұрпақ өзiне қосымша жаңа мүмкiндiктер (сипаттамалар) қосып, келесi ұрпақтарға беруi мүмкiн (1-сурет).
1.1-сурет. Фигуралар класы
Жалпы, Delphi 7-де класс деп өзiне ұқсас даналарды дайындау үшiн үлгi түрiнде алынатын, толық түрде дайындалған бағдарлама үзiндiсiн деп те атайды. Бағдарламалаушы бұрын дайындалған класс данасының көшiрмесiн түрлi бағдарламаларға не бiр бағдарламаның түрлi жерлерiне енгiзiп, бағдарламалауды және оның көлемiн көп жеңiлдетуiне болады.
Delphi 7 құрамына жүздеген дайын кластар енгiзiлген. Әр компонент қатаң түрде тек бiр класқа ғана тиiстi. Мысалы, Delphi 7-де форма (TForm) компонентi – Forma класына тиiстi, осы типтi айнымалы (Form1) – класс объектiсi. Класс бөлiгi ретiнде сипатталып, модульдiң Implementation (iске асыру) бөлiгiнде мәтiнi жазылатын сәйкес процедура – әдiс, мысалы, procedure TForm1.Button1Click.
Обьектілі-бағытталған бағдарламалауда класс үшiн мұрагерлiк, инкапсуляция және полиморфизм принциптерi енгiзiлген.
Достарыңызбен бөлісу: |