Зертханалық жұмыс №1 «Delphi интерфейсінің элементтері»


Зертханалық жұмыс № 2 «Негізгі пішіннің жобасы мен модульінің бағдарламалық коды»



бет2/3
Дата14.11.2019
өлшемі2,2 Mb.
#51751
1   2   3
Байланысты:
дельфи зертханалық жұмыс
Сатып алу-сату шарты, Сатып алу-сату шарты

Зертханалық жұмыс № 2 «Негізгі пішіннің жобасы мен модульінің бағдарламалық коды»


№2 зертханалық жұмыста негізгі пішіннің жобасы мен модульінің бағдарламалық коды қарастырылады; Delphi ортасы пішінге құрауышты қосқан кезде оның бағдарламалық кодын автоматты түрде қосады, «оқиға» деген түсінік кіргізіледі және оның оқиғаны өңдеу прцедурасының көмегімен қалай өңделетіні көрсетіледі.

Тапсырма 1. №1зертханалық жұмыста құрылған жобаны іске қосу және жоба мен модульдің бағдарламалық кодын көру.

  • Delphi – ді іске қосыңыз.

  • Негізгі менюдің командасын орындаңыз: File \ Open Project

  • Ашылған терезенің жобалар тізімінен (.DPR кеңейткіші бар файлдар) TEST.DPR аты бар жобаны тауып алыңыздар, оған тышқанның сол жағымен бір рет шертіп, ОК - ді таңдаңыз немесе пернетақтадан Enter пернесіне басыңыз.

Экранда «Программа «Тест»» тақырыбымен пішін пайда болады.

  • Жобаның бағдарламалық кодын көру үшін негізгі менюдің Project\View Source командасын орындаңыздар.

  • Көңіл қойып жобаның бағдарламалық кодын қараңыздар (Сурет 1.8).

Сурет. 1.8. Жобаның бағдарламалық коды



Жобаның бағдарламалық коды бағдарламаның тақырыбынан, модульді қосу бөлімінен, компилятор директивасынан және бағдарламаның негізгі денесінен тұрады.

Бағдарламаның тақырыбы Program қызметші сөзінен тұрады, одан кейін жобаның атымен сәйкес келетін бағдарламаның аты орналасады. Жобаның аты оны сақтар кезде беріледі және ол Delphi ортасында орындалатын файлдың атын анықтайды.

Модульді қосу бөлімі Forms жүйелік модульі мен Mainform модульінен тұрады, олардың бағдарламалық коды Mainform.pas. файлында жазылады.

Компилятор директивасы {$R *.RES} бағдарламалық файлдың орындалуы үшін берілгендерден тұратын (мысалы, қосымшаның пиктограммасын сипаттау) файлдық ресурсты жүктеу үшін тағайындалады. Жұлдызша белгісінің тұруы ресурс файлының аты жоба файлының атымен дәл келеді, бірақ кеңейткіші .res болатындығын білдіреді.

Бағдарлама денесі begin сөзінен басталады және end сөзінен аяқталады. Ол үш жолдан тұрады: бірінші жол қосымшаны инициализациялау үшін, ал екінші жол Form1 негізгі пішінді құру және оны Application қосымшасының құрамына қосу, ал соңғы үшінші жол - қосымшаны іске қосу үшін тағайындалған.

  • Mainform модульінің бағдарламалық кодын көріп шығыңыздар (сурет 1.9). Ол үшін құрал – саймандар панельінің View Unit (тізімнен модульді таңдау) батырмасына басыңыздар.

View Unit (модульдерді көру) терезесі пайда болады. ( Бұл терезені негізгі менюден View\Units… командасын орындау арқылы немесе Ctrl+F12 пернелерінің комбинациясын басу арқылы шақыруға болады.)

  • Тізімнен Mainform атын таңдап, OK батырмасына басыңыздар.

Модульдер Object Pascal бағдарламалық тілінде қарастырылған стандартты конструкциядан тұрады (бөлімдердің тізбегі мен аттары). Жалпы түрдегі модульдің құрылымы:

Unit < модульдің аты>;

interface

implementation



initialization

finalization



end.



Сурет 1.9 Модульдің бағдарламалық коды



Модульдің тақырыбы Unit қызметші сөзінен тұрады, ол сіздің алдыңызда модульдің бағдарламалық коды тұр дегенді білдіреді, одан кейін модульдің аты орналасқан. Модуль онымен негізгі бағдарлама немесе басқа модуль қолданылуы үшін құрылады (біздің жағдайда модуль TEST.DPR жобасына қосылған).

Модульдің бағдарламалық коды модульдің тақырыбы мен төрт бөлімнен тұрады: интерфейс, жүзеге асыру, инициализация және қорытынды бөлім.

Интерфейс бөлімі interfase сөзінен басталады. Бұл бөлімде негізгі бағдарламаға немесе басқа модульдерге қатынау мүмкіндігі бар модульдің барлық ауқымды объектілерін жариялау жатыр (типтер, тұрақтылар, айнымалылар және бағыныңқы бағдарлама) Ол мыналардан тұрады:

а) модульді қосу бөлімі, uses сөзінен басталады. Біз көріп отырғанымыздай біздің модульімізге бірнеше жүйелі модульдер қосылған, олардың әрқайсысы белгілі функцияны атқарады;

б) типтерді сипаттау бөлімі, type сөзінен басталады. Оның құрамында Delphi ортасында құрылған форма типін сипаттау жатыр (TForm1 класы). Бұл класс құрауыштар типтерінің тізімі мен қандай да бір оқиғаны өңдеу процедураларының сипатталуынан тұрады. Біздің класс мыналардан тұрады: TmenuItem типтес меню элементтері N1, N2, .... N8 , олардың екеуі негізгі менюдің «Тест» және «Помощь» элементтері, ал қалған алтауы меню командаларына сәйкес келеді: «Тестирование», «Результат», «----», «Выход», «О программе» және «Инструкция». Delphi құрауыштарды пішінге орналастырған кезде автоматы түрде осы элементтерді бағдарламалық кодқа қосады; процедураны сипаттау Procedure N5Click(Sender: Tobject);

в) ауқымды айнымалыларды жариялау бөлімі var сөзінен басталады.



Жүзеге асыру бөлімі implementation сөзінен басталады. Ол меню командасына тышқанмен шерту, қарым – қатынас терезесінің батырмасына басу, пернетақтадағы пернеге басу және т.б. оқиғаларды өңдеу процедурасының денесінен тұрады. Сонымен бірге программистің меншік процедурасы мен функциясының сипаттамасынан тұруы мүмкін, олар өз кезегінде оқиғаны өңдеу процедурасынан шақырылады.

Нақ осы жағдайда бұл бөлімде біз бір ғана процедурамен жұмыс істейміз:



procedure TForm1.N5Click(Sender: TObject);

begin

Close;


end;

Бұл процедура меню элементі «Выход» - қа тышқанмен шерту оқиғасын өңдейді.



Компилятор директивасы {$R *.DFM}, жүзеге асыру бөлімінің басында орналасады, ол компиляторға жүзеге асыру бөліміне модульдің атымен сәйкес келетін .dfm кеңейткіші бар файлда орналасқан пішіннің қасиетінің мәнін орнататын команданы қою туралы бұйрық береді.

Инициязациялау және қорытындылау бөлімдері міндетті емес.



Инициялизациялау бөлімі модульдің аяғында болады және міндетті емес. Егер ол бар болса, онда ол initialization сөзінен басталады немесе begin ... end оператор жақсаларымен аяқталады. Бұл бөлімнің операторлары негізгі бағдарламаның басқаруына дейін орындалады және оның жұмыс істеуіне дайындық ретінде қолданылады.

Қорытындылау бөлімі finalization сөзінен басталады және бағдарламаның аяқталуы кезінде орындалатын операторлардан тұрады.

  • Тест орындалуы үшін қосымшаның негізгі модульі «Tест» -тің бағдарламасына қажетті оқиғаларды өңдейтін процедуларды атап өтіңдер.

Біз жасап отырған қосымша өзіміз қосқан менюі бар негізгі пішіннен тұрады. «О программе» меню командасының көмегімен біз анықтама терезі ретінде тағы бір қосымша пішінді шақыруымыз керек. Дайын шаблонды біз New Items қарым – қатынас терезесінен таңдап аламыз, ол үшін құрал – саймандар панельінің New батырмасына басу керек.

Тапсырма 2. Aboutbox пішінінің шаблонының негізінде «О программе» (сурет 1.10.) терезесін құру.

  • File негізгі менюінен New пунктін таңдап алыңыз, осы пункттің ағымды менюінен Other... таңдаңыз, сонда New Items қарым - қатынас терезесі пайда болады, Forms вкладкасынан Aboutbox пішінін таңдаңыз.

Келесі элементтерден тұатын Aboutbox стандартты терезесі пайда болады:

  • графикалық сурет, ол пішінге Additional құрауыштар палитрасының Image (кескін) батырмасының көмегімен қойылады;

  • мәтіндік құрауыштар (TLabel);

  • ОК батырмасы.

  • Aboutbox пішінінің Объект Инспектірінің Caption қасиетіне О программе терезенің тақырыбын жазыңыздар.

  • Image құрауышына тышқанмен шерту арқылы активтеңіз.

Суреттің маңайында қара квадраттары бар жақтау пайда болады.

  • Жақтаудың қара кадраттарын тышқанмен ұстай отырып Image құрауышының шекарасын қойылатын графикалық объектінің шекарасына дейін өзгертіңіз.

  • Image құрауышының Объект Инспектірінің Picture қасиетінің үш нүктесі бар батырмасына шертіңіз.

Picture Editor (Сурет редакторы) терезесінің Load командасын орындаңыздар.

Load Picture терезесінің «Папка:» өрісінен 256color каталогқа өтіңіздер (C:\Program Files\Common Files\Borland Shared\Images\Splash).



Каталог файлының тізімінен SHIPPING.BMP таңдаңыз (қалауларыңа қарай басқасын таңдауға болады) және «Открыть» басыңыз.

  • Picture Editor терезесінің OK батырмасына басу арқылы суретті «О программе» пішінінің дайындалып жатқан жақтауына орналастырыңыздар.

  • Инспектор Объектісін Image құрауышына бейімдеңіз және Stretch (масштабтау) қасиетіне true параметрін қойыңыз.

Сурет жақтауға толығымен орналасады.

Сурет 1.10 «О программе» пішінінің терезесі

Пішіндегі барлық мәтіндік құрауыштарды ( TLabel) жойыңыздар. Ол үшін әрбір құрауышты тышқанмен шерту арқылы белгілеңіз және Delete батырмасына басыңыз.


  • Aboutbox пішініне Label құрауышын қосыңыз (Standart палитра құрауышынан ). Оған мәтінді кіргізесіздер.

  • Label1 құрауышы үшін Объект Инспекторінінің AutoSize қасиетіне false параметрін орнатыңыз (бұл қасиет Label - дің ұзындығын енгізілген мәтіннің ұзындығы бойынша алады). Alignment және Layout қасиеттеріне taCenter, tlCenter параметрлерін орнатыңыздар, ол мәтінді құрауыштың центрі бойынша орналастыруға қолданылады. WordWrap қасиетіне – True (сөзді буынға бөлуге рұқсат етіледі).

  • Caption қасиетіне Программа Тест © Copyrighte by Makeew S. деп жазыңыздар (өз фамилияңызды көрсетіңіз).

  • Тышқанның көмегімен Label1 құрауышына қажетті өлшемді беріңіз және оны терезенің оң жақ жоғарғы бұрышына орналастырыңыз.

  • Color қасиетіне фонның түсін орнатыңыз.

  • Font қасиетінің үш нүктесі бар батырмасына басу арқылы Қаріп қарым – қатынас терезесін шақырып, қаріптің түсін, өлшемін және түрін белгілеңіздер.

Әртүрлі қаріпі бар мәтінді енгізу үшін тізбекпен бірнеше Label қолданылады және әрбіреуі үшін өз қасиеті орналастырылады. Әрбір Label – ге 256 символ орналастырылады.

  • Пішіндегі ОК батырмасын активтеңіздер.

  • Объект Инспектірінің осы батырмасының Caption қасиетін Продолжить деп өзгертіңіздер.

  • Осы батырманың «О программе» терезесінде орналасуы мен өлшемін өздеріңіз белгілеңіздер.

Тапсырма 3. «О программе» пішінінің бағдарламалық модульін MainForm негізгі пішінінің модульіне қосу.

  • Ағымды терезе ретінде «Программа «Тест»» неізгі пішінінің терезесін алыңыздар (терезенің бос жеріне тышқанмен шерту арқылы немесе 1 – ші зертханалық жұмыста көрсетілген әдісті қолдану арқылы).

  • «Помощь» менюін ашыңыздар және «О программе» командасына тышқанмен шертіңіздер.

«О программе» меню командасына тышқанмен шерткенде өңделетін процедурасы бар редактор терезесінің бағдарлама коды ашылады.

  • Тышқанның көрсеткіші жанып - өшіп тұрған жерге мынаны жазыңыздар:

AboutBox.ShowModal;

Бұл команда бағдарламаның орындалуы барысында модальдық режимде экранға «О программе» терезесін шығарады.



  • Құрылған модульді сақтаңыздар: құрал – саймандар панельінің Save All батырмасына басыңыздар; модульді сақтау терезесінің «Имя файла» өрісіне about_x деп жазып, «Сохранить» батырмасына басыңыздар, ал жоба мен қалған модульдер автоматты түрде сақталады.

  • Toggle Form/Unit батырмасына тышқанмен шерту арқылы код редакторы терезесінен MAINFORM.PAS негізгі пішінінің модульінің кодын шақырыңыздар (пішіннің өзіне сәйкес бағдарламалық модульге ауыстырлып қосылуы және керісінше). Бағдарламаның мәтінінің uses модульді ауыстырып қосу бөліміне үтір арқылы about_x деп жазыңыздар.

  • Бағдарламаны орындаңыздар. «Tест» бағдарламасының менюіндегі «О программе» командасының жұмыс істеу қабілетін тексеріңіздер.

Бұл зертханалық жұмыста біз қосымша қарым – қатынас терезелерін құруды үйрендік, оқиғаларды өңдеу, модульдерді негізгі бағдарламаға қосу, пішіндерге құрауыштарды орналастыру ( мәтіндер, графикалық суреттер және т.б.), сонымен бірге бағдарламалық модульдердің және жоба файлдарының құрылымдарын қарастырдық.





































Зертханалық жұмыс № 3 ««Тест» қосымшасын құру»


№3 – ші зертханалық жұмыста №1 – ші зертханалық жұмыста ұсынылған көлемдегі «Tест» қосымшасын құруды аяқтаймыз; «Тестирование» және «Результат» пішіндерін құру үрдістерін қарастырамыз; негізгі модульдің бағдарламалық кодында бағдарлама құрудың қарапайым әдістерін көрсетеміз.

Тапсырма 1. Жобаны іске қосу. «Тестирование» пішінін құру.

  • Алдыңғы зертханалық жұмыста құрылған (TEST.DPR) бағдарламасын іске қосыңыздар және оның жұмыс істеу қабілетін тексеріңіздер. Жұмыс бағдарламасынан Выход командасын таңдап, жобалау режіміне қайтып оралыңыздар.

Енді «Тестирование» пішінін құруға кірісеміз.

Біздің тест 3 – 4 варианттан тұратын жауабы бар 5 сұрақтан тұрсын. Бізге осы 5 сұрақ жауабымен сиятындай пішін керек. Бұл мақсатта бізге парақтар тобынан тұратын жазба кітапша түріндегі пішін қажет, әрбір парақ парақтың нөмірі бар бетбелгіден тұрады. Delphi ортасындағы мұндай пішін шаблон түрінде болады. Бұл пішінді біздің жобамызға қосамыз.



  • Құрал – саймандар панельінің New командасын орындаңыздар, New Items терезесінен Forms қалташасын таңдаңыз, одан кейін Tabbed pages пішінін таңдап (Tabbed Notebook Dialog – бетбелгісі бар диалогтық жазба кітапша), ОК батырмасына басыңыздар.

  • Пішінді оқып – үйреніңіздер. Ол бетбелгісі бар үш парақтан және үш басқару батырмаларынан тұрады. Пішіннің әрбір парағы жұмыс істеп тұрған бағдарламада сәйкес бетбелгіге тышқанмен шерткенде шақырылады. Қайта таңдалған пішіннен Cancel және Неlр батырмаларын жойыңыздар. Объект Инспектірінен құрауыштар тізімін ашыңыздар. Бұл құрауыштар тізімінде әрбір құрауыш объект ретінде көрсетілген. Тізім келесі объектілерден тұрады: PagesDlg пішіні, PageControl1 жазба кітапшасы, үш парақ TabSheet1, TabSheet2, TabSheet3, Panel1, Panel2 екі панельдері және ОКBtn батырмасы.

  • Пішінге тақырып және объектілерге қысқартылған ат тағайындаңыздар: PagesDlg – ды таңдаңыздар, Caption қасиетіне Тестирование деп жазыңыздар, Name қасиетінеTestDlg және Enter – ді басыңыздар. Енді қарым – қатынас терезесі «Тестирование» деген тақырыптан және TestDlg аты бар объектіден тұрады, ол Инспектір Объектісінің тізімдерінен шақырылады. Color қасиетіне пішіннің түсін орнатыңыздар, мысалы сары.

  • Жазба кітапшасының парақтар санын беске дейін өзгертіңіздер (сәйкес тестің сұрақтар санына байланысты) және олардың бетбелгілеріне Вопрос1, Вопрос 2 және т. б. деп жазыңыздар. Ол үшін Инспектір объектісінен TabSheet1 таңдаңыздар және Caption қасиетіне Вопрос 1 және т.б. деп жазыңыздар.

  • Парақ қосу үшін парақтың өрісіне тышқанның оң жақ батырмасымен шертіңіз, сонда контекстік меню пайда болады, одан New Page – ді таңдаңыздар.

  • «Тестирование» пішініндегі барлық 5 бетбелгі бір жолға сиюы үшін, жазба кітапшасының TabWidth (бетбелгінің кеңдігі) қасиетінің мәнін орнатыңыздар. Width қасиетінің мәні болып жазба кітапшасының кеңдігі алынады.

Тапсырма 2. Графикалық элементі бар тестің бірінші сұрағын көркемдеу.

Біздің жазба кітапшамыздың әрбір парағына сұрақ пен оның жауаптарын орналастырайық. Бірінші парақтан бастайық. Сұрақтың мәтінін жақтаудың түрлі – түсті панельіне жазамыз. Ол үшін Panel және Label құрауыштарын қолданамыз.



  • Объект Инспектірінен PageControl1 – ді таңдаңыздар және ActivePage (актив парақ) қасиетінен TabSheet1 – ді таңдаңыздар.

  • Активті парақ жазықтығынан жақтаудағы панель түрінде мәтінді енгізетін орын дайындаңыздар. Ол үшін бірінші параққа құрауыштар палитрасынан Panel құрауышын қосыңыздар және оны тышқанның көмегімен парақтың жоғарғы бөлігіне дейін созыңыздар (сурет 1.11). Align қасиетіне - alClient мәнін беріңіздер.

  • Объект Инспектірінің Color қасиетіне тышқанды екі рет шерту арқылы түстер палитрасын шақырыңыздар және панельдің мысалы, жасыл түсін орнатыңыздар.

  • Caption қасиетінен Panel3 деген жазуды жойыңыздар.

  • Панельге картинадағы сияқты жақтау жасаңыздар. Ол үшін Bevelinner (ішкі фаска) қасиетіне Lowered (төмендетілген) мәнін Bevelouter (сыртқы фаска) қасиетіне —Raised (көтеріңкі) мәнін тағайындаңыздар.

  • Дайын панельге Label құрауышын қосыңыздар, оны панельдің кеңдігіне дейін созыңыздар және мәтіннің центр бойынша жазылуы үшін Label құрауышының Autosize қасиетіне False мәнін орнатыңыздар. Alignment қасиетіне — taCenter (көлденеңінен алғанда центрлеу), Layout қасиетіне – tlCenter мәнін (көлднеңінен – центрі бойынша туралау),

  • Word Wrap қасиетіне (сөзді бөлуге рұқсат етіледі) – True мәнін тағайындаңыздар.

  • Label1 құрауышының Caption қасиетіне “ Заставкой какого программного продукта является эта картинка?” деп жазыңыздар, Font қасиетіне тышқанмен екі рет шерту арқылы Шрифт терезесін шақырып, қаріптің түсін, түрін және өлшемін орнатыңыздар.

  • Сурет қою үшін панель аймағына Additional қасиетінен Image құрауышын қосыңыздар және қара жақтауға тышқанмен екі рет шерту арқылы суретті редакциялау үшін Picture Editor терезесін шақырыңыздар. Load батырмасының көмегімен осы терезеден файлды жүктеу терезесін шақырып, C:\Program Files\Common Files\Borland Shared\Images\Splash\16color каталогынан Athena.bmp файлын жүктеңіздер.

  • Суреттің Stretch қасиетіне true мәнін тағайындаңыздар.

  • Қозғалысты бағыттау пернелері мен Shift батырмасының комбинациясын қолдана отырып, құрауыштың өлшемін өзгертуге болады, ал Ctrl батырмасымен комбинациясы арқылы құрауышты пішіннің бойымен жылжытуға болады.

Сурет 1.11 «Тестирование» пішінінің терезесі



Қарым – қатынас парағына біз жауаптың бірнеше варианттарын орналастыруымыз керек, оның ішінен тестен өтуші дұрыс деген бір жауапты таңдауы қажет. Қатардан балама таңдау жасау үшін Standard палитрасының RadioGroup деген құрауышын қолданамыз, ол бірнеше радиобатырмаларды бір топқа біріктіреді. (Мұндай атау аналогия бойынша көптеген радиобағдарламалардың ішінен біреуін таңдағанда бір ғана батырма іске қосылатын радиоқабылдағыштың батырмаларына қолданылады.)

  • «Тестирование» пішінінің бірінші сұрағының парағына RadioGroup құрауышын қосыңыздар және оның Caption қасиетіне топтың тақырыбын Варианты ответов беріңіздер.

  • Items (элементтер) қасиетіне тышқанның екі шертуімен String List Editor (Жол тізімінің редакторы) терезесін шақырыңыздар.

  • Бұл редактордың бірінші жолына Delphi, екінші жолына — Windows 95, үшіншісіне — Microsoft Office 95 деп жазып, ОК батырмасына басыңыздар.(бірінші жауап дұрыс болады). Жауаптың әрбір варианты RadioGroup құрауыш панельінің радиобатырмаларының қарама – қарсы жағында орналасады.

  • Қарым – қатынас терезесінің екінші парағына бірінші парақтың дайын панельін көшіріңіздер. Ол үшін бірінші парақтың панельін тышқанмен шерту арқылы ерекшелеңіз және Edit (редакциялау) менюінің Сору (көшіру) командасын орындаңыздар. Екінші парақты активтеңіз және Edit менюінің Paste (қою) командасын орындаңыздар.

  • Өздіктеріңнен №2, №3, №4, №5 сұрақтардан тұратын жауабы бар тағы 4 парақ құрыңыздар.

  • Пішіннің құрылған «Тестирование» модульін Test_x.pas деген атпен сақтаңыздар.

  • Негізгі пішіннің бағдарламалық кодына жобаның негізгі менюінен «Тестирование» пішінін іске қосатын команданы енгізіңіздер. Ол үшін «Программа «Тест»» пішінінің Тест\Тестирование меню командасына тышқанмен шертіңіздер – сонда осы оқиғаны өңдейтін дайындалған бағдарламалық коды бар терезе пайда болады. Тышқанның көрсеткіші жанып - өшіп тұрған жерге мыныны жазыңыздар

TestDlg.Showmodal;

  • Uses бөліміне қосылған модульдің атын test_x енгізіңіздер;

Тапсырма 4. “Результат” пішінін құру және жобаны аяқтау.

Сурет 1.12 «Результат» пішінінің терезесі



  • New Items қарым – қатынас панельінен Dialogs қалташасын таңдаңыздар және онда Standard Dialog (стандарттық қарым – қатынас терезесі) пішінінің шаблонын таңдаңыздар. Пішінге «Результат» тақырыбын беріп, Name қасиетіне объектінің атын Resultdlg жазыңыздар (сурет 1.12).

  • Пішіндегі батырмалардың ішінен ОК батырмасын ғана қалтырыңыздар. Оны пішіннің төменгі жағының центріне орналастырыңыздар. Ол үшін пішіннің аймағында тышқанның оң жақ батырмасымен батырмаға шертіңіздер. Пайда болған контекстік менюден Align командасын таңдап, пайда болған қарым – қатынас терезесінен Center in window параметрін таңдаңыздар.

  • Пішіннің панельінің жоғарғы жағына Label құрауышын қосыңыздар, оның Autosize қасиетіне false мәнін, ал Alignment қасиетіне— taCenter мәнін орнатыңыздар. Қаріптің атрибуттарын орнатыңыздар. Label құрауышының хабарламасы жобаның негізгі модульінің бағдарламалық кодына енгізіледі және хабарламаның мәтіні тестің нәтижесіне байланысты болады.

  • Пішінге сурет қойыңыздар.

  • Пішіннің файлын Result_x атымен сақтаңыздар және оны MainForm.pas модуліне қосыңыздар.

  • Тестен өткенде жауаптарды өңдейтін бағдарламалық кодты құрыңыздар. Негізгі пішіннің Тест\Результат меню командасына шерту арқылы Mainform модульінің кодын шақырыңыздар және тышқанның көрсеткіші жанып - өшіп тұрған жерге пернетақтаның көмегімен бағдарламаның мәтінін енгізіңіздер (көп нүктенің орнына дұрыс жауаптарының нөмірін ескере отырып, қалған 4 сұрақтың бағдарламасының жолын жазу керек.).

Mainform модулінің соңғы бағдарламалық коды

var ball:byte;

begin

ball:=0;


if TestDlg.RadioGroup1.ItemIndex=0 then ball:=ball+1;

if TestDlg.RadioGroup2.ItemIndex=

...

...


ResultDlg.Label1.Caption:=’Ваш результат:’+IntToStr(Ball);

ResultDlg.ShowModal;



end;

Тестілеу нәтижесінде әрбір дұрыс жауап 1 балл деп есептелінеді және балдардың жалпы қосындысы, максимум 5 жағдайында, Результат пішініне шығуы керек. Көрнекілік бағдарламалау құралдарының көмегімен бұл есепті шешу мүмкін емес, сондықтан қарапайым бағдарламалауға көшейік.

procedure TForm1.N6Click(Sender: TObject);

процедурасы тестілеу нәтижесінің балдарын қосады және нәтижені ball айнымалысына орналастырады. Тестен өтуші дұрыс жауабы бар радиобатырмаға басқан кезде ғана бал есептелінеді. Әрбір радиотопта бір ғана батырма дұрыс және ол бағдарламада өзінің топтық нөмірінің индексі бойынша белгіленеді, 0 – ден басталады. Бұл сұрақта дұрыс жауап бірінші жауап, радиобатырманың индексі 0 – ге тең және т.б. Бағдарламалық жолда

if TestDlg.RadioGroup1.ItemIndex=0 then ball:=ball+1;

шартты көшу командасы орындалады. Мұнда былай деп айтылады, егер тышқанмен бірінші топтың бірінші батырмасына шертсек (элемент индексі ItemIndex=0), онда ball айнымалысына 1 балл (ball:=ball+1) қосылады. Басқа жағдайда бұл команда орындалмайды. Осылайша TestDlg пішінінің барлық радиотобына жазып шығамыз. Тәжірибелік тұрғыдан алғанда бірдей жолдарды енгізуді жеңілдету үшін бірінші жолды жазғаннан кейін оны ерекшелеп, Edit менюінің Сору және Paste командаларын қолдана отырып, тағы да төрт көшірме жасап, оған сәйкесінше өзгертулер енгізіңіздер.

Бағдарламалық жолда

ResultDlg.Label1.Caption:=’Ваш результат:’+IntToStr(Ball);



ResultDlg пішінінде орналасқан Label1 құрауышының Caption қасиетіне 'Ваш результат:' деген мәтін және алынған балдар саны меншіктелінеді, IntToStr(Ball) (Integer to string сөздерінің басқы әріптері— бүтінді жолға айналдыру) функциясы ball айнымалысындағы бүтін санды жолдық форматқа айналдырады.

ResultDlg.ShowModal;



командасы Результат пішінін демонстрация жасайды.

  • Бағдарламаны орындап, онда өз жолдастарыңызды тестен өткізіңіздер және оларға Паскаль тілінде мұндай бағдарламаны құру үшін 1500 – ге жуық жол жазу керек, ал ол бір жұмалық немесе айлық уақытты алатынын айтыңыздар. Delphi тілін меңгеру арқылы мұндай бағдарламаны 30 минут уақыт ішінде жасауға болады. Delphi сияқты күшті, әрі әдемі бағдарламалық тілді үйреніп, біліп жатқандарыңызға мақтаныңыздар.


3 ТЕРЕЗЕЛІК ҚОСЫМШАЛАРДЫ ҚҰРУ

3.1 Label, Edit, Memo мәтіндік құрауыштары. Button батырмасы


Label тамғасы

Иерархиясы:



TObjectTPersistentTComponentTControl – TGraphicControl –

TCustomLabel.

Құрауыштар Палитрасының Парағы: Standard.

Тамғалар экранға әртүрлі түсініктеме, атаулар, тақырыптар және т.б. тұратын мәтіндік ақпараттарды орналастыруға тағайындалған. Delphi – дегі тамғалар TLabel класының данасы болып табылады. TLabel класы тамғалардың негізгі сипаттамалары анықталған TCustomLabel класының ұрпақ класы болып табылады. Бұл класс TGraphicControl класының тікелей ұрпақ класы болып табылады, сондықтан ол тек тышқан арқылы берілген оқиғаға ғана әсер етеді.

TCustomLabel класының қасиеттерінен келесілерді белгілейміз:

Тамғаға негізгі қасиет болып TСontrol класынан туындалған Caption қасиеті табылады. Дәл осында экранға шығатын мәтін орналастырылады.



property Caption: TCaption;

type

TCaption = type WideString;



property Alignment: TAlignment;

type

TAlignment = (taLeftJustify, taRightJustify, taCenter);

Қасиет құрауыштағы мәтіннің теңестірілуін анықтайды. Ол келесі мәндерді қабылдауы мүмкін: taLeftJustify – сол жақ шеті бойынша теңестірілу; taRightJustify – оң жақ шеті бойынша теңестірілу, taCenter – ортасы бойынша теңестірілу. Үнсіздік белгісімен теңестірілу сол жақ шеті бойынша ұйымдастырылады.

property AutoSize: Boolean;

Егер қасиеттің мәні True – ге тең болса, онда тамғаның биіктігі мен ені онда орналасқан мәтінге сәйкес автоматты түрде өзгереді.



property Layout: TTextLayout;

type

TTextLayout = (tlTop, tlCenter, tlBottom);

Қасиет тамғаның вертикаль жағдайын анықтайды:

tlTop – жоғарғы бөлігінде орналасқан;

tlCenter – ортасында орналасқан;

tlBottom – төменде орналасқан.



property Transparent: Boolean;

Егер қасиет True мәнінен тұрса, тамғаның фоны басқа құрауыштармен қатынасына қарағанда айқын болады. Үнсіздік белгісімен False мәніне тең.



property WordWrap: Boolean;

Егер қасиет True мәніне тең болса, онда ағымды жол толтырылғаннан кейін мәтіннің жаңа жолға тасымалдануы орындалады. Үнсіздік белгісімен False мәніне тең.

Тамға тышқанды қолданған және құрауыштарды тасымалдаған кез – келген оқиғаны өңдейді. Үнсіздікпен тамға үшін оқиға OnClick оқиғасы болып табылады.

TCustomEdit класы

Delphi – де пернетақта арқылы бағдарламаға әртүрлі символдық ақпараттарды енгізетін және редакциялайтын бірнеше құрауыштар анықталған. Олардың барлығы мынандай мүмкіншіліктерді жүзеге асыра алады, ерекшелеу, көшіру, жою, үзінділерді қою, мәтіннің скроллингі, егер ол терезеге сыймайтын болса және т.б. Барлық редактірлердің жиынынан біз TEdit класының жолды енгізу және мәтін редактірі TMemo – ны қарастрамыз.

Көптеген стандартты редактірлер TCustomEdit класының ұрпақтары болып табылады. TWinControl класының ұрпақ класы болып табылатын TCustomEdit класы барлық мәтіндік редакторларға жалпы болып табылатын сипаттамалар тізімінен тұрады. Ең негізгісі болып келесі қасиеттер табылады:

property AutoSelect: Boolean;

Егер қасиеттің мәні True – ге (мәні үнсіздік бойынша) тең болса, онда мәтін редактір белсенді болғанда ерекшеленеді.



property AutoSize: Boolean;

Егер қасиеттің мәні True – ге тең болса, онда редактордың биіктігі қаріптің биіктігіне сәйкес автоматты түрде өзгереді.



property MaxLength: Integer;

Редактірге орналастырылатын символдардың максимальды санын анықтайды. Егер қасиеттің мәні нольге тең болса (үнсіздікпен қолданылады), онда редактірге символдардың ерікті санын орналастыруға болады.



property PasswordChar: Char;

Редактірге нақты енгізілетін симолдардың орнына бейнеленетін символды береді. Редактірдің мұндай тәртібі бағдарламада парольді қолданғанда керек болады. Егер қасиеттің мәні коды 0-ге тең (мәні үнсіздік бойынша) символ болса, онда енгізілетін символдар түрлендірілусіз бейнеленеді.



property ReadOnly: Boolean;

Егер қасиеттің мәні True – ге тең болса, онда мәтін тек оқуға ғана тағайындалған, яғни оны өзгертуге болмайды. Үнсіздік бойынша мәні False – ге тең.

TCustomEdit класында редактірлеу функцияларын жүзеге асыратын бірнеше әдістер анықталған:

procedure Clear; virtual;

Редактірде орналастырылған барлық мәтінді жояды.



procedure ClearSelection;

Мәтіннің ерекшеленген үзіндісін жояды.



procedure CopyToClipboard;

Мәтіннің ерекшеленген үзіндісін Clipboard буферіне көшіреді.



procedure PasteFromClipboard;

Clipboard буферіндегі мәтінді редактірдің меңзерінің орнына көшіреді.



procedure SelectAll;

Редактірде орналасқан бүкіл мәтінді ерекшелейді.

Көптеген редактірлерде келесі командаларды орындайтын, құрамдас жергілікті менюлер бар:

Undo – мәтіндегі соңғы орындалған операцияны болдырмау;

Cut – ерекшеленген үзіндіні қиып алып, оны алмасу буферіне орналастыру;

Copy – ерекшеленген үзіндіні алмасу буферіне көшіру;

Paste – алмасу буферіндегі үзіндіні мәтіннің меңзер орнынан бастап орналастыру;

Delete – ерекшеленген үзіндіні жою;



Select All – бүкіл мәтінді ерекшелеу.

Edit енгізу жолы

Иерархиясы:



TObjectTPersistentTComponentTControl – TWinControl –

TCustomMaskEdit – TCustomEdit.

Құрауыштар Палитрасының Парағы: Standard.



TEdit класының данасы болып табылатын енгізу жолы Edit мәтіннің бір жолын енгізуге және редактірлеуге мүмкіндік береді.

TEdit класы – TCustomEdit класының тікелей ұрпақ классы және оның барлық сипаттамаларын туындайды.

Енгізу жолының негізгі қасиеті болып Text қасиеті табылады:



property Text: TCaption;

type

TCaption = string;

Edit редактіріндегі символдық жолдан тұрады.

Символдық жол қасиетке пішінді құрастыру кезеңінде немесе бағдарламаның орындалуы барысында орналастырылуы мүмкін. Көбінде редактір ақпаратты енгізу үшін қолданылады. Бұл жағдайда пішінді құрастыру кезеңінде Text қасиетіне бос жолды орналастыруға болады, ал бағдарламаның орындалуы барысында одан енгізілген мәндерді алуға болады. Егер сандық берілгендердің символдық белгілері енгізілсе, онда алдыңғы уақытта типті түрлендіретін сәйкес бағыныңқы бағдарламаның көмегімен түрленуі қажет (Б қосымшасына қараңыздар).

Енгізу жолы терезелік басқару элементі болып табылғандықтан, ол пернетақта мен тышқан арқылы берілген хабарламаны, тасымалмен байланысты, активтеу мен активтеуді болдырмау, сонымен қатар OnChange оқиғасын өңдейді:

property OnChange: TNotifyEvent;

Енгізу жолының мәтіні өзгергенде өрбиді. Үнсіздік бойынша TEdit класының енгізу жолының оқиғасы болып табылады.



Memo мәтіндік редактірі

Иерархиясы:



TObjectTPersistentTComponentTControl – TWidgetControl –

TCustomEdit – TCustomMemo.

Страница Палитры Компонентов: Standard.

Memo мәтіндік редактірі Edit енгізу жолымен салыстырғанда бір емес, кез – келген жолдар санынан тұруы мүмкін. Memo редактірі TMemo класының данасы болып табылады. Өз кезегінде TMemo класы тікелей TCustomMemo класынан туындаған, онда көп жолды мәтіндік редактірлердің негізгі сипаттамалары берілген.

TCustomMemo класының келесі қасиеттерін белгілейік:

property Lines: TStrings;

TStrings кластық типтің қасиеттері (төменнен қараңыздар). Редактірде орналасқан жолдар тізімін береді.

property ScrollBars: TScrollStyle;

type

TScrollStyle = (ssNone, ssHorizontal, ssVertical, ssBoth);

Скроллингтің сызғыштарының барын береді:

ssNone – сызғыш жоқ,

ssHorizontal – тек көлденең сызғыш,

ssVertical –тек тік сызғыш,

ssBoth –екі сызғыш та бар.

property WantReturns: Boolean;

Enter пернесінің әрекетін анықтайды. Егер мәні True – ге тең болса, онда Enter пернесіне басқанда мәтіннің жаңа жолына ауысу орындалады. Қарсы жағдайда енгізу фоксы пішінге беріледі, ал мәтіннің жаңа жолына көшу Ctrl+Enter пернелерінің комбинациясын басқанда орындалады.

Edit енгізу жолы сияқты, көп жолды Memo мәтіндік редактірі пернетақта мен тышқан арқылы берілген хабарламаны, тасымалмен байланысты, активтеу мен активтеуді болдырмау, сонымен қатар OnChange (үнсіздік бойынша ) оқиғасын өңдейді:

TStrings класы

TStringsTPersistent класының тікелей ұрпақ класы абстрактілі класс болып табылады. Бұл кластың объектілері жолдар тізімін береді. Әрбір жолмен қандай да бір объект байланысқан болуы мүмкін, мысалы сурет немесе пиктограмма. Егер жолмен ешқандай объект байланыспаған болса, онда оған нұсқағыштың мәні nil – ге тең. TStrings класы жалпы тағайындалған класс болып табылады және Delphi – дегі көптеген құрауыштарға сәйкес типтердің қасиеттерін анықтау үшін қолданылады. TStrings класының негізгі қасиеттерін қарастырайық:

property Count: Integer;

Тізімдегі элементтердің санын анықтайды.



property Objects[Index: Integer]: TObject;

Index индексі бар жолмен ассоциативтелген объектіге нұсқағышты анықтайды.



property Strings[Index: Integer]: string;

Тізімнің Index индексі бар жолын анықтайды. Бірінші жолдың индексі – 0.



property Text: string;

Тізімнің барлық жолдарынан тұрады, бөлгіштерді қоса алғанда – каретканы қайтару символы және жолды аудару (#13#10).



TStrings класында анықталған негізгі әдістер:

function Add(const S: string): Integer; virtual;

Тізімге S жолын қосады және осы жолдың тізімдегі реттік нөмірін қайтарады.



function AddObject(const S: string; AObject: TObject): Integer; virtual;

S жолын және онымен байланысты AObject объектісін тізімге қосады және тізімдегі жол мен объектінің индексін қайтарады.



procedure AddStrings(Strings: TStrings); virtual;

TStrings класының басқа Strings объектісінің тізімін ағымды тізімге қосады.

procedure BeginUpdate;

Тізімді жаңалаудың басын бекітеді. Экранда қайта сурет салу уақытша тоқтатылады.



procedure Clear; virtual; abstract;

Тізімдегі барлық жолдарды және объектіге нұсқағыштарды жояды.



procedure Delete(Index: Integer); virtual; abstract;

Index индексі бар элементті тізімнен жояды.



procedure EndUpdate;

Жаңартудың аяқталуын бекітеді және қажет болған жағдайда жолдарды сұрыптайды.



procedure Exchange(Index1, Index2: Integer); virtual;

Index1 және Index2 индекстері бар екі элементі орындарымен ауыстырады.



procedure Insert(Index: Integer; const S: string); virtual; abstract;

Тізімге Index индекспен S жолын қояды.



procedure InsertObject(Index: Integer; const S: string; AObject: TObject);

Тізімге S жолын және Index индекспен AObject объектісін қояды. procedure LoadFromFile(const FileName: string); virtual;

FileName аты бар файлдан тізімді іске қосады.

procedure Move(CurIndex, NewIndex:Integer); virtual;

Тізімнің элементін CurIndex позициясынан NewIndex позициясына жылжытады.



procedure SaveToFile(const FileName: string); virtual;

тізімді FileName аты бар файлға орналастырады.



Button батырмасы

Иерархиясы:



TObjectTPersistentTComponentTControl – TWinControl –

TButtonControl.

Құрауыштар Паоитрасының Парағы: Standard.

Батырманың негізгі тағайындалуы – оған шерткенде оқиғаның қалыптасуы. Батырма оған шерткенде қандай да бір әрекетті орындайтындай қажеттілік туатын пішіннің кез – келген жерінде орналасуы мүмкін. Button батырмасы TButton класының данасы болып табылады, олардың арғы тектері болып TButtonControl және TwinControl кластары табылады. Сондықтан Button батырмасы терезелік басқару элементі болып табылады.

TButton класына келесі қасиеттер қосылған:

property Cancel: Boolean;

Егер қасиеттің мәні True – ге тең болса, онда ESC пернесіне басу, берілген батырмаға басумен мәндес болады.



property Default: Boolean;

Егер қасиеттің мәні True – ге тең болса, онда Enter пернесіне басу, берілген батырмаға басумен мәндес болады, егерде енгізу фокусында қандай да бір басқа батырма орналаспаса.



property ModalResult: TModalResult;

type

TModalResult = Low(Integer)..High(Integer);

Модальды терезелерді жапқанда қолданылатын қасиет. Қарапайым терезелер үшін бұл қасиеттің мәні mrNone – ге тең болуы керек..

TButton класында Click әдісі анықталған:

procedure Click; override;

Бұл әдістің орныдалуы батырмаға шерткенге мәндес келеді, яғни оның орындалуының нәтижесінде батырма үшін OnClick оқиғасы өрбиді.



TButton класының батырмаларының ерекшеліктері оларда Color қасиеті болмайды және фонның түсі Windows операциялық жүйесі арқылы анықталады.

TButton класының батырмалары терезелік басқару элементтері үшін анықталған оқиғаларды өңдейді. Үнсіздік белгісі бойынша батырма үшін оқиға болып OnClick оқиғасы табылады.

Мысал 3.1.1. Label, Edit, Memo және Button құрауыштарын қолдану.
Ағымды коэффициенттері бар () квадрат теңдеудің түбірлерін есептейтін бағдарлама құру




Шешімі:

    1. Меншік қаптамаңызға (№1 – ші зертханалық жұмысқа қараңыздар) MyFirstProject қаптамасын құрыңыздар (кез – келген басқаны да құруға болады).

    2. Негізгі менюдің File | New | Application командасы арқылы жаңа қосымша ашыңыздар.

    3. Form1 пішініне келесі құрауыштарды орналастырыңыздар (3.1.1 суретіне қараңыздар):

    4. Label тамғасының Caption қасиетіне мына мәнді беріңіздер:
      «Введите коэффициенты квадратного уравнения
      A2*X^2+A1*X+A0=0»
      Мәтін екі жолға орналасу үшін және тамғаның ортасы бойынша теңестірілуі үшін қасиеттің келесі мәндерін қажетті түрде орнату керек:
      AutoSize – False,
      WordWrap – True,
      Alignment – taCenter.
      Тамғаның өлшемін және оның орналасу жағдайын қолмен ұйымдастыруға болады.
      Font қасиетіне келіңіздер және үш нүктесі бар батырмаға шертіңіздер. Пайда болған терезеден қаріптің өлшемін 8 – ден 10 – ға өзгертіңіздер. OK батырмасына басыңыздар .

    5. Label2, Label3 және Label4 тамғалары үшін Caption қасиетіне ‘A0=’, ‘A1=’ және ‘A2=’ - ге тең деп сәйкес орнатыңыздар.

    6. Edit1, Edit2 және Edit3 қасиеттері үшін Text қасиетінің мәнін бос жолға тең деп орнатыңыз.

    7. Memo1 құрауышы үшін Lines қасиетін таңдаңыздар және үш нүктесі бар батырмаға басыңыздар. Пайда болған String List Editor терезесінен ‘Memo1’ жолын жойыңыздар. OK батырмасына басыңыздар.

    8. Button1 және Button2 батырмаларының Caption қасиетіне ‘Решение’ және ‘Очистить’ сәйкес орнатыңыздар.

    9. Екі рет шерту арқылы Решение батырмасын белсенді етіңіз және OnClick оқиға өңдеуішіне келесі жолды қойыңыздар:

procedure TForm1.Button1Click(Sender: TObject);

var

a0, a1, a2, d, x1, x2: Double;



begin

a0 := StrToFloat(Edit1.Text);

a1 := StrToFloat(Edit2.Text);

a2 := StrToFloat(Edit3.Text);

d :=a1*a1-4*a2*a0;

IF d>=0 THEN

BEGIN

x1 := (-a1+sqrt(d))/(2*a2);

x2 := (-a1-sqrt(d))/(2*a2);

Memo1.Lines.Add(’Результат:’);

Memo1.Lines.Add(’x1 = ’+FloatToStrF(x1,ffGeneral,7,2));

Memo1.Lines.Add(’x2 = ’+FloatToStrF(x2,ffGeneral,7,2));



END;

IF d<0 THEN

Memo1.Lines.Add(’Решений нет:’);



end;

Бағдарламаушы терген жолдар жартылай қою қаріппен ерекшеленген.



    1. F12 пернесіне басыңыздар және пішінге қайтып оралыңыздар. Екі рет шерту арқылы Очистить батырмасын белсенді етіңіз және OnClick оқиға өңдеуішіне мына жолды қойыңыздар

Memo1.Clear;

    1. Жобаны C:\…\Мои документы\…\ MyFirstProject қаптамасына сақтаңыздар және F9 функциональды пернесін қолданып қосымшаны іске қосыңыз. Квадрат теңдеуді шешу үшін коэффиценттерді енгізіңіз және Решение батырмасына басыңыз. Редактірлеу терезесін тазалау үшін Очистить батырмасына басыңыздар (сурет 3.1.2 қараңыздар).


Достарыңызбен бөлісу:
1   2   3




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

    Басты бет