Мазмұндама Техника қауіпсіздігі ережелерімен танысу. Еңбекті қорғау және өндіріс гигиена ережелерін сақтау



бет14/29
Дата25.01.2023
өлшемі299,81 Kb.
#166350
түріМазмұндама
1   ...   10   11   12   13   14   15   16   17   ...   29
Байланысты:
1пк

Delphi­дегі кластар иерархиясы
Delphiде кластар деп бағдарламаның жұмысын аяқтаған бөлігін айтады,  оларөздеріне үлгі жасап алады. Бағдарлама құрастырушы бір рет қана класс құрып, оның көшірмесін түрлі бағдарламаларға енгізе алады, немесе бір бағдарламаның бірнеше жеріне орналастыра алады. Мұндай әдіс, бағдарлама құруда оның алдында жазылған үзінділерді қолдану есебінен жоғары нэтиже алуға ықпалын тигізеді. Delphi құрамына Borland корпорациясы бағдарламашылары дайындаған бірнеше жүздеген кластар кіреді. Оларды стандарт кластар деп атайды. Стандарт кластардың жиынтығы бағдарлама құрудың жоғары мүмкіндігін анықтайды. Әрбір компонент қатаң түрде белгілі бір класқа жатады, ал компоненттің формаға қойылатын барлық нақты даналары, сандық индекс қосылған класс атына ие болады. Delphi­де қолдануда келісім бойынша кластар аты Т әрпінен басталады. Осылай, TForm1 дегеніміз стандарт TForm бойынша жасалған кластың атын білдіреді. Егер сіз код терезесінде мәтіннің басын көретін болсаңыз, онда келесі қатарларды көресіз: Type TForm1=class(TForm) TForm стандартты класының үлгісінде пайда болған TForm1 жаңа класты хабарлайды. Forml=TForml; осы кластың Forml атты данасын құрады. TForm стандартты класы Windows­тың бос терезесін жазады. Бұл уакытта TForm1 класы қойылып қойған белгі және батырма компоненттерін жазады. Buttonl компоненті Tbutton стандартты класының бір данасын, ал Label1 ­ Tlabel класының данасы екенін білдіреді. Процедураның TForm1.ButtonlClick атынан кейін дөңгелек жақшада шақыру праметрінің түсініктемесі жазылады. (Sender:TObject). Sender аты бар параметр Tobject класына жатады. Buttonl:TButton; Label1:TLabel; Procedure Button1Click (Sender: TObject); private {Private declarations} public {Private declarations} end; «Қаржы Академиясы» АҚ колледжі Сапа менеджменті жүйесі «Алгоритмдеу және бағдарламалау негіздері» пәні бойынша оқу­ әдістемелік кешен СМЖ ҚА ОӘК 24­27­01­2009 күні бет 2­ші 348 ­ден Var Form1:TForm1; Implementation {$R*.dfrn} Біз көріп отырғандай ары қарай процедураларда бір емес бірнеше шақыру параметрлері болатынын немесе мүлдем болмайтынын байқаймыз. Шақыру параметрлері (егер олар бар болса) процедурадағы белгілі бір жұмысты орындайтын жүзеге асырылған алгоритмді баптауға қызмет етеді. Sender параметрі Delphi­гe қажет болған жағдай үшін қойылған. Оның көмегімен Button1Click қосалқы бағдарламасы OnClick оқиғасының қандай компонент қүрғанын анықтай алады. Procedure Button1Click (Sender:TObject); процедураның тақырыбы деп аталады. Оны « » символы аяқтайды. Бұл символ Object pascal­да маңызды роль атқарады, компиляторға тілдегі сөйлемнің аяқталғанын көрсетеді. Жеке сөйлемдерден бағдарламаның толық мәтіні құрастырылады. Әрбір сөйлемнің соңында нүктелі үтір қою керек ­ бұл тіл синтаксисінің міндетті талабы. Begin End;қатарлары процедураның денесін анықтайды Біз үшін маңыздысы, Button1 батырмасын басқан сайын басқару процедура денесіне беріліп отырады, яғни, begin және end сөздерінің арасына осы оқиға жауап беретін бағдарлама үзіндісін қоюға болады. Процедура денесіне Close сөзін жазыңыз. (Қосымша терезесін жабу)
2. TObject класы Object Pascal дың барлық кластары жалғыз атаана TObject класынан туындаған. Бүл кластың өрісі және қасиеттері жоқ, бірақ өзіне кезкелген объектілердің барлық өмірлік қасиеттерін қамтитын жалпы тағайындалудың әдістерін қамтиды. Бағдарламалаушы TObject класы ата ана болмайтын класс құра алмайды. Оган төмендегідей бейнелеулер тән: TaClass=Class(TObject) TaClass=Class Мұрагерлік принципі TObject класынан оның ұрпақтарына қарай дами отырып, біртіндеп кеңейетін тармақталған кластар құруға әкеледі. Әрбір ұрпақ өзінің ата анасының мүмкіндіктерін толықтырып (жаңартып), оның өзінің ұрпақтарына беріп отырады. 1суретте Delphiдегі кластар тармағы келтірілген. TPersistent класы өзінің TObject атаанасының мүмкіндіктерін кеңейтеді: ол мәліметтерді файлға сақтап, оны одан қайтадан ала алады, нэтижесінде оның барлық ұрпақтары осы мүмкіндіктерді орындай алады. TComponent класы өз кезегінде, класты құрушының ортасымен әрекеттесіп, оны өзінің ұрпақтарына бере алады. TControl класы файлдармен және класты құрушының ортасымен ғана жұмыс істеп қоймай, сонымен бірге, экранда көрінетін бейнелерді қүруға және оның қызметін орындауға қабілетті, ал оның ұрпағы TwinControl Windows терезелерін де құра алады және т.б. «Қаржы Академиясы» АҚ колледжі Сапа менеджменті жүйесі «Алгоритмдеу және бағдарламалау негіздері» пәні бойынша оқу әдістемелік кешен СМЖ ҚА ОӘК 2427012009 күні бет 3ші 348 ден 3. Кластарды хабарлау Жаңадан құрылатын кез келген класс төмендегідей қызметші сөздермен анықталатын секциялардан тұрады: Private (жабылған), protected (қорғалған), public (мүмкін) және automated (автоматтандырылған). Әрбір секцияның ішінде басында өріс, одан кейін әдістер мен қасиеттер анықталады. Секциялар класы сипаттау элементтерінің көрінетін бөлінгін анықтайды. Public секциясы ондағы көрсетілген өрістердің көріну бөлігіне шектеулер жасамайды, әдістер мен қасиеттерді кез келген басқа бағдарлама модулінде шақыруға болады. Published секциясы көріну бөлігін шектемейді, бірақ мұнда тек орындалу кезеңінде ғана мүмкін болатын қасиеттер ғана емес, бағдарлама құру кезеңіндегі қасиеттер жазылады (яғни объектілір инспекторы терезесінде). Published секциясы тек стандартты емес компоненттерді жасауда пайдаланылады. Delphi ортасы формаға орнатылған компоненттерді сипаттауды арнайы аты жоқ секцияға орналастырады, ол класс тақырыбынан кейін жазылады да, бірінші хабарланған секцияға дейін жалғасады. Бүл секция Published деп аталады. Private секциясы көріну бөлінген ең төменгі деңгейде дейін кішірейтеді: жабық элементтердің сипатталуы осы кластың ішіндегі, яғни класс сипатталған модульде орналасқан әдіс пен қосалқы бағдарламаға ғана пайдаланылады. Protected секциясы тек сол кластың эдістері үшін, сондайақ, кез келген оның үрпақтары үшін пайдаланылады, бірақ оның орналасуына тәуелсіз Private секциясында хабарланған элемент, егер ол басқа модульде орналасқан болса, тіпті кластың жақын ұрпақтары үшін де пайдаланылмайды. Automated секциясы ОLЕні автоматтандыру интерфейсінде қосылатын қасиеттер мен әдістерді хабарлау үшін пайдаланылады; бұл секцияның мүшелерінің көріну бөлігі шектелмеген. Object Pascal де кез келген секцияны бірнеше рет, яғни қажетіне карай хабарлай беруге болады, секцияларды пайдаланушы қалауынша орналастыруына болады. Кез келген секция бос болуы мүмкін. Келесі бағдарлама фрагменті секциялардың экрандагы көріну бөлігін сипаттайды Unit Unitl; Interface Uses Controls, Forms; Type TForm 1 =class(TForm) Buttonl :TButton; Private FintField: integer; Pro cedure SetValue(Val ue: Integer); Function GetValueTnteger; Published Property IntField: read GetValue write SetValue Protected Procedure Procl; «Қаржы Академиясы» АҚ колледжі Сапа менеджменті жүйесі «Алгоритмдеу және бағдарламалау негіздері» пәні бойынша оқу әдістемелік кешен СМЖ ҚА ОӘК 2427012009 күні бет 4ші 348 ден Public Procedure Proc2; End; Var Forml:TForml; Implementation Procedure TForm1. Procl; Button 1 .Color:=clBtnFace; FIntField:=0; IntField:=0; Unit Unitl; Interface Uses Controls, Unitl; Type TForm2=class(TForm1) Button2:TButton; Procedure Button2 Procedure Button2Click (Sender:TObject); End; Var Form2:TForm2; Procedure Tform2.Button2Click (Sender:TObject); Procl; Proc2; End; Begin Form 1 .Button 1 .Color:=clBtnFace; Forml. FLintField:=0; Forml. IntField:=0; Forml.Procl; //Бүл жазу қате! Forml. Proc2; End; Begin Buttonl.Color:=clBthFace; FintField:=0; // Бүл жазу қате! Procl; Proc2; End; Begin Form1.Buttonl.Color:=clBthFace; Forml.FintField:=0; // Бұл жазу қате! Forml.IntField:=0; Ғогт1.Ргос1;//Бүл жазу қате! FormLProc2; End; Класс — ұрпақты хабарлауда класс элементтерін бір көріну бөлігінен басқа бөлігіне алмастыруға болады. Алдыңғы мысал үшін төмендегідей хабарлауды жазуға болады: Type Tform2=class(TForm2) ... Public Procedure Procl; ... end; Осындай хабарлаудан кейін Unit2 модулін былай шақыруға болады: Form2.Procl; Private секциясына алмастыру жасағаннан кейін хабарлау элементі ұрпақтарына көрінбейді (егер ұрпақ басқа модульде хабарланған болса), онда кейін оны басқа секцияға орналастыруға болмайды. Класс модульдің тек интерфейстік бөлігінде немесе жүзеге асырудың бастапқы кезеңінде хабарланады. Класты қосалқы бағдарламаның сипаттау бөлігінде анықтауға болмайды.




Достарыңызбен бөлісу:
1   ...   10   11   12   13   14   15   16   17   ...   29




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет