36
Объекттер сипаттамалары. Абстрактты класс. Визуалды компоненттер. Компоненттер
қасиеттері, қасиеттердің динамикалық өзгеруі. Жағдайлар және жағдайларды
өңдеушілер. Компоненттер әдістері.
Дәріс конспектісі:
Компоненттердің жалпы қасиеті
Delphi-
де компоненттер деп, - TComponent класының ұрпақтарын айтады. Бұл тарауда
компоненттердің ортақ қасиеттері, әістері және компоненттерің жағдайлары аталадвы.
Бөтен тақырыптарда бір нақты компоненттерді сипаттаған кезде бұл қасиеттер енді
ескертілмейді. Бұларың бәрі, негізінде, TObject, TPersistent, TComponent және TControl
сияқты аталық класстарға қатысты екенін ескерген жөн. Олардың кейбірі осы кластардың
protected
секциясында анықталған жәнеде сол себептен олар өз ұрпақтарына қол жеткізу
мүмкіндігін бермеуі де болмауы а ғажап емес.
Сондықтан белгілі бір компоненттің әдістерінің, қасиеттері мен жағдайларының толық
жиынына қол жеткізу үшін Delphi- ге кірістірілген анықтамалық қызметке көңіл аударып,
оларға сұраныс жасауға болады.
Компоненттер иерархиясы.
Delph-
дің барлық компоненттерінің көптеген жалпы қасиеттері компоненттердің жалпы
қасиеттері мен ортақ қасиеттері шоғырланған Tcomponent класынан жаратылған.
TComponent-
тің ата тегііне TObject базалық класынан класынан туындаған (рис.
14.1).TPersistent класы жатады,
TPersistent класы өз ұрпақтарына
procedure Assign(Source: TPersistent)
Терезелік ресурс дегеніміз, ол - терезелерді құрып, оларға қызмет жасайтын Win-
dows-
тың арнайы курсын айтады. Тек терезелік компоненттер ғана Windows хабарламаларын
алып, өңедей алады.
1
сурет.
Delphi компоненттерінің иерархиясының фрагменті.
Компоненттердің аттары мен иелері.
TComponent класы өзінде тек барлық компоненттерге ортақ қасиеттер
мен әдістерді
сақтайды.
Name қасиеті компоненттің атын анықтайды:
type TComponentName =
String; //
Delph
і-дің 32-разрядтық версиясы
type TComponentName =
String [63]; //
Delphi 1
Компоненттің атаулары бөтен де программалау объекттерінің атаулары сияқты
ережелерден тұрады — констаталардан, айнымалы мен ішкі программалардан және т.б. Ол
TObject
TPersistent
TComponent
TControl
TGraphicControl
TWinControl
TScrollingWinControl
TCustomControl
TCustomForm
37
кәдімгі дұрыс идентификатор сияқты және өзінің пайдалану аймағында бір ерекше болуы
керек. Компоненттер формаға Delphi ортасы арқылы орналасатын болғаннан кейін, әрбір
компонент автоматты түрде осы орта арқылы құрастырылатын өз класына толық сәйкес (тек
бірінші T әрпі жоқ) және сандық жалғау суффиксы бар атау алады: Forml, Label1,
Edit2
и т.д. Жұмыс барысында программист програма мәтіні дұрыс оқылатындай болу
үшін компонентті қайта атауына болады. Өзіндік аттар қоюда компоненттер типтерін
кодтайтын, екі немесе үш әріптік префикстан тұратын өзіндік атаулар жүйесін ойлап
тапқан жөн. Мысалы, fm - Tform формасы үшін, lb - Tlabel белгішеулері үшін, ed - TEdit
алаңы үшін және с.с.
Префиксты мнемоникалық атпен біріктіре отырып, атауларды жақсы оқуға болатвнай
қылып алуға болады. Және дұрыс таңдау арқлы олардың қасиеттері мен әлістерінің
пайдаланылуын қадағалауға болады. Мысалы төмендегідей жазылған идентификатор бірден
күдік туғызады:
IbOutput. Text : = ' Текст' ;
Себебі , lb префиксы Text атты қасиеті мен алаңы жоқ TLabel компонентін анықтайды.
Келесі қасиет Delphiде пайдаланылмайтын және онымен программист өздігінен пайдалана
алатындай кез келген бүтін санды параметрді анықтайды:
property Tag:
Integer;
Property Owner: TComponent;
Пайдаланушының Components массивіндегі компоненттің орны Component Index-ті
анықтайды:
Property ComponentIndex: Integer;
Массивтің өзі барлық компоненттердің тізімінен тұратын, осы компонент ие болатын келесі
қасиеттпен анвқталады:
Property Components[Index: Integer]: TComponent;
Тізімде бекітілген компоненттер саны келесі қасиеттері қайтарады:
СоmponentCount:
Property ComponentCount: Integer;
TComponet
кнструкторы Сreate, өзін шақыратын және ол арқылы пайдаланушыға
сілтеме берілетін бір ақ параметрден тұрады:
constructor Create(AOwner: TComponent);
Конструктордың орындалу барысында пайдаланушының тізімінде компонент өз өзіне
Components
тізімінде сілтеме қояды да . В ходе выполнения
конструктора компонент
вставляет ссылку на себя в список своего владельца и изменяет содержимое собственного
свойства өзінің Owner қасиетінің мазмұнвын өзгертеді.
табл.1.кестесінде келтірілген әістер Components тізімін басқару үшін пайдаланылады:
Таблица1. Components тізімімен жұмыс
Әдіс
Сипаттамасы
procedure DestroyComponents;
Components
тізімінен біртіндеп барлық
компоненттердің деструкторларын шақырып
сол тізімнен компоненттерді жояды
function FindComponent(const Aname:
String): TComponent;
Тізімнен AName атты компонентті тауып, оған
сілтемені қайтарады /
procedure InsertComponent
(AComponent: TComponent
AComponent
компонентін Components тізімінің
соңына қояды
procedure RemoveComponent
(AComponent: TComponent);
Тізімнен AComponent компонентін жояды