Кодтар класын өзгерту.
Қолданбалы класс құру барысында қорытынды
этапы болып, автоматты түрде құрылған кодты өзгерту болып табылады.
Жоғарыдағының бəрін орындау барысында сізде жаңа Round класы жаңа
автоматты түрде енгізілген кодымен бірге беріледі. Бітіру барысында
классты құру классты құрғыш мəзірінде өзіне тəн кодтар терезесі ашық
тұрады.
Мұнда бірнеше енгізулер енгізу қажет. Round
əдісінде
көрсетілген командалар тізімін нұсқау қажет. Бұл өзгертулер тізімі 5.1.
листингісінде көрсетілген.
Мұнда
Prop erty Let
и
Property Get
процедураларына аса назар аудару
қажет. Бұл процедуралар автоматты түрде енгізіп қойылады. Бұл
процедуралар
Let
қасиеттерін орнату барысында жəне қарапайым
Get
мəнін
шақыру барысында орнатылады.Аталған тарауда қозғалған
сұрақтарға ActiveX басқару элементтері тақырыбына 17 тарауда
көрсетілген.
' сақтау үшін локальды ауыспалылар
' Қасиет мəндері
Private mvarR As Integer
Private ravarX As Integer
Private xnvarY As Integer
Private mvarColor As Long
Public Sub ChangeColor(NewColor As Long)
Color = NewColor
Draw
End Sub
Public Sub Move(XStep As Integer, _
YStep As Integer)
Forml.Circle (X, Y), R, Forml.BackColor
X = X + XStep
Y = Y + YStep
Draw
End Sub
Public Sub Draw()
Forml.Circle (X, Y), R, Color
End Sub
Public Property Let Color(ByVal vData _
As Long)
'Syntax: X.Color = 5
mvarColor = vData
End Property
Public Property Get Color() As Long
'Syntax: Debug.Print X.Color
Color = mvarColor
End Property
Public Property Let Y(ByVal vData _
As Integer) 'Syntax: X.Y = 5
mvarY = vData
End Property
Public Property Get Y() As Integer
'Syntax: Debug.Print X.Y
Y = mvarY
End Property
Public Property Let X(ByVal vData_
As Integer)
'Syntax: X.X =5
mvarX = vData
End Property
Public Property Get X() As Integer
'Syntax: Debug.Print X.X
X = mvarX
End Property
Public Property Let R(ByVal vData _
As Integer)
End Propert
1.2.Кластарды хабарлау
Жаңадан құрылатын кез келген класс төмендегідей қызметші сөздермен
анықталатын.Секциялар класты сипаттау элементтерінің көрінетін бөлігін
анықтайды. Public секциясы Published секциясы тек стандартты емес
компоненттерді жасауда пайдаланылады. DelphiPrivate секциясы көріну
бөлігін ең төменгі бөлігіне дейін кішірейтеді:
Жабық элементтердің сипатталуы осы кластың ішіндегі, яғни класс
сипатталған.
Private секциясында хабарланған элемент, егер ол басқа модульде
орналасқан.
Automated секциясы OLE обьектілерін автоматтандыру интерфейсінде
қосылатын қасиеттер мен Object Pascal тілінде кез келген секцияны
бірнеше рет, яғни
Unit Unit1;
Uses Controls, Forms;
Type
TForm1 = class(TForm)
Button1:TButton;
Private
FintField:integer;
Procedure SetValue(Value:integer);
Function GetValue:integer
Published
Property IntField:read GetValue write SetValue
Protected
Procedure proc1;
Public
Procedure proc2;
End;
Var
Form1:TForm1;
Implementation
Procedure TForm1.Proc1;
Button1.Color:=clBtnFace;
FIntField:=0;
IntField:=0;
Proc1;
Proc2;
End;
Begin
Form1.Button1.Color:=clBtnFace;
Form1.FlintField:=0;
Form1.IntField:=0;
Form1.Proc1; // Бұл жазу қате!
Form1.Proc2;
End;
Unit Unit2;
Interface
Uses Controls, Unit1;
Type
TForm2 = class(TForm1)
Button2:TButton;
Procedure Button2Click(Sender:TObject);
End;
Var
Form2:TForm2;
Implementation
Procedure TForm2.Button2Click(Sender:TObject);
Begin
Form1.Button1.Сolor:=clBtnFace;
Form1.FlintField:=0; // Бұл жазу қате!
Form1.IntField:=0;
Proc1;
Proc2;
End;
Begin
Form1.Button1.Color:=clBtnFace;
Form1.FlintField:=0; // Бұл жазу қате!
Form1.IntField:=0;
Form1.Proc1; // Бұл жазу қате!
Form1.Proc2;
End;
Класс – ұрпақты хабарлауда класс элементтерінен бір бөлігінен басқа
Type
TForm2 = class(TForm2)
Public
Procedure Proc1;
End;
Осындай хабарлаудан кейін Unit2 модулін былай шақыруға болады:
Form2.Proc1;
Private секциясына алмастыру жасағаннан кейін хабарлау элементі
ұрпақтарына көрінбейді егер Класс модульдің тек интерфейстік бөлігінде
немесе жүзеге асырудың бастапқы мəселесі.
II.Кластарды, өрістерді жəне əдістерді мұра ету
Достарыңызбен бөлісу: |