Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
дарис.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.78 Mб
Скачать

Нақты деректер типі.

Нақты деректер типі бөлшек бөлігі бар сандарды сақтау үшін қолданылады. Бұл типтер Real48, Real, Single, Double, Extended, Comp, Currency

Real типтер негізі.

Бұрынғы тіл болжаммен тек қайта ұқсастығын сақтау үшін ең аз өнімділікті Real48 типі қамсыздандырады. Extended типінің максималды нақтылығы бар, бірақ оның басқа платформаға ауысқан кезде проблемалар тууы мүмкін. Тип Comp типін қатаң айтқанда нағыз сан емес үлкен бүтін болып табылады, бірақ бүтіннен айырмашылығы бар, мысалы, соған инкремент және декремент функцияларын қолдануға болмайды. Currency типі ақшалы өлшемді ұсыну үшін қолданылады. Жадта ол масштабталған 8-байтта бүтін 10000 рет сияқты сақталады.

Булевтер деректер типі.

Айнымалы булевалық деректер типі логикалық мәндерді ұсынады, мысалы, true (шындық) және false (өтірік). Булев типтер бүтін реттелген типтерге жатады. Бұл типтер Boolean, ByteBool, WordBool, LongBool. Көбінесе Boolean типін қолданған жөн, қандайда бір процедураға қолданғанда анық түрде басқа типтерді талап етеді.

Булевтік типтер үшін and (И), or (ИЛИ), not (HE, терістеу) және хоr (жоюшы ИЛИ ) операциялары анықталған. Бұл операцияларды қолдану арқылы операторлар қатарында күрделі шарттарды қалыптастыру мүмкіндігі кеңейеді.

Аталған және шектелген деректер типі

Сипатталған типтер бөлімінде программист өзі деректер типі айнымалылары қабылдайтын мәндерді санау арқылы кейбір деректер типін анықтайды. Бұл типтерге саналған және шектелген типтерді жатқызуға болады.

Саналған деректер типі - бұл көптеген реттелген элементтерден құралатын тип. Саналған типтерді анықтау кезінде бұл типтердің мәндері қабылдайтын барлық мәндер анықталады. Құрастырылған саналған тип TYPE типтер бөлімінде анықталады:

<тип аты> = (мән1, мән2, …., мән n);

<тип аты> - программист анықтаған тип аты;

( мән1,…, мән n) – анықталған тип тұрақтысы болып табылады. Айнымалы саналған типтерді программада саналған жақша ішіндегі мән қабылдай алады. Саналған тип мәні нөлден бастап реттелген олардың санына дейін нөмерленген. Мысалға, “ апта күндері ” типін анықтаймыз

Type day_of_week=(mon, tue, web, thu, fri, sat, sun);

Сосын сипатталатын бөлімге айнымалылар типін жазамыз day_of_week:

Var day: day_of_week;

Саналған типтер мәнінде тек салыстыру операциялары мен функциялары анықталған SUCC, PRED, ORD.

Айнымалы саналған типтерді кіру-шығу операцияларында қолдануға болмайды. Бұл жетіспеушілікті тез жеңуге болады. Ол үшін элементтердің реттелген нөмерлерін санауға шығаруға болады және элементке сәйкес мәндерді қолданып шығаруға болады.мысалы CASE вариант операторы.

Айнымалы саналған типтерді басқару құрылымында қолдануға болады.(IF,FOR…). Мысалы:

If day=sat then{сенбі күнгі қозғалыс};

For day :=mon to sun do {тело цикла}

Шектелген деректер типі диапазондық мәндерде берілген мәндерді қабылдай алады. Диапазонның шектелуі минимальдық және максимальдық диапазондарының нұсқауымен беріледі:

<мин мәні>..<макс мәні>

Шектелген типтер TYPE немесе VAR бөлімінде тек заттық типтен басқа анықталған және қарапайым типтердің шектелуінің енгізу көмегімен анықталады.Таңдалған кесіндідегі тип базалық тип болып табылады. Мысалы, шектелген типке мысал келтірейік:

Var i: 1…100; Simvol: ‘a’…’z’;

Айнымалы шектелген тип базалық типтердегі барлық қасиеттерді сақтайды. Барлық базалық типте анықталған стандартты функциялар мен операциялар шектелген типте қолданылады.

Бірқалыпты деректер типі. Бір өлшемді массивтер.

Массивтер құрылымдық типтерге жатады(күрделі). Күрделі типтер ортақ аты бар және біріктіріліп көрсетілген көптеген мәндерді ұсынады. Жиі қолданылатын күрделі типтер массив болып табылады.

Массив - бұл бір типтегі элементтердің реттелген жиынтығы. Әрбір элементтің индекс деп аталатын өзінің нөмері бар. Индекс бойынша массивтің әрбір элементіне тікелей жолды құруға болады.

Массив мына түрде беріледі:

ARRAY[тип индекс типі] OF < элемент типі>

Индекстер типі индекстің өзгеру шекарасын (диапазон) анықтайды. Ол кез- келген заттық емес қарапайым тип болуы тиіс. Элемент типі файлдық типтен басқа кез- келген болуы мүмкін. Массивті TYPE типтер бөлімінде, VAR айнымалылар сипаттамасында анықтауға болады.

Массив бір өлшемді, екі өлшемді болуы мүмкін. Бір өлшемді массивті вектор немесе жол ретінде елестетуге болады. Оның элементтеріне ену үшін бір индекс қолданылады.

Мысалы:

VAR MAS: ARRAY[1..10] OF INTEGER; - 10 элементі бар бүтін типтің массиві берілген.

Ену құрылымы. Массивтер бүтіндей өңделмейді, бірақ массивтің әрбір элементіне енуге болады. Бұндай енудің құрылымы индекстеу деп аталады, сондай-ақ массивтің идентификаторын және квадратты жақшадағы элементтің индексін көрсету керек.

Егер екі массивтің индекс типтері және компоненттері бірдей болса, оларды бір-бірімен байланыстырып және салыстыруға болады.

Матрица – екі өлшемді массив. Матрицалардың түрленуі мен тұрғызылуы.

Массивтер бір өлшемді және көп өлшемді болуы мүмкін (екі, үш өлшемді және т.б.).

Массив элементтері реттелген әрбір элементтке жалпы түрде жағдайдадағы орналасуын анықтайтын нөмір сәйкес (индекс). Әрбір элементке кіру рұқсатын алу үшін индекстеу тәсілі жүзеге асрылады.

Массивті сипаттау үшін array of (массив из) сөз тіркесі қолданылады және көрінісі бар:

array [индекстипі] of <тип>

Индекс типі – индекс мәнінің өзгеру шекарасын анықтайтын кез- келген реттелген нөмір.

Массивтің сипаттамасы келесі түрде беріледі:

<тип аты> = array [ индекс типі] of <деректер типі>;

mas = array [1..m] of integer; { m бүтін сандағы массив}

digit = array [0 .. 9] of char; {реттелген нөмердегі 0 ден 9ға дейін,10 символдық массив}

matrix = array [byte] of string; {массив 256 жол, 0 ден 255-ке дейін нөмірленген}

Деректер типі – Ішінде тұрақтылар және айнымалылар болатын сан. Олар әртүрлі типте болуы мүмкін:

-бүтін сандар (byte, shortInt, word, integer, longInt);

- нақты сандар (real);

- символьдық сандар типі (char);

- жолдық сандар типі (string);

- логикалық сандар типі (boolean);

- күрделі сандар типі (құрама (record), көпше (set) және басқа).

Элементтер саны массивтің өлшемі болып табылады. Элементтер типі массив типін анықтайды. Массивтің өшемі мен типі оның сипаттамасында көрсетіледі, мұнда өлшем не нақты мән, не бұрын анықталған тұрақты түрінде көрсетілуі мүмкін. Элемент нөмері индекс деп аталады. Индекстер бүтін оң тұрақтылар немесе бүтін айнымалылар болуы мүмкін. Массивтің кейбір элементтеріне жолығу үшін массивтің идентификаторымен бірге жақшаға элемент индексін көрсету қажет.

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

Екі өлшемді массивтің қос саны беріледі: M*N, мұнда M – жол саны, ал N – кестедегі баған саны.

мысалы: екі өлшемді массив Matr, 10*20 размердегі мына түрде сипатталуы мүмкін: Var Matr : array [1..10,1..20] of integer; онда Matr[5,7] – элемент, 5-ші жолда және 7-ші бағанда орналасқан.

Турбо Паскалда кез -келген тұрақты, айнымалы, функцияның мәні немесе өрнек өзінің типтерімен сипатталады. Бұл объектілердің кез келген типі көптеген объектісі болуы мүмкін рұқсат етілетін мәндерді, сондай-ақ объектіге қолданылатын рұқсат етілетін операцияларды анықтайды. Сонымен қатар тип ішкі ұсынылатын объектінің мәнінің форматын анықтайды.

Жолдар.

Литерлі (символьды) тип char ДК де кодтың кестесіндегі көптеген мәндерді анықтайды. Әрбір символға 0 ден 255 дейін сан беріледі. Программада айнымалылардың мәні және char типтегі тұрақтылар апострофында аяқталуы керек еді.

Символды типтерге қатынас операциялары анықталған: =, <>, >,<,<=,>=, логикалық типтің нәтижесін шығаратын келесі стандартты функциялар:

Chr(x) – х өрнегін символға түрлендіреді және символдың мәнін қайтарады

Ord(ch) – ch символын өзінің кодына түрлендіреді және кодтың мәнін қайтарады

Pred(ch) – алдыңғы символды қайтарады

Succ(ch) – келесі символды қайтарады

Жол (деректердің жолдық типі) – бұл ДК-дің кодты кестесінің символдардың орын басуы. Жолда символдар саны (жол ұзындығы) 0 ден 255 диапазонда жатуы мүмкін. Жолдық типтегі деректерді анықтау үшін string идентификаторы қолданылады, содан деректер типінің жолының максимальды ұзындығының мәні болатын (квадраттық жақшамен аяқталады).

Жолдық деректер тұрақтылар ретінде қолданылады. Жолдық тұрақты – апострофада аяқталатын символдар орынбасары .

Айнымалы жолдық типті айнымалылар сипатталу бөлімінде анықтауға болады:

Var <аты>: string[< жолдың максимальды ұзындығы>].

Жолдық сипатталуда ұзындықты көрсетпеуге болады, мұндай жағдайда оның максималды өлшемі – 255. Жол элементтерін квадраттық жақшада аяқталатын жолдың аты индекспен анықталады. Жолдың бірінші символының 1 және т. б. нөмері болады. Тип string және тип char ұқсас, олар бірдей өрнектерде қолданыла алады.

Операндамен бірге жолдық деректер қызмет ететін өрнек жолдық деп аталады. Олар жолдық тұрақтылардан, айнымалылардан, операциялық белгілерден тұруы мүмкін. Бұл деректермен тіркеу операциялары және қатынас операциялары рұқсат етілген (конкатенация).

Тіркелу операциялары (+) бірнеше жолдарды бір жолға біріктіріп тіркеу үшін қолданылады. Тұрақтылар және айнымалыларды да тіркеуге болады. Аяқталған жолдың ұзындығы 255 символдан жоғары болмауы қажет.

Қатынас операциялары (=, <>, >, <, <=, >=) екі жолды салыстырады және конкатенация операциясынан қарағанда приоритеті төмен. Салыстыру солдан оңға қарай бірінші ұқсас символға дейін жүргізіледі. Жол көбірек саналады, егер кодты кестеде бірінші ұқсас символдың көп нөмері болса.

Егер жолдар әр түрлі ұзындықта болса, бірақ жалпы бөлімде символдар ұқсас, онда қысқа жол азырақ болады.

Жолдық процедуралар мен функциялар.

Delete(St, poz, n) процедурасы – Poz позициясынан бастай отырып, St жолдағы n символын өшіру.

Insert (S1, S2, Poz) процедурасы – Poz позициясынан бастай отырып, S1 жолды S2 жолға қою.

Str(N,St) процедурасы –N сандық мәнін жолға түрлендіру және нәтижені St жолға орналастыру.

Val (St, N,Code) процедурасы – бутін саналған өлшемінде St мәнін өзгертеді немесе заттық тип және нәтижені Nге орналастырады. Code – бүтін саналған айнымалы. Егер түрлендіру операциясы кезінде қате табылса, онда Code мәні 0 тең, егер қате табылсв, онда Code бірінші қателескен санның позициясының нөмерін ие болады, ал N мәні анықталмаған.

Copy (S, Poz, N) функциясы – Poz позициясынан бастап символдардың S жолынан N ұзындығы бар жолшаны бөліп алады.

Concat (S1,S2,…,Sn) функциясы – S1,S2,…,Sn бір жолға барлық жолдардың тіркелуін орындайды.

Length(S) функциясы –S жолының ағымдағы ұзындығын анықтайды.

Pos(S1,S2) функциясы– S2 жолда S1 жолының бірінші пайда болуын анықтайды.

UpCase (ch) функциясы – жолдық әріптерді жазба әріптерге айналдырады. Әріптерді тек латын алфавитімен өңдейді.

Негізгі әдебиет: 1[863-894]

Бақылау сұрақтары:

1. Object Pascal-да деректер типін қалай ажыратуға болады?

2. Әр түрлі типтердің кейбіреуінің қасиетерінің бір екенін ескере отырып, Object Pascal дың типтерінің жіктелуін көрсетіңіз?

3. Қандай деректер типі жолдық және олармен қандай операциялар жүргізуге болады?

Дәріс №6. Қосымшаларды құру кезінде визуалдық компоненттерді қолдану. Шығару-енгізу мен редакторлау компоненттері.Мәтіндік ақпаратты енгізу мен көрсету компоненттері.

Delphi-дің визуалды компоненттерінің VCL-кітапханасының палитра компоненттері көптеген компоненттерден тұрады. Олар мәтіндік ақпаратты көрсетеді, енгізеді және редакторлай алады.

Төменде мәтінді енгізу және көрсетуге арналған компоненттер көрсетілген:

Пикто­грамма

Компонент

Бет

Мазмұны

Label

(метка)

Standard

Қолданушы өзгерте алмайтын тексті көрсету. Метка мен текстің түсін өзгертуден басқа тексті бейнелеудің түрлері көрсетілмеген. Негізгі қасиеті — Caption.

StaticText

(метка бордюрмен)

Additional

Label компонентіне ұқсас, бірақ бордю­рдің стильін өзгертуге мүмкіндік береді. Негізгі қасиеті — Caption.

Panel

(панель)

Standard

Басқару органдарын группалау үшін контейнер болып табылатын компонент, бірақ тексті көрсету үшін қолданылуы мүмкін және көлемді бейнелеуге болады. Негізгі қасиеті— Caption.

Edit

(редакторлау терезесі)

Standard

Біржолды тексті көрсету, енгізу және редакторлау. Бордю­рдің стильін өзгертуге мүмкіндік береді. Негізгі қасиеті — Text.

MaskEdit

(маскировты редакторлау терезесі)

Additional

Деректерді форматтау және шаблонға сәйкес символдарды енгізу үшін қолданылады. Негізгі қасиеті — Text және EditText.

LabeledEdit

(меткаға ұйір редакторлау терезесі)

Additional

Edit и Label комбинациясы. Негізгі қасиеті — Text және EditLabel.Caption. Delphi 6.

Memo

(көп жолды редакторлау терезесі)

Standard

Көпжолды тексті көрсету, енгізу және редакторлау. Бордю­рдің стильін өзгертуге мүмкіндік береді. Негізгі қасиеті — Lines.

RichEdit

(RTF форма­тындағы көпжолды редакторлау терезесі)

Win32

Компонент Windows 95 байытылған RTF форматындағы стильдегі редакторлау терезесі. Ол шрифт атрибутын таңдауға және тексті іздеуге және т.б. мүмкіндігі бар. Негізгі қасиеті — Lines.

ListBox

(тізім терезесі)

Standard

Windows-тің стандартты тізімін көрсету. Ол қолданушыға пункті таңдау мүмкіндігін береді. Негізгі қасиеті — Items.

CheckListBox

(тізім индикатормен)

Additional

Компонент ListBox тізімінің қасиеттері мен CheckBox индикаторының комбинациясының компоненті болып табылады.

ComboBox

(редакторланатын тізім)

Standard

ListBox және Edit функцияларын біріктіреді. Қолданушы тексті енгізе алады немесе тізімнен таңдай алады. Негізгі қасиеті — Items.

StringGrid

(жол кестесі)

Additional

Таблицадағы текстік ақпаратты көрсету, жол мен баған бойынша ауысуға болады және таңдау жасауға болады. Негізгі қасиеті — Cells.

Айтылған компоненттерден басқа текстік жазуларды көсету үшін кез-келген компоненттің Canvas (холст) қасиетінде көрсетуге болады.

Мысалы, опе­ратор түрінде

Canvas.TextOut(60,16,'Canvas');

(60, 16) нүктелерінің координатасынан бастап «Canvas» текстін печатать ете алады.

Барлық компоненттердің текст шрифті, оның өлшемі, стильі Font қасиетімен анықталады, ал ол көптеген қасиеттерден тұрады..

Label, StaticText и Panel компоненттеріндегі тексті көрсету. Айтылған компоненттердегі көрсетілген текст Caption қасиетімен анықталады. Мысалы: Labell.Caption := 'Число сотрудников: ' + IntToStr (I); //«+» конкатенацияны білдіреді.

Сандармен жұмыс істегенде жол мен санды бірге өзгерту функциясы қолданылады (FloatToStr, IntToStr, StrToFloat, StrToInt).

Ең қарапайым метка компоненттері Label, ең қиыны StringGrid.

StaticText және Panel компонентінде BorderStyle қасиеті бар. Ол рамка текстін(бордюр) анықтайды. Panel компонентінде BorderStyle қасиеті бар. Оның қосымша қасиеттері бар: BevelInner, BevelOuter, BevelWidth, BorderWidth олар тексті бейнелеуге мүмкіндік береді. Барлық қарастырылған компоненттердің формаға орналасуы Top, Left, Height, Width, Aline, Anchors, Constraints қасиеттеррімен анықталады.

Label и StaticText меткаларының өлшемдері AutoSize қасиетімен анықалады. Label меткасында WordWrap(сөзді тасымалдау) қасиеті бар

Edit, LabeledEdit и MaskEdit біржолды редакторлау терезесі.

Барлық қарастырылған терезелерде егізілген және көрсетілген текст Text қасиетінде. Егер енгізілген Сондықтан бағдарламада оны өңдеуді ойластыру керек. Мысалы:

var A: integer;

try

А := StrToInt(Edit1.Text);

... // операторы, использующие переменную А

except on EConvertError do

ShowMessage('Вы ввели ошибочное число; повторите ввод');

end;

MaxLength қасиеті енгізілген мәтіннің максималды ұзындығын анықтайды. Егер MaxLength = 0, онда мәтін ұзындығы шексіз. PasswordChar қасиеті редакторлау терезесін пароль терезесіне айналдырады. MaskEdit компоненті Edit и LabeledEdit компоненттерінен айырмашылығы, онда EditMask қасиетінде маска жолын беруге болады. Маска үш бөлімнен тұрады. Бірінші бөлімде — шаблонда арнайы символдар енгізіледі, оларды әр позицияға енгізуге болады және масканың өз символдары.; Екінші бөлімде 1 немесе 0 жазылады ол масканың символдарын Text қасиетіне енгізуге қажнттігін білдіреді. Үшінші бөлімде позицияны көрсету үшін қолданылатын символдар. Қорытындыны Text қасиетінен немесе EditText оқуға болады..

Мысалы: Маска шаблонының символы:

  • Символдағы болуы «!», EditText жетіспейтін символдар символы пробелмен көрсетіледі, символның жетіспеуі «!»,пробелы соңында орналасады.

  • «>» Символы, маска біткенше немесе «<» символы кездескенше, содан кейін жазылған символдардың барлығы жоғарғы регистрге жазылуы керек.

  • «<» Символы, маска біткенше немесе«>» символы кездескенше, содан кейін жазылған символдардың барлығы жоғарғы регистрге жазылуы керек.

  • «<>»символы, регистр анализі болмағандығын көрсетеді.

  • «\»символы, келесі символ әріптіболатынын білдіреді. Мысалы, «>»символы «\»символынан кейін >мән ретінде қабылданады.

  • «L» символы, бұл позицияда әріп болу керек екендігін білдіреді.

  • «I» символы, бұл позицияда әріп болу керек екендігін немесе ештеңе болмайтынын білдіреді.

  • «А» символы, бұл позицияда әріп болу керек екендігін немесе сан болатынын білдіреді.

  • «а» символы, бұл позицияда әріп болу керек екендігін, сан болатынын немесе ештеңе болмайтынын білдіреді.

  • «С» символы, бұл позицияда кез-келген символ болу керек екендігін білдіреді.

  • «с» символы, бұл позицияда кез-келген символ болу керек екендігін немесе ештеңе болмайтынын білдіреді.

  • «О» символы, бұл позицияда сан болатынын білдіреді.

  • «9» символы, бұл позицияда сан болу керек екендігін немесе ештеңе болмайтынын білдіреді.

  • «#» символы, бұл позицияда сан болатынын білдіреді, «+»мәні, «-»мәні немесе ештеңе.

  • «:» символы сағатты, минутты, секундтты бөлу үшін қолданылады.

  • «/» символы ай, күн, жылды бөлу үшін қолданылады.

  • «_» символы текстке автоматты түрде пробел қоюды білдіреді.

Масканы EditMask қасиетінен немесе арнайы маска редакторының көмегімен енгізуге болады.

Көпжолды Memo және RichEdit редакторлау терезесі.

Memo және RichEdit компоненттері көптеген функциялары бар және көптеген редакторларға сәйкес функциялары бар. Memo компонентінде формат (шрифт, оның атрибуты, түзетулері) барлық текстке бірдей және Font қасиетімен анықталады. Компонент RichEdit мәтіннің байытылған RTF форматында жұмыс істейді.

Memo және RichEdit терезелерінің негізгі қасиеттері— Lines. Жобалау процессінде Lines жанындағы көп нүктені басу арқылы Объектілер инспекторында жол тізімін редакторлау терезесімен жұмыс істейміз.

String типіндегі барлық мәтін Text қасиетінде колданылады. Жеке жолға рұқсат алу үшін Strings [Index: Integer] қасиетінің көмегімен алуға болады. Индекстер барлық жердегідей, Delphi-де де 0-ден басталады. Сондықтан Memo1. Lines. Strings[0] — бұл мәтіннің бірінші жолы. Count қасиеті мәтіндегі жолдардың санын көрсетеді. Мәтінді тазалау үшін Clear процедурсын орындау қажет. Мәтіннің соңына жаңа жол енгізу үшін Lines қасиетінің Add немесе Append қолдану қажет. Мәтінді жүктеу үшін LoadFromFile тәсілі қолданылады.Мәтінді сақтау үшін SaveToFile тәсілі қолданылады. Memo1 терезесіне файлдан мәтін жүктеу үшін мына команда орындалады:

Memol.Lines.LoadFromFile('text.txt');

Файлдағы тексті сақтау үшін мына команда орындалады:

Memol.Lines.SaveToFile('text.txt');

Негізгі әдебиет: 1 [140-210]

Бақылау сұрақтары:

1.Мәтіндік ақпаратты енгізу, көрсету үшін қандай компоненттер қолданылады. Label, StaticText және Panel компоненттеріндегі мәтін қандай қасиеттермен көрсетіледі?

2. Edit, LabeledEdit и MaskEdit редакторлау терезесі, мәтіннің қасиеттері?

3. MaskEdit компоненті басқа редакторлау терезесінен немен ерекшеленеді?

4. Маск не үшін арналған?

5. Memo және RichEdit көп жолды редакторлау терезелері не үшін арналған?

Дәріс№ 7. Кестелер мен тізімдерді тұрғызу компоненттері. Тізімдерден таңдау компоненттері — ListBox, CheckListBox, ComboBox.

ListBox және CheckListBox компоненттері жол кестесін көрсетеді, және қолданушыға содан керекті жолды таңдауға мүмкіндік береді.

ListBox және CheckListBox негізгі қасиет — Items (TStrings типі).

Осы жұмысты орындаған кезде қасиеттерімен, TStrings класстық әдіс және қасиеттері қолданылады.

- Clear (ListBox1.Items.Clear)

- Add (ListBox1.Items.Add(Edit1.Text))

- AddStrings (ListBox1.Items.AddStrings (Memo1.Lines); )

- Append (ListBox1.Items.Append(Edit4.Text)

- Strings (ListBox1.Items.Strings[2])

- ItemIndex (ListBox1.ItemIndex)

- Count (Memo1.Lines.Count)

және басқаларымен. Осы клас сәйкесінше әр жолға кейбір объектіні орналастыруға мүмкіндік береді. Сонда қолданушының таңдауын сол кестеде рұқсатынша программалық өзгерістер берілген объектіге байланысты.

List Box құрамында қолданушыға тізімде көптеген таңдау жасауға мүмкіндік туғызатын MultiSelect қасиеті бар. Егер MultiSelect=false болса, онда қолданушы тізімнен бір элементті ғана таңдай алады. Бұл жағдайда қолдану барысында ғана орындалатын ItemIndex қасиеті арқылы таңдалған қатардың индексін білулге болады. Егер ешқандай қатар таңдалмаса, онда ItemIndex=-1.

Жобалау барысында ItemIndex-тің бастапқы мәнін беру мүмкін емес. Қалыпты жағдайда ItemIndex=-1.Бұл қасиетке мән беруге болады, мысалы оқиғаларды өңдеу OnCreate формасына List Box1. ItemIndex:=0 оператор түрін енгізу арқылы.

Егер көп түрлі таңдау (MultiSelect=ture) қолданылса, онда ItemIndexмәні фокуста жатқан тізімнің элементіне сәйкес келеді. Көптік таңдауда Bolean типін Selected {Index:Integer} қасиетін тексеру арқылы берілген элемент таңдалды ма жоқ па, тексеруге болады.

MultiSelect=ture барысында қолданылатын көптік таңдау әдісіне Extended Select қасиеті де әсер етеді. Егер Extended Select=ture болса онда қолданушы элементтер интервалын бөләп алу үшін элементтердің бірін бөліп алып курсорды өзге элементке ауыстырады. Егер қолданушы таңдау барыснда Ctrl пернесін жібермей басып тұрса, онда бір-бірімен қатар жатпайтын элементтерді бөліп көрсете алады. Егер Extended Select=false,онда таңдау барысында Shift және Ctrl клавиштері жұмыс істейді.

Егер тізімдегі бағаналар ListBox құрамының терезесіне бітіндей симаса, онда бағаналардың санын Columns қасиеті арқылы анықтауға болады.

Sorted қасиеті арқылы тізімді алфавит бойынша реттеуге болады. Sorted= true-де орнатсақ, онда ол қолданушыға бірінші белгісіне сәйкес келетін тізімнің қатарын тез табуға мүмкіндік береді,ал Delphi 6-да виртуалды тізімдер құру мүмкіндігі енгізілген.

Ib ownerDrawFixed және Ib OwnerDrawVariable мәндері тізімге бейнелі негізу үшін қолданылыды. Сонымен қатар Ib ownerDrawFixed мәні тізім дегі элементтердің биіктіктері әртүлі болуы мүмкіндігі білдіреді. Ib Vertual және Ib Vertual Dwner-Draw мәндері тақырыпты және бейнелі виртуалды тізімдерге сәйкес келеді және тізімдегі барлық элементтердің биіктіктері бірдей екендігін білдіреді, ал Ib OwnerDrawVariable элементтердің биіктіктері әртүрлі болуы мүмкіндігін білдіреді. Ib Vertual және Ib VertualOWner –Draw мәндері тақырыпты және бейнелі виртуалды тізімдерге сәйкес келеді және тізімдегі барлық элементтердің биіктіктері бірдей екендігін білдіреді. IbStandard-та (қалыпты жағдайдағы мәні) орнатылған Style қасиеті қатар тізіміне сәйкес келеді. Style қасиетінің өзге мәндері тізімде сөзді ғана емес бейнені де көрсетуге мүмкіндік береді.

IbOwnerdrawfixed немесе IbOwnerDrawVariable-ға тең Style мәнінде тізімнің қандай-да бір қатары пайда болуы кезінде OnDrawItem жағдайы туындайды.

Control параметрі оқиға болып жатқан тізімді нұсқаушы болып табылады. Index параметрі-қайта сызылатын элементтің индексін көрсетеді. Trect типті Rect параметрі тізімде бейнеленген элементке сәйкес келетін тізімнің аумағын көрсетеді. TownerDrawstate параметрі жиынтық болып табылады, оның элементтері odselected –қатар бөлініп алынса, odFoused-қатар фокуста орналасса, мәндері болуы мүмкін. OnDrawItem оқиғаларды өңдеуіште элемент бейнесін салу керек.

IbOwnerDrawFixed тең Style мәнінде сызбастан алдын OnDrawItem оқиғасы туындайды. Style=IbOwnerDrawVariable де бұл оқиғадан алдын, өзгесі-OnmeasureItem оқиғасы туындайды, бұл жерде элемент биіктігін көрсету керек.

Control және Index параметрлері OnDrawItem өңдеу ішіндегідей мәнге ие болады, ал Height параметрінің мәнін берілген элементтің биіктігіне тең етіп беру керек.

OnData оқиғасы қосымшада тізімнің кезекті қатарын көрсету барысында туындайды.

Control параметрі-оқиға болып жатқан тізім. Index параметрі- бұл көрінуі тиіс қатардың индексі. Data параметріне бейнелейтін тақырыпты енгізу керек. Егер виртуалды тізімнің қатарларымен қандай-да бір объектіні байланыстыру керек болса, онда ал OnDataObject оқиғаларды өңдеушісі арқылы жасалынады.

Index параметрі қатардың индексін көрсетеді, ал DataObject параметріне қатармен байланысатын объект енгізіледі.

Виртуальді тізімді басқару үшін, мысалы, қатарды бірінші белгі бойынша іздеу немесе қатарларды реттеу үшін OndataFind оқиғаларды өңдеушісін жазу керек.

FindString параметрі-ол индексін Result сияқты қайтару керек болатын іздеуші қатар.

Result-функция арқылы қайтарылатын нәтиже.

CheckListBox индекаторлы тізім-ол ListBox сияқты көрінеді, бірақ әрбір қатардың қасында индекаторы бар болады. Қолданушы кез-келген сәтте индекаторға ауыса алады. Индекаторды әрбір объектінің сипаттамасы жазылады, мысалы берілген тауардың қоймадағы саны.

CheckListBox құрамдастарын тізім ретінде сипаттаушы өзге қасиеттері ListBox-қа сәйкес, тек қана көптік таңдаушы анықтайтын қасиеттері өзгеше. Бұл қасиеттер CheckListBox құрамдасына керек емес, себебі онда көптік таңдаушы индекаторларды орнату арқылы жүзеге асыруға болады.

Delphi 6-дан бастай отырып CheckListBox –те тақырып арқылы тізімді бірнеше бөлімге бөлуге мүмкіндік беретін жаңа қасиеттері пайда болады. Header қасиеті сәйкес қатар тақырып болып табылады ма, әлде әдеттегі жай қатар (false мәні) ма екенін анықтайтын индексацияланған мәндер жиынынан тұрады. Header қасиеті орындалу барысында бағдарламалы түрде енгізіледі. (қалыпты жағдайда барлық мәндер false-ке тең) Тақырыптар қатарларда беріледі, және фонының түсі HeaderBackroundColor қасиеті арқылы, ал жазудың түсі HeaderColor қасиеті арқылы анықталады.

ValuelistEditor құрамдасы. Бұл «Атау=мән» түріндегі тізімнің атаулар үшін «кеу» деп аталатын, ал мәндер үшін «Value» деп аталатын екі бағана бар.Жобалау барысында немесе бағдарламалау арқылы бағананың атауын өзгертуге болады, ол үшін Tsrings типті Title Captions қасиеті қолданылады. Бұл қасиеттің бірінші қатары-бірінші бағанаға (атаулар) ол екінші қатары-екінші бағанаға сәйкес келеді.

Tstrings типті strings қасиеті барлық қатарлардың тізімімен тұрады. Жобалау барысында ол обьектілердің инспекторынан шақырылатын қатарлардың редакторы арқылы толтырылуы мүмкін. Орындау барысында қолданушы егер құрамдаста редакторлауға жол қойылса толтыру мүмкін. Сонымен қатар бағдарламалау арқылы TStrings типті өзге тізімнің мазмұнына TStrings қасиетін иелендіруге болады. Онда тізімнің құрамындағылар құрамдастың бағаналарынан көрінеді. TStrings классты әдістер тізімді басқаруға, яғни қатарды қосу және т. б. Жасауға мүмкіндік береді.

Keys қасиеті атаулардың индекацияланған тізімі болып табылады. Индекстер 1 санынан басталады. Vales[const key: string]: string қасиеті key атаулы қатарға мән беруге немесе мәнін оқуға мүмкіндік береді. Егер қасиет мән беру үшін қолданылса, ал тізімде key атауы жоқ болса, онда тізімге атауы және мәні көрсетілген жақа қатар қосылады. Егер қасиет оқу үшін қолданылса, ал key атауы тізімде жоқ болса, онда бос қатар қайтарылады.

Атаулар мен мәндерге ену мүмкіндігін Strings, Names және Strings, Values қасиеттері береді.Қатар элементтеріне енуге CELES [Acol,Arow: integer].Бұл қасиетте Acol=0-атауы бағанасына сәйкес келеді. Arow=0-тақырып қатарына , ал ARow>0 0-тізім қатарына сәйкес келеді. Оқу үшін арналған RowCount қасиеті тақырып қатарымен қоса алғанда қатарлардың санын көрсетеді.

KeyOptions қасиеті қолданушыға атаулар бағанасын редакторлау барысында пайдаланылатын операцияларды анықтауға мүмкіндік береді.Бұл қасиет жиынтық немесе KeyEdit, KeyAdd,KeyDelete, KeyUnigue элементтерінен тұруы мүмкін. KeyEdit элементі қолданушыға бірінші бағанадағы атауларды редакторлауға мүмкіндік береді. KeyAdd элементі қолданушыға тізімге Insert түймесін қолдана отырып немесе курсорды соңғы қатардың төменіне бағыттай отырып жаңа қатарларды қосуға мүмкіндік береді.

KeyAdd элементін тек қана KeyEdit элементімен бірге қосуға болады. KeyDeletе элементі қолданушыға бөлініп алынған қатарды Deletе клавиші арқылы өшіруге мүмкіндікі береді. KeyUnigue элементі қолданушыға тізімде бар атау мен жаңа қатарды қосуға мүмкіндік бермейді.

ItemDrops қасиеті қолданушыға тізімнің элементтерінің мәнін редакторлаудың әдістерін басқаруға мүмкіндік береді. Элемент оның атауымен немесе қатар индексімен 0-ден басталып беріледі. ItemProps массиві сәйкес элементке енуді сипатайтын ItemProp топты объектілерден тұрады.

Бұл топтың қасиеті мәндерді редакторлаудың әдістерін береді.

Edit mask

Маскаландырылған енгізу

EditStyle

Редакторлау стилі

esSimple

Көп нүктелі түйме, оны басса onEdit Button Click оқиғалы туындайды. Өңдеушіде бұл оқиға қасиеттердің мамандандырылған редакторының қандайды бір терезесінің шақырылуын қарастырылуы мүмкін.

es Pick List

Қатарлары PickList қасиеті арқылы берілетін немесе OnGetPickList оқиғалары өңдеушісінде (бұл екі мүмкіндікті өзара үйлестіруге болады, тізімді DickList-те модификациялау арқылы) берілетін түсуші (выпадающий) тізім

Key Desc

Key бағанасындағы тізімнің берілген элементінің қатарында пайда болатын атау

Max Length

Енгізілетін символдардың максималды саны

Pick List

Tstrings типті тізім, EditStyle=esPickList мәнінде түсуші тізімдер қатарында пайда болады.

Rea donly

Оқу үшін арналған (редакторлау) түзету енгізуге тиым салынған. Мысалы, Rea donly=true және esPickListнемесе es Ellipsis-ке тең EditStyle стиілінің бірге үилесуінде қолданушы мәнді тізімнен бөліп көрсету немесе қасиеттер редакторына енгізу арқылы ғана мән бере алады.

Display Options қасиеті-DocolumnTitls-тақырыпты қатары бекітілген, do KeyCol Fixed- атаулары бағанасының ені өзгермейді; doAutoColResize-құрамдас енінің өзгеруінде бағана ені автоматты түрде өздігінен өзгереді; сияқты элементтерден тұрады.

Options- қасиеті кестенің сызбасын өзгертуді басқаратын операциялардың жиынтығынан тұрады.

ComboBox-тізімдерінен таңдау құрамдастары.

ComboBox құрамдасының бейнелеу стилін таңдау.

Style қасиеті арқылы анықталады және келесі негізгі мәндерді қабылдауы мүмкін.

csDrop Down

Пайдаланушыға мәтінді енгізуге немесе түзетуге мүмкіндік беретін биіктіктері бірдей қатарлармен редакторлаушы терезеден тұратын түсуші тізім.

csSimple

Пайдаланушыға мәтінді енгізуге немесе түзетуге мүмкіндік беретін, биіктіктері бірдей қатарлармен редакторлаушы терезеден тұратын ашып көрсетілген тізім.

cs Drop Down List

Редакторлаушы терезесі жоқ, қатарларының биіктіктері бірдей қатарлардан тұратын түзуші тізім.

csOwner Drow Fixel

Бейне немесе мәтін болуы мүмкін, биіктіктері бірдей қатарлардан тұратын түзуші тізім.

csOwner Drow Variable

Бейне немесе мәтін болуы мүмкін, биіктіктері әртүрлі қатарлардан тұратын тізім.

cs Owner Draw Fixel және cs Owner Draw Variable стилдерінде ListBox-те аталып өткендей бейнелер on DrawItem оқиғаларды өңдеушісінде канвада сызылады. cs Owner Draw Varible стилінде бейнелеуден, (суреттеуден) алдын On Tea sure Item ққиғасы туындайды, оның өңдеушісі элементтің биіктігін енгізуді қажет етеді.

Пайдаланушының таңдаулы немесе ол арқылы енгізілген мәтінді Text қасиеті арқылы анықтауға болады.

Пайдаланушы арқылы таңдалған тізім элементінің индексі ItemIndex қасиеті арқылы анықталады. ItemIndex туралы және оның қалыпты жағдайы мен оған мән беру туралы жоғарыда атап өткендер ComboBox компоненті үшін де қолданылады. Сонымен қатар List Box-ке қарағанда ItemIndex-тің бастапқы мәнін беру ComboBox үшін маңыздырақ.

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

MaxLength қасиеті пайдаланушы түзетулер терезесіне енгізе алатын символдардың масималды санын анықтайды. Егер MaxLength=0, онда енгізілетін символдардың саны шектелмеген.

Drop down Count қасиеті айналдыру жиегінің пайда болуынсыз түсуші тізімде пайда болатын қатарлар санын көрсетеді.

ListBox компоненттіндегідей Sohted қасиеті тізімді альфавит бойынша реттеуге мүмкіндік береді. Sohted =true болған жағдайда жаңа қатарлар тізімнің соңында емес ал альфавмт бойынша қосылады.

Қатаралар кестесі компоненті – StringGrid компоненті. StringGrid компоненті қатарлар кестесі болып табылады. Кестенің мәліметтері тек қана оқуға арналған немесе түзетулер енгізуге болатын болуы мүмкін. Кестеде өткізу жиегі болуы мүмкін, сонымен қатар берілген бірінші қатарлар және болуы мүмкін, сонымен қатар берілген бірінші қатарлар мен бағаналардың саны бекітілген болуы мүмкін және өткізу мүмкін болмайды. Осылайша, компонент терезесінде тұрақты тұратын қатарлар мен бағаналардың санын беруге болады. Кестенің әрбір ұяшығына қандай да бір сәйкес объект қойылуы мүмкін StringGrid компоненті мәтіндік ақпаратты корсетуге арналған.

Көрсетілетін мәтінді анықтайтын компонентің негізгі қасиеттері: Сells {Acol},Arow: Integer}:Syring

Ұяшықтарында бағана және қатарлар. Индекстері ACol және ARow қатарлар

Cols{Index: Integer}:TStrings

Бағаналарында Index индекстері бар қатарлар тізімі

Rows{Index: Integer}: TStrings

Index индексті қатарлары бар тізімі.

Objects{Acol, ARow: Integer}:TO

Bject

Acol және Arow бағана және қатарлар индекстері бар ұяшықтағы қатармен байланысты объект

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

ColCount және RowCount бағаналар мен қатарлардың сандарын анықтайды, FixedCols және FixedRows бекітілген, өткізілмейтін бағаналар мен қатарлар санын анықтайды. LeftCol және TopRow қасиеттері экранда көрініп тұрған өткізілетін бағаналар және қатарлардың индекстерін анықтайды.

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

Options қасиеті қасиетінің көптеген қасиеттерін анықтайды жиынтық болып табылады, Мысалы: бекітілген (goFiedVert line және goFixed Horz Line ) және бекітілмеген (go VertLine және goHorz Line) ұяшықтықтардағы көлбеу және көлденең бөлуші сызықтардың бар болуын анықтайды, пайдаланушыға тышқанның көмегі арқылы бағаналар және қатарлардың өлшемін өзгертуге (go Col Sizing және go RowSizing) бағаналар мен қатарлардың орнын ауыстыруға (go ColMoving және go RowMoving) және т.с.с. Options қасиетіндегі маңызды элемент ол-go Editing болып табылады. Go Editing –ол кестенің құрамына түзетулер енгізуі мүмкіндігі.

Негізінен StringGrid компоненті пайдаланушының ұяшықта көрсетілген қандай-да бір мәнді таңдауы үшін қолданылады. Col және Row қасиеттері бөлініп алынған ұяшықтың бағаналарының индексін көрсетеді. Пайдаланушының көптеген ұяшықтары, қатарлар бағаналар бөліп көрсетуге мүмкіндігі бар.

StringGrid компонентінің көптеген оқиғалары арасынан пайдаланушы ұяшықты таңдаған мезетте туындайтын on Select Cell оқиғасын атап өту керек. Бұл оқиғаның өңдеушісіне бөліп көрсетілмеген ұяшықтың бағаналарымен қатардарының A Col және A Row параметірі Con Select бүтіндей беріледі. Con Select параметірін оған False мәнін бере отырып ұяшықты бөліп көрсетуге тиым салуға болады. Ал Acol және Arow параметрлері пайдаланушының бөліп көрсетуі бағдарламаға қандай да бір әсер ету үшін пайдаланылыды.

Негізгі әдебиеттер:

Бақлау сұрақтары:

1. Қандай компоненттер тізімдерден таңдау компоненттеріне жатады?

2. List Box және CheckListBox қасиеттерінің қандай негізгі қасиеті бар қай топтың қасиеттері және әдістерін роындау кезінде пайдалануға болады?

3. ComboBox компонент не үшін арналған?

4. String Grid компоненті не үшін арналған?

Дәріс № 8 Батырмалы компоненттер, ауыстыырғыштар. Сан мен уақытты еңгізіп көрсету. Таймер.

Пикто­грамма

Компонент

Бет

Сипаттамае

Button

(командалық батырма)

Standard

Жаңа батырмаларды орналастырып қолданушының қажетті команданы орындауға арналған командалқ батырма.

BitBtn

(графигі бар батырма)

Additional

Биттік графигі орналасқан жаңа батырмаларды құруға арналған батырма (мысалға ОК деген батырма).

SpeedButton

(фиксациясы және графигі бар батырма)

Additional

Инструменталдық басылған фиксация түріндегі және жылдам батырмалар, командалық менюді қаталау үшін орындалады.

RadioGroup

(радиобатырма тобы)

Standard

GroupBox топтық терезесінің комбинациясы RadioButton; ның радиобатырмасы болып табылады. RadioButton радиобатырмаларды құруға арналған батырма. Компоненттерге бірнеше батырма оналастыруға болады, бірақ бұдан басқа басқару органдары орындалмайды.

RadioButton

(радио-батырма)

Standard

Контейнерде орналасқан радиобатырмалар қолданушының қажеттілігіне қарай қандай мөлшерде болмасын түрлі радиобатырмалар берілген.

GroupBox

(топтасқан батырма)

Standard

RadioButton радиобатырмасы бар және Checkbox индикаторы бар басқару органдарын топтастыратын батырма

UpDown

(санаушы-батырма)

Win32

Санаушы батырма, Edit компоненттері сандық ақпаратты еңгізуге мүмкіндік береді

Checkbox

(жалаушасы бар контроль индикаторы)

Standard

Қолданушыға программаның опциясын қосып сөндіруге мүмкіндік береді.

CheckListBox

(индикаторлары бар тізім)

Additional

ListBox тізімінің комбинациясының қасиетіде. және CheckBox инкаторы бір компонентте орна ласқан.

TrackBar

(жүргізгіш)

Win32

Жүргізгіш түріндегі жылжыту батырмасы.

Scrollbar

(айналдыру сызғышы)

Standard

Форма мен компоненттердің көрінетін жағын басқару үшін және Windowsтың стандартты айналдыру сызғышы түріндегі батырма.

Timer

(таймер)

System

Көрсетілген уақыт интервалында функциялармен және процедуралармен жүмысты бастайтын батырма.

BitBtn батырмасындағы сурет Glyph қасиетінен алынды. Glyph батырмасын басқан кезде инспектор объектісінде Load командасы шақырылады. Бұдан кейін сіз суретті файылды ашу терезесіне өтесіз және биттік матрицадағы файлы бар bmp қажетті файлды таңдай аласыз. \program files\borland\borland shared. \Images\Buttons.коталогында)

Суреті бар файл құрамы төрт суреке дейін болады 16x16 размерде басылған батырма, алынбайтын оның қасиеті Enabled тең false батырмасы , қолданушы батырманы басқан кезде, фиксацияланған SpeedButton суретке арналған батырмасы іске қосылады. Көбінесе суреті бар батырмаларда екі пиктограмма қолданылады.

BitBtn тағы бір қасиеті Kind компоненті батырма типін анықтайды, тағыда бірнеше қасиеттер берілген.

Button және BitBtn басқару батырмалары. Caption (жазу) . символ алдында «&» амперсандасы жылдамдату символы қойылуы тиіс. Кез- келген батырманы шерткенде OnClick операциясы іске қосылады. Бүдан басқада манипуляция клавишалармен және тышқаннын батырмасымен байланысты көптеген

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

SpeedButton батырмаларының негізгі ерекшелігі GroupIndex қасиеті, AllowAHUp және Down болып табылады. Егерде GroupIndex = 0 болса, онда батырма Button және BitBtnдағыдай қасиетте қолданысқа ие болады. Қолданушы батырманы басқан кезде батырма ішіне кіріп содан кейін қалпына келеді. Бүл жағдайда AllowAHUp және Down қасиеттері батырманын қасиетіне әсер етеді.

Егер де қоданушы Grouplndex > 0 және AllowAHUp = true батырманы басатын болса батырма сол басылған түрінде қалады. Батырманы қайта басқан кезде батырма қалпына қайтып келеді.

Радиобатырмалар тобы- RadioGroup, RadioButton және GroupBox компоненттері.

Радиобатырмалар байланысқан индекаторлар тобын құрап, әдетте олардың ішінен біреуі ғана таңдалынады. RadioGroup компоненті рандиобатырмалар топтық панелі , үнемі баған мен жолдан тұратын радиобатырмалар орналасқан. Панельдің жоғарғы оң жағында орналасқан жазу Caption қасиетімен анықталады. Ал батырмалар жазуы үшін TStrings типіндегі Items қасиеті жауап береді.

ItemIndex қасиеті арқылы қолданушының қандай батырманы таңдағанын анықтай аламыз. Ол таңдалған батырманың индексін көрсетеді және индекс 0-ден басталады оның мәні ItemIndex=-1 дейін өзгереді.

RadioButton компоненттері GroupBox панелінде топтасқан. RadioButton радиобатырмасының қасиеті: батырма қасында пайда болатын түсініктеме үшін Caption қасиеті жауап береді. Ал Checked қасиеті қолданушының қажетті батырманың таңдалғанын, я таңдалмағанын көрсетді.

RadioButton радиобатырмалары GroupBox панелінде ғана орналасып қоймай басқада панельде немесе форманың өзіндеде орналасуы мүмкін .

CheckBox және CheckListBox индикаторлары. Жалаушасы бар индекатор CheckBox көбіне қолданушы белгілі бір қосымшаларды қосып сөндіруге немесе индикация жағыдайын тексеру үшін. Батрманы шерткен сайын оның мәні өзгереді. Жалпы алғанда әр үш мән сайын ерекшелеу, аралық және ерекшеленбеген, компоненттер қасиеттеріне сәйкес келеді. State: cbChecked, cbGrayed, cbUnchecked (AllowGrayed = true мәнде болса) Тек Stateпен компоненті индикатордың мәнін тексемей оны Checked ( true немесе false) қасиетінің мәні де көрсете алады. Радиобатырмадағыдай CheckBox жазуы Caption компонентінің қасиетімен беріледі. Ал орналасуы қасиет индикаторы Alignment.

HeaderControl жәнеHeader компоненттері тақырыбы. HeaderControl және Header компоненттері қолданушының кез- келген терезелерді орналастырып панель компоненттерімен оның өлшемдерін өзгертуге мүмкіндік береді. Тақрып бірнеше секциялардан тұрады. Қолданушы жұмыс істегенде тақырыптың қалындығын өзінің қалағанынша тышқан арқылы өзгерте алады. Сіз жаңа секцияны орнататып курсорды сонда орнатқаннан кейін обьектілер инспекторы терезесінде осы обьектінің көптеген қасиеттері пайда болады. Text деген қасиетте сіз тексттік тақырыпты орната аласыз.

Таймер — Timer компоненті. Timer компоненті уақыт интервалдарын еңгізуге мүмкіндік береді. Таймер көптеген ескертулерді табады: мультипликация синхронизациясы, қолданушының бұрыннан бері жұмыс істемеген терезелерін жабу, экранды сақтау операциясын қосу немесе өшірілген сервермен байланысты жою егер де қолданушы жағынан ешқандай жұмыстар істелмеген болса. Жиі сұралып отырған ақпарат көзі, уақытты беру, сұралған көмек үшін жауап алу осының барлығына таймер компоненті жауап береді.

Таймер- ол визуалды емес компонент. Ол екі қасиетке ие. Олар : Interval — милисекундттағы интервал уақыты және Enabled Interval қасиетінің алынуы таймердің қосылуына мүмкіндік береді. Берілген интервал уақыты бойынша алдынғы іске қосылу немесе программалық Interval қасиетінің орнатудан кейін немесе егерде Interval жобалау кезінде жұмыс істей бастаса, таймер қосылып OnTimer түрінде болады. Барлық істелген операциялар жазылып отырады.

Егер де интервалды беретін болса, яғни Interval = 0 және Enabled = false онда таймер жұмысын тоқтатады.

Бақылау сұрақтары:

  1. Button, BitBtn басқару батырмалары және олардың қасиеті. Glyph, Kind және BitBtn батырмаларының қасиеттері?

  2. RadioGroup радиобатырмалар топтары не үшін қолданылады? радиобатырмалар қалай құрылады және олардың қасиеті?

  3. CheckBox индекаторы және олардың қасиеті?

  4. Timer компоненті және оның қасиеті?

Дәріс№9. Қосымшаларды жасаудағы вертуалды компоненттерді қолдану. Контейнерлер. Формалар .

Жалпы мінездеме. Панельдер контейнер болып табылады, ол басқада басқару элементтерімен топтастыру үшін қолданылады.

Олар декорациялық функциялларды орындап, компоненттерді біріктіреді. Сол сияқты өзәнәң көмекші компонентін бірлескен түрде топтастырады.

Пикто­грамма

Компонент

Бет

Сипаттама

GroupBox

(топтық терезе)

Standard

Checkbox индикаторы, RadioButton радиобатырма және т.с.с басқару органдары контейнерлерде топтасады

Panel

(панель)

Standard

Басқару органдарының топтасуына арналған контейнерлер және кіші контейнерлер. Панельде аспаптық панельмен палитра ассптарын орнатуға болады.

Bevel

(рамка)

Additional

Тік төрт бүрышты жиекке салу үшін қажет. Ол кіріңкі және шығыңқы түрде болады.

ScrollBox

(айналдыруы бар терезе)

Additional

Айналдыру мүмкіндігімен зоналарды көрсету үшін арналған

Splitter

(панелдерді бөлу)

Additional

Қолданушының өлшемдерді өзгертуге мүмкіндігі бар панель

ControlBar

(аспаптық панелі)

Additional

Компоненттерді аспаптық панельде орналастыру үшін қажет

TabControl

(қосымшалы бет)

Win32

Қолданушының таңдауымен қосымшаларды таңдау мүмкіндігі

PageControl

(көп бетті терезе)

Win32

Жұмыс үстелінде орынды үнемдеу үшін қосымша беттер мен немесе басқару органдарымен басқарылады

Status Bar

(күй жолағы)

Win32

Қажеттілікті тудырса қосымшалы панельдер бірнеше панельде болуы мүмкін

ToolBar

(аспаптық панелі)

Win32

Жиі қолданылаты компоненттер үшін жылдам табылатын панельде орналастырылады

CoolBar

(аспаптық орналастыру панелі)

Win32

Аспаптық панельдің контейнерлері, қолданушы өз өажеттілігіне қарай өлшемдерін өзгерте алады

PageScroller

(бетті айналдыру)

Win32

Үлкен терезелерді айналдыруға арналған, мысалға аспаптық панель

ActionToolBar

(инструмент. панель)

Additional

Аспаптық панель, ActionManager –мен байланысқан. Тек қана Delphi 6-да.

TabSet

(блокнот с заклад­ками)

Win3.l

Блокнотпен заклатканы құруға арналған

TabbedNoteBook

(многостраничн.форма)

Win3.l

Заклаткасы бар көптеген формаларды құруға арналған

NoteBook

(пачка страниц)

Win3.1

TabSet-пен бірге жүмыс істейтін көптеген бөлектерді құруға арналған

Frame

(фрейм)

Standard

Жеке контейнер терезесінде кез-келген компоненттердің орналасуы жобалау түрүнде қолданылады

Жалпы қолданыстағы панельдер - Panel, GroupBox, Bevel, ScrollBox, Splitter компоненттері.

Panel панелі үлкен қолданысқа ие. Олардың арқасында интерфейс элементтері компонацияланады, функционалды бір бірімен байланысқан түрде. Panel панелі тағы аспаптық панель құра алады. Бірақ ол үшін басқада арнайы компоненттер бар. Оларды біз кейін қарастырамыз.

RadioButton — радиобатырмаларды басқару элементтерін панельде топтастыру, оның тағы бір мүмкіндігі болып есептеледі. Барлық радиобатырмалар тобына байланысты панельде жұмыс жасайды: уақытта кез-келген біз біреуін таңдай аламыз. Әрине тездету батырмалары панельде осы принциппен жұмыс істейді : SpeedButton батырмалары Grouplndex. Осыдай қасиетке ие болса, сол сияқты : SpeedButton Grouplndex қасиеті болып әр түрлі панельде және әр түрлі панель формасында болуы мүмкін.

Panel компонентінің бірнеше қасиетін қарастырайық. Panel-дін сырқы бет әлпетін бірнеше параметірлер анықтайды олар: Bevel-Inner — панельдің ішкі көрінісі BevelOuter —панельдің сыртқы көрінісі, BorderWidth —бардюр қалыңдығы.

Delphi-де арнайы компонент бар ол Splitter компоненті, панельдің орналасуын өзгерте алады. Оны Beveled және ResizeStyle қасиеті бөліну түрін анықтап және MinSize қасиеті арқылы панельде екі жақтан тасталынатын орынды бақылаймыз.

GroupBox панелі Panel панелі сяқты кең тұрде жүмыс істу мүмкіндігі жоқ, бірақ ол жазуы бар рамкаммен жұмыс жасайды.

Bevel компоненті формальді түрде компонент емес бірақ компоненттерге контейнер бола алады.мысалға Bevel арқылы радиобатырмаларды топтастыра алмаймыз. Bevel көріну стилі Style қасиетімен анықтала алады. Ол көптеген тұрге ие мысалы bsLowered батырылған және bsRaised көтерілген. Ал компонент контуры. Shape қасиетімен анықталады. Ол мынандай түрлерге ие: bsBox — тікбүрыш, bsFrame жиек bsSpacer пунктирлі рамка. bsTopLine bsBottomLine, bsLeftLine, bsRightLine — сәйкесіше жоғары, төменгі, оң және сол жақ түзулер. Style байланысы түзулер батып тұратын немесе шығып тұруы мүмкін.

Енді ScrollBox компоненті айналдыру қасиеті бар панель. Бұл компонент аймақты орналастыруға арналған. Бұл ScrollBox көлеміндей орын алатын жаңа компоненттерді аймаққа орналастыруға арналған компонент. Мысалға, ScrollBox компонентін мәтіндік жолдарда немесе аспаптық панельдерде қолдануға болады.

ScroIlBox кішігірім аймақта үлкен компоненттер немесе көп компоненттер орналасуы бойынша үлкен суммалық ауданда, жобаны анықтауға болады. Жобалау процессі кезінде мына мысал арқылы анықтауға болады. Уақытша ScroIlBox өлшемін үлкейтіңіз, ішіне барлығы сиятындай етіп.

BorderStyle қасиеті ScrollBox компонентінің жиегінің стилін анықтайды.

AutoScroll қасиеті автоматты түрде қажетті айналдыру түзуін береді. Егер де орналастырылған компоненттің өлшемі горизонталь және вертикаль өлшемдерінің аймағынан асып кететін болса. Егерде бұл шаралар қанағаттандырмайтын болса HorzScrollBar және VertScrollBar сіз горизонталь және вертикаль түзулердң басқара аласыз. Бұл жағдайда сіз міндетті түрде Range өлшемнің қандай пиксел екенін және қасиетін еңгізуіңіз керек. Егерде Smooth қасиеті true орнатылған болса сіз айналдыру батырмасын бір басқанда автоматты түрде қосылады. Егер керісінше болса Increment қасиетінің бірлік өлшемін беруіңіз керек.

TabControI, PageControl, TabSet, TabbedNoteBook, NoteBook— көп беттік панельдер. Көп беттік панельдер алдымен кеңістікті үнемдеуге арналған. PageControl компонентке түзетулер еңгізу үшін тышқанның оң жағын екі рет шертеміз. Шығатын менюде мынандай командаларды көре аламыз: New Page— жаңа бетті құру, Next Page — келесі бетке көшу. Previous Page — алдыңғы бетке көшу.

Сіздің жасаған әр бетіңізге TTabSheet обьект типінде болады. Бұл панельде кез-келген басқару компонентін орналастыруға болады. Бірнеше беттерді құрғаннан кеіін кез- келгенін орта тұсынан екі рет шертетін болса инспектор обьектің қасиетін көруге болады. Беттер келесі қасиетке ие болады:

Name

Бетке жіберілу мүмкіндігі бар ат

Caption

Қосымша жарлығында пайда болатын ат

PageIndex

Бетке жіктелу мүмкіндігі бар бет индексі.

ImageIndex

Қосымша жарлығында пайда болатын сурет индексі

PageControl компонентінің негізгі қасиеттерінің ішінен мыналарды ерекшелеуге болады:

Style

Компоненттің көріну стилін: tsTabs — заклад­ки, tsButtons — батырмалар, tsFlatButtons — жінішке батырмалар.

MultiLinc

Егер бір қатарға сыймаса бірнеше қатарға бөлінетініне жауап береді.

TabPosition

Белінің жарлығының орналасу орнын анықтайды: tpBottom — төменнен, tpLeft — сол жақтан, tpRight — оі жақтан и tpTop — компоненттің жоғарғы жағынан.

TabHeight и TabWidth

Хаттағы заклатка жарлығының биіктігі мен қалындығы. Егерде белгілер параметірлері 0 деп берілетін болса, онда жарлық өлшемдері автоматты түрде жазуына байланысты таңдалады.

Images

ImageList суреттері жарлықтардың ішінде орналасқан. ImageIn­dex қасиеті осы тізімге сәйкес беттер индексіне ие.

ScrollOpposite

Закладкалардың орын ауыстыруына жауап береді, олар бірнеше бағанға орналастырылатын болса.

ActivePage

Белсенді беттің аты

Pages [Index:Integer]

Страница бетін тек оқуға ғана рұқсат алу( бірнші бет 0 индексіне ие)

PageCount

Беттер санын оқуға ғана арналған қасиеті.

Компонентте бірнеше шаралар қолдануға болады: беттерге амалдар қолдану, құру, жою, ауысу. Оларды Delphi енгізілген анықтамадан қараңыз. Негізгі оқиғалар компоненті — OnChanging және OnChange. Олардың біріншісі қолданушы басқа бетке ауысарда және жаңа закладканы шерткенде пайда болады.

Оқиғаларды өңдеуші параметрді жіберілім арқылы AllowChange ауысу орналасуы . егер өңдеушіге AllowChange = false мәнін беретін болсақ ауысу өтеді. OnChange ауысу болғаннан кейін пайда болады.

Енді TabControl компоненттерін қарастырайық. Сырттай бұл компонент PageControl компонентіне тән ұқсайды және көптеген ұқсас қасиеттерге ие: Style, Multiline, Tab-Position, TabHeight, TabWidth, Images, ScrollOpposite сол оқиғалар OnChan-ging және OnChange. Бірақ PageControl- дың TabControlдан негізгі ерекшелігі TabControl көптеген панельдерге ие. Компонент бір беттік басқару элементтері батырманың әртүрлі орналасуы түрінде берілген. OnChanging және OnChange жазық панельде ауысу кезінде не болатынын көрсету керек. Бұл компонент тағы бір қасиетке ие - MultySelect көбірек заклаткаларды таңдауға рұқсат етілген. Егерде бұл қасиет true-да орнатылған болса, онда оқиғаларды өңдегішін қолданушының өзі таңдайды.

Tabs - TStrings типті қасиетімен закладкалар саны мен олардың жазуымен анықталады. Қанша жазу көрсетілсе сонша заклаткалар болады. TabIndex ауысу жағайын көрсетуші. Сіз оны жобалау кезінде орналастырып соңғы түрін көрсете аласыз. Содан OnChanging және OnChange оқиғалр өңдегішінде қолданушы не таңдағанын көре аламыз. TabControl тек ауысу көп болатын жерде көре аламыз.

Егер Panel2 — жоғарғы панель (TabIndex = 0) бірінші закладкасында көрінбей тек төменгі панель ғана көрінетін болады. Бұдан көрі PageControl компонентін қолданға жөн. Ал TabControlды жиек панелінде өзгеріс еігізу кезінде қолданған жөн.

TabbedNoteBook компоненті көп беттік Pa­geContro панелінің аналогі болып табылады. Негізгі қасиеттің бірі болып Pages қасиеті ол заклаткалар саны мен атын атықтайды ActivePage қасиеті актив бетінін атын анықтайды. TabbedNoteBook екі компоненттің қосындысы болып табылады. Tabsed (заладкалар) NoteBook (панельдер). Олар бөлек те орындалады. Tabsed көп позициялық компонент оның ешқандай панелге ие емес екені белгілі. NoteBook панельдер папкасы және Pages қасиетіне ие.

Аспаптық панельдер ToolBar және PageScroller компоненттері.

Егер сіз ToolBar формаға орналастырсаңыз ол жоғарғы жақта орналасды себебі Аlign= Тор- қа тең. Панельді басқаша орналастырғыңыз келсе Align = alNone орнатыңыз . компоненттерді панельге орналастыру ToolBar жауап береді. Тышқанның оң жағын басу арқылы NewButton таңдап алыңыз, формада TToolButton обьектілі батырма пайда болады. Оның жүруін Style қасиеті бақылайды. Ол tbsButton- ға тең. Ол SpeedButton ұқсайды. Батырмадағы сурет үшін ImageIndex жауап береді. Бұл компонентке көрсету компоненттің мына қасиеті арқылы көрсетіледі ToolBar, Images, Disabledlmages және HotImages. MenuItem қасиеті негізгі және контекстік менюді береді. Ол осы батырмамен дублирленеді. Бұл қасиетті орнатқанда егерде қажет бөлімде меню суретпен және мәтіндік көмекші сөздер ( Hint қасиеті), берілген болса онда осы суретте Hint батырмасында пайда болады.

Егер жобалау кезінде менюдің қасиетін өзгертетін болса, ол батырма қасиетіне әсер етеді. Егер сіз MenuItem менюін өшіріп өайта орнатсаңыз жаңа берілгендер жазылады. Wrap қасиеті true-да орындалса ол батырмалардың үзіліп келесі бөлімге көшеді. Style қасиеті батырманың стилін берді. Style = tbsCheck қолданушы бтыманы басқанда батырма басылған түрінде қалады дегенді білдіретді. Егер бірнеше батырмаларда Grouped= true қасиеті орнатылған болса онда батырмалар топ құрады және тек бір ғана батырма басылған түрде болады. Style = tbsDropDown шығатын тізімге сәйкес келеді. Егер осындай батырмаға MenuItem қасиетін орнына DropDownMenu қасиетін беретін болсақ онда шығатын тізімде автоматты түрде бөлімдер көрінеді. Style = tbsDropDown қасиетін MenuItem орнына DropDownMenu қасиетін берсек контекстік меню анықталады да ол шығатын тізімде көрінеді. Indeterminate батырмасының қасиеті оның үшінші жағдайын береді. Яғи басыллған да басылмаған да емес. Бұл қасиетті true орнатамыз егер, осы режимде батырма алынбаса. Marked қасиеті батырманы ерекшелейді.

Қолданылған әдебиет : 1[ 218-228].

Бақылау сұрақтары:

  1. Панельдердін не үшін тағайындалатынын атыңыз?

  2. Panel, GroupBox жалпы қолданылатын панельдер?

  3. TabControl, PageControl көп беттік панельдер?

Дәріс №10. Негізгі және контекстік меню құру. Формалар.Негізгі меню — MainMenu компоненті.

Delphi-де менюді көрсететін (Standard бетіне) екі компонент бар:

MainMenu — негізгі меню және

PopupMenu — қалқымалы меню.

MainMenu компоненті – визуалды емес компонент, яғни жобалау процесі кезінде оның формадағы орналасу орнының қолданушы үшін ешқандай маңызы жоқ — ол бәрібір де компоненттің өзін емес, менюді көреді.

Әдетте формаға бір MainMenu компоненті сыйады. Мұндай жағдайда оның аты автоматты түрде Menu форма қасиетіне енгізіледі. Бірақ формаға түрлі қосымша жұмыс режимдеріне сәйкес әр түрлі бөліктер жиынтықтары бар бірнеше MainMenu компонеттерін де енгізуге болады. Мұндай жағдайда жобалау кезінде форманың Menu қасиетіне осы компоненттердің біреуіне сілтеме беріледі. Ал жұмыс кезінде керек кезде ол қасиетті өзгертуге және сәйкесінше негізгі меню құрылымын өзгертуге болады. Компоненттің негізгі қасиеті — Items. Оны толтыру Меню Конструкторы көмегімен жүргізіледі. Ал Меню Конструкторы Main-Menu компонентін екі рет шерту арқылы немесе Объектілер Инспекторы терезесіндегі Items қасиеті жанындағы көп нүкте батырмасын басу арқылы ашылады.

Меню конструкторында жұмыс істегенде нүктелері бар жиекке курсорды орналастыру арқылы жаңа бөліктерді енгізуге болады. Ол нүктелер жаңа бөліктің орналасу орнын білдіреді. Егер де бөлік керек жоқ жерге енгізілсе, онда оны тышқан арқылы керекті жерге көшіруге болады. Бөлікті енгізудің басқа жолы — тышқанның оң жақ батырмасын шерту арқылы ашылатын контекстілік менюді қолдану. Егер де сіз алдымен менюдің белгілі бір бөлігін белгілеп алып, контекстілік менюден Insert командасын таңдасаңыз, онда жаңа бөлік жиегі белгіленгеннің алдына тұрғызылады. Сонымен қоса сіз контекстілік менюден белгіленген менюге ішкіменю енгізуге мүмкіндік беретін Create Submenu командасын орындай аласыз. Әрбір меню бөлік, яғни Items қасиетінің әрбір элементі қасиеттер, амалдар және әрекеттерді басқаратын TMenuItem типінің объектісі болып табылады. Берілген бөліктің көптеген қасиеттерін және әрекеттерін Объектілер Инспекторында көруге болады.

Бөліктің негізгі әрекеті — OnClick.

Caption қасиеті бөлік жазуын білдіреді. Амперсанд символын қолдану жылдам мүмкіндік клавишасын көрсетеді. Егер де Caption мәні «-» минус символы болса, онда бөліктің орнында бөлгіш пайда болады.

Name қасиеті меню бөлігіне сәйкес объект атын береді. Әдетте тип аттары N1, N 2.

Shortcut қасиеті “ыстық” клавишаларды анықтайды. “Ыстық” клавишаларды анықтау үшін Объектілер Инспекторы терезесінде Shortcut қасиетінің ашылмалы тізімін ашып, клавишалардың қажетті комбинациясын таңдау қажет. Бұл комбинация меню бөлігі жолында шығады.

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

True-да орналасқан Checked қасиеті меню бөлігінде жалауша маркерінің болатынын көрсетеді. Ол жалауша берілген бөліктің таңдалғандығын білдіреді.

Меню бөліктеріне маркерлерді орналастыратын тағы да бір қасиет Radioltem. Бұл қасиет true-да орналасқан және берілген бөліктің Grouplndex қасиеттері бар басқа бөліктермен біреге отырып радиобатырма режимінде жұмыс істейтіндігін анықтайды. Әдетте Group-Index мәні 0-ге тең. Бірақ оны нольден үлкен етіп те қабылдауға болады. Сонда егер бірдей Grouplndex және Radioltem = true мәндері бар бөліктер бірнешеу болса, онда олардың біреуінде ғана жалаушалар маркеры пайда болады.

Әрбір бөлік үшін Enabled және Visible (көрінетін) қасиеттерін орнатуға болады.. Егер Enabled = false қасиетін орнатса, онда бөлік сұр түсті жазумен бейнеленіп, қолданушының шертуі оған әсер етпейді. Егер де Visible = false орнатылса, бөлік мүлдем көрінбейді. Enabled және Visible қасиеттері қосымша жұмыс режиміне тәуелді қолданушыға ашылатын бөліктердің құрылымын өзгерту үшін қолданылады.

Delphi-де меню бөліктеріне суреттер енгізу қарастырылған. Оған Bitmap және Imagelndex бөліктерінің қасиеттері жауапты. Оның біріншісі сіз көрсеткен файлдан суретті бөлікке енгізуге мүмкіндік береді. Екіншісі ImageList сыртқы компонентінде сақтаулы сурет индексін белгілеуге мүмкіндік береді. Бұл компонентті белгілеу MainMenu компонентінің Images қасиеті арқылы жүргізіледі. Индекстер 0-ден басталады. Егер де сіз 1 индексін белгілесеңіз, сурет болмайды.

Бөліктің негізгі әрекеті — OnClick қолданушы бөлікті шерткенде немесе «ыстық» клавишаларды басқанда пайда болады.

Біз меню бөліктеріне сәйкес объектілердің негізгі қасиеттерін қарастырдық. Бірақ тағы бір аса маңызды қасиет — Action жайлы айта кету қажет. Алдында суреттелген әрекетке сүйене отырып, сіз көптеген жоғары аталған қасиеттерді белгілеу қажеттілігінен құтыласыз. Себебі олар әрекет объектісінен шығады. Сонымен қоса сізге OnClick әрекеттер өңдеушісін жазу қажет емес болады.

Екінші формалардың негізгі менюлерінің негізгі форма менюімен қосылуы мүмкін. Бұл сөз бірнеше формалары бар қосымшалары жайлы. Оларда негізгі және көмекші формалар да өзінің негізгі менюі — MainMenu компонентіне ие. Әрине, қолданушыға әрқайсысының өзінің менюі бар бірнеше тереземен жұмыс істеуі қолайсыз. Әдетте бұл менюлердің бір негізгі форма менюіне бірігуі қажет.

Контекстілік қалқымалы меню — PopupMenu компоненті.

Контекстілік меню белгілі бір компоненттерге байлаулы. Ол, берілген компонент фокуста болған жағдайда қолданушы тышқанның оң жақ батырмасын шертсе, шығады. Әдетте контекстілік менюге негізгі менюдің берілген компонентпен жұмыс істегенде бірінші кезекте қажет болатын командаларын қосады.

Контекстілік менюге PopupMenu компоненті сәйкес. Панельдер, редактрлеу терезелері, сонымен қоса белгілеулер және т.б. терезелік компоненттер PopupMenu қасиетіне ие. Ол әдетте бос, бірақ оған берілген компонентпен байланыста болатын PopupMenu компонентінің атын енгізуге болады.

Контекстілік қалқымалы меню құру Меню Конструкторы көмегімен жүргізіледі. Ол PopupMenu-ді екі рет шерткенде ашылады. Бұл жұмысты жеңілдету мүмкіндігіне назар аударайық. Контекстілік меню бөліктері әдетте жасалынып қойған негізгі менюдің кейбір бөліктерін қайталағандықтан, сәйкес бөліктерді көшірумен шектелуге болады. Ол үшін PopupMenu компонентінен Меню Конструкторына кіріңіз де тышқанның оң жақ батырмасын шертіңіз және шыққан менюден Select Menu (меню таңдау) командасын таңдаңыз. Сізге сұхбаттық терезе ұсынылады. Оның көмегімен сіз негізгі менюге өте аласыз. Онда сіз керекті бөлік немесе бөліктерді белгілей аласыз (Shift батырмасын басқанда берілген диапозондағы бөліктер белгіленеді). Сонан соң Ctrl-C батырмаларын басу арқылы оларды алмастыру буферіне көшіріңіз. Меню бөліктері барлық олардың қасиеттерімен қоса жасалынатын контекстілік менюге көшіріледі.

Қалған PopupMenu жұмыстарының MainMenu жұмыстарынан айырмашылықтары жоқ. Бірақ әр түрлі форма менюлері (контекстілік менюлер) бірікпейді.

Форма. Форма жасау, көрсету және оның құрылымы.

Windows үшін қосымшалар әдетте Delphi формалары деп аталатын бір немесе бірнеше терезелерден тұрады. Іске қосылған кезде Delphi автоматты түрде Form1 атты негізгі форма жасайды.

Форма TForm типінің компоненті болып табылады. Формада қосымшаның интерфейстік бөлігін құратын визуалды және визуалды емес компоненттер орналасады.

Форма құрылымы:

-тақырып аймағы, онда тақырып, тақырып пик­тограммасы және терезені ашатын, жабатын батырмалар орналасқан;

-негізгі меню (тақырып аймағының астында);

-жағдай жолы (статус панелі), әдетте терезенің төменгі жағында.

Керек жағдайда формада автоматты түрде айналдырып өту жолдары пайда бола алады. Терезенің басқа бөлігі клиенттік аймақ деп аталады.

Күрделі қосымша әдетте бірнеше формалардан құралады. Барлық формалар автоматты түрде жасалады және оның біріншісі негізгі болып саналады. Негізгі форманың жабылуы жұмысты орындаудың аяқталуын білдіреді.

Форма жасағанда және қолданғанда келесі әрекеттер орындалады: OnCreate – форма жасағанда; OnShow – форманы көрсеткенде; OnResize – форма өлшемдерін өзгерткенде; OnAcivate – форманы іске қосқанда; OnPaint-форманы қайта суреттегенде.

Форма әдістері:

1. Егер форма жасалса, онда Show немесе ShowModal оны көрінетін, ал Hide көрінбейтін етеді.

2. Форманы Close әдісімен жабуға болады. Close әдісін орындағанда onCloseQuery әрекеті пайда болады. Оның өңдегішіне форманы жабуға болатындығын анықтайтын CanClose параметрі беріледі. Сақтаулы түрде CanClose параметрі True-ға тең. Бірақ программа текстерінен оның мағынасын басқаруға болады.

Егер бір форма (мысалы, Form1) басқа формамен қандай да бір әрекеттер орындаса, онда олардың қатынасын Uses операторы көмегімен ұйымдастыру қажет. Ол үшін алдымен форма немесе басқа модуль қосу қажет модульді іске қосу қажет. Сонан соң пайда болған Use Unit (Модуль таңдау) сұхбаттық терезесінде File\Use Unit командасын таңдап, байланыс орнатылу қажет модуль атын таңдау және ОК батырмасын басу қажет. Бұл әрекеттерден кейін негізгі модульде, Implementation бөлігінде Uses Unit2 операторы пайда болады. Бұл операторды қолмен де жазуға болады.

Форма модальды және модальды емес болуы мүмкін. Модальды емес форма өзінің жабылуысыз басқа формаға өтуге мүмкіндік береді. Ал модальды форманы басқа формаға өтпес бұрын міндетті түрде жабу керек.

Түрлі ақпараттарды сақтайтын және қолданушыдан қандай да бір ақпарат енгізуді талап ететін формалар сұхбаттық (диалогтар) деп аталады. Сұхбатта модальды немесе модальды емес бола алады.

Windows-та (Delphi-де де) 2 қосымша типі бар: бір құжаттық (SDI — Single Document InterFace) және көп құжаттық (MDI - Multiple Document InterFace). Бірқұжаттық қосымшалар бір-біріне тәуелсіз бір немесе бірнеше формалардан құралады. SDI-қосымшасында экрандағы бір де бір терезе өзінде басқа терезелер сақтамайды (мысалы, Delphi-де).

Форманың негізгі сипаттамалары.

Кез- келген визуалды компонент секілді форма белгілі сипаттамаларға ие: қасиеттер, әдістер және әрекеттер. Форма енгізу фокусын әр алған сайын (мысалы, форма аймағында тышқанды шерткенде) оның белсенділігі жүргізіледі және OnActivate әрекеті пайда болады, ал фокусты жоғалтқанда — OnDeActivate.

Форманы жабу үшін Close әдісі қолданылады. Негізгі форманы жапқанда барлық қосымшаның жұмысы тоқталады. Форма атын белгілеусіз Close әдісі негізгі формаға жатқызылады және қосымша жұмысын аяқтайды. Close әдісі жасалынған форма нұсқасын өшірмейді және оны Show немесе Showmodal әдістері көмегімен экранға қайта шақыруға болады.

НЖ-ны үнемдеу үшін форманы өшіруге болады. Форманы өшіру Release, Free немесе Destroy әдістері көмегімен жүргізіледі. Бұл әдістердің ішінен алдан ала форманың өшірілу мүмкіндігін қарастыратын Free әдісін таңдаған жөн. Форманы өшірген және жапқан кезде келесі әрекеттер орындалады: OnCloseQuery, OnClose, OnDeactivate, OnHide, OnDestroy.

Форма стилі оның FormStyle қасиетімен анықталады. Ол мына мәндердің біреуін қабылдай алады:

FsNorml - стандартты стиль, көптеген терезелер үшін қолданылады;

FsMDIChild – MDI-дағы кіші (дочерняя) форма;

FsMDIForm – MDI-дағы ата-аналық форма;

FsStayOnTop - форма басқа формалардың бетінде орналасады.

Форма стилін қосымшаны орындау үрдісі кезінде өзгертуге болады. Әр форманың жиегі бар. Жиектің түрі TFormBorderStyle типінің BorderStyle қасиетімен анықталады. Ол келесі мәндерге ие бола алады:

bsDialog - сұхбаттық;

bsSingle - өзгермейтін параметрлері бар форма;

bsNone - форманың көрінетін жиегі мен тақырыбы жоқ және өлшемдері өзгертілмейді;

bsSizeable - қарапайым форма, тақырып жолы бар және онда стандартты батырмалардың кез-келген жинағы сақталынады;

bsToolWindow – саймандар панелінің формасы;

bsSizeToolWin – өлшемдері өзгеретін саймандар панелінің формасы.

Форманың тақырып аймағында 4 түрлі (стан­дартты) батырма орналаса алады. Батырмалар жинағын BorderIcons қасиеті көмегімен белгілеуге болады. Ол қасиет келесі мәндердің біреуін қабылдай алады:

biSystemMenu – терезеде 3 батырманың барлығы және жүйелік меню болады;

biMinimize – терезеде минимизация (жабу) батырмасы болады;

biMaximize – терезеде максимизация (ашу) батырмасы болады;

biHelp - терезеде анықтама батырмасы болады, ол сұрақ белгісін көрсетеді және компоненттің фокусы бар контекстілі-тәуелді жауабын ашады.

Формада клиенттік және клиенттік емес аймақтар болады. Клиенттік емес жиегі және форма тақырыбымен толтырылады. Клиенттік аймақта түрлі басқарушы компоненттер орналасады, мәтінді шығару немесе графиканы көрсету орындалады. Width және Height қасиеттері барлық форманың өлшемін анықтайды, ал Client Width және Client Height қасиеттері форманың клиентті бөлігінің ені мен биіктігін белгілейді.

Әр негізгі форманың тақырыбының сол жақ бөлігінде Icon қасиетімен анықталатын пиктограмма бар. Келесі амалдардың біреуімен қосымшаны өңдеу үрдісі кезінде пиктограмманы файлдан жазуға болады:

— Объектілер Инспекторынан Icon қасиетіне – кез келген форма үшін;

— Project\Options көмегімен ашылатын Application бетінен – меню командалары негізгі форма үшін.

Тышқан көрсеткіші форманың клиенттік аймағында немесе оның белгілі бөлігінде (терезе немесе батырма үстінде) орналасқанда, Cursor қасиеті тышқан көрсеткішінің формасын анықтайды. Қасиет мәні ашылмалы мәндер тізіміндегі Объектілер Инспекторынан таңдалады.

Enabled = True қасиеті тышқан, таймер және клавиатура әрекеттерінің формаға әсер етуі үшін қолданылады. Әрекеттердің өңделуін тоқтату үшін Enabled қасиетіне False мәні орнатылады. Мұны негізгі форма үшін істемеген жөн.

KeyPreview = True қасиетін форманың клавиатура әрекеттерін басқару элементіне жетпей тұрып қабылдауы үшін орнатады. KeyPreview = False қасиеті клавиатура әрекеттерінің барлығы басқару элементтерімен өңделсе орнатылады.

Tag қасиетінің белгілі бір белгілеуі жоқ. Ол программамен қолданылатын кез- келген бүтін сандарды, мысалы, кодтар мен нөмерлерді сақтау үшін пайдаланылады.

Формалар шаблондары.

Шаблон - бұл форма дайындамасы, оны қажетті тапсырмаға келтіруге болады. File\New\Form командасымен қосымшаға тағы бір форма енгізуге болады. Бет – түрлі формалар шаблондары сақталынатын жер, File\New\Other командасымен ашылады. 14 бетті New Items сұхбаттық терезесі ашылады.

Forms бетінде келесі формалы шаблондар бар:

- About Box – ақпараттық терезе;

- Dual List Box – екі тізімі бар форма;

- Tabbed Pages – кітапшасы бар форма.

Dialogs бетіндегі шаблондар мысалдары – сұхбаттық шаблондар:

- Dialog with Help - Help батырмасы бар форманың 2 нұсқасы;

- Password Dialog – пароль енгізу үшін сұхбаттық терезе;

- Standard Dialog – батырмасы бар сұхбаттық формалардың 2 нұсқасы;

- Reconcile Error Dialog – қателіктер туралы ақпаратты шығару панелі.

Формалар шаблондарынан басқа сақтау жерінде Мастерлер (Wizard) бар. Бұл адымдық режимде формалар құруға мүмкіндік беретін арнайы программалар. Формалар мастерлері беттерде орналасқан.

Негізгі әдебиеттер: 1[210-218]

Бақылау сұрақтары:

  1. MainMenu негізгі менюінің компоненттері?

  2. Не үшін Name қасиетінде меню бөлігіне сәйкес объект аты беріледі?

  3. Егер де бөлікте Enabled = false орнатылса, меню бөлігімен не болады?

  4. Егер де бөлікте Visible = false орнатылса, меню бөлігімен не болады?

  5. PopupMenu контекстік қалқымалы меню белгілі компонентпен қалай байланысады?

Дәріс №11. Деректер қорын (ДҚ) құрастыру негіздері. Деректер қорының типтері. Деректер қоры кестелерінің форматтары. ДҚ құру принциптері. Жергілікті ДҚ-мен жұмыс жасау.

ДҚ (реляционды ДҚ) — бұл бәрінен бұрын кестелер жинағы, бірақ кейінірек біз онда процедуралар мен т.б. объектілердің болатынын көреміз. Кестелердің бағандары объектілердің сипаттамалары — беттермен сәйкес болады. Әр бет сақтаулы деректер аты және типімен сипатталады.

Кестенің әр жолы объектілердің біреуіне сәйкес. Ол жазба деп аталады және берілген объектті сипаттайтын барлық беттердің мәндерінен тұрады.

Әр уақыт кезегінде жұмыс жүргізілетін қандай да бір жазу бар. ДҚ кестелеріндегі жазулар физикалық түрде белгілі ретсіз, тек жай олардың енгізілу реті бойынша (жаңа жұмысшылардың пайда болуы) орналасуы мүмкін. Бірақ кестелер қолданушыға берілген кезде олардың реттелуі қажет. Деректерді реттеу үшін индекс мәні қолданылады. Индекс кестені қандай ретпен көру жөндігін көрсетеді. Курсор индекс бойымен қозғалады, ал индекс кестенің қандай да бір жазуын көрсетеді. Шын мәнінде бұл кестенің өзінің қайта құрылуы немесе ондағы жазулардың физикалық орын ауыстыруымен байланысты емес. Тек индекс өзгереді, яғни жазуларға сілтемелердің реті.

ДҚ әдетте бір емес бірнеше кестелерден тұрады. Байланыс кестелерінде біреуі негізгі болады да, қалғандары негізгімен басқарылатын көмекші болады. Негізгі және көмекші кестелер бір-бірімен кілтпен байланысады. Кілт ретінде екі кестеде де бар қандай да бір беттерді алуға болады.

ДҚ-ын құратын және оларға сұраныстарды өңдейтін ДҚ-ын басқару жүйелері — ДҚБЖ. Түрлі ДҚБЖ деректер қорын әр түрлі етіп жасайды және сақтайды.

ДҚ-мен жұмыс істеген кезде барлық өзгертулерді кэширлеу жиі қолданылады. Мұның мәні – қолданушымеге деректерг енгізілген өзгертулердің барлығы, жаңа жазуларды жазу, бар жазуларды өшіру және т.б. алдымен құжаттар базасының өзінде жасалмайды, уақытша, виртуалды кесте жадысында сақталады. Және тек арнайы командадан кейін кестеге енгізілетін барлық деректердің дұрыстығын тексергеннен кейін ғана қолданушыға бұл өзгертулерді деректер қорында сақтауға немесе редакторлеуге дейін болған жағдайға қайта оралу мүмкіндігі беріледі. ДҚ-да өзгертулерді сақтау транзакция көмегімен жүргізіледі. Бұл деректер қорын өзгертетін командалардың жиынтығы. Транзакция кезінде қолданушы деректерде бір нәрсе өзгертуі мүмкін, бірақ бұл тек солай көрінеді. Шын мәнінде өзгертулердің барлығы жадыда сақталынады. Және де қолданушыға барлық өзгертулерді шын деректер қорында сақтаумен немесе транзакцияға дейін болған жағдайға қайта оралумен транзакцияны аяқтау мүмкіндігі беріледі.

ДҚ-ның типтері. Әр түрлі тапсырмалар үшін ДҚ-ның түрлі модельдерін қолданған жөн. Берілген қосымшаға қандай деректер қорының сәйкес келетіндігін анықтау үрдісі масштабтау деп аталады. Бұл күрделі тапсырма.

Сонымен деректер қорының мүмкін модельдерін білген жөн, себебі бұл Delphi-дегі қосымшаға әсер етеді.

ДҚ-ның төрт моделі қарастырылған:

• Автономдық

• Файл-серверлік

• Клиент/сервер

• Көпдеңгейлі

Borland Database Engine (BDE) — Borland фирмасының деректер қорының процессоры.

Автономдық ДҚ қарапайым болып табылады. Олар өз деректерін локальды файлдық жүйеде, басқару жүйесі және ДҚ машинасы бар компьютерде сақтайды. Желі қолданылмайды.

Файл-серверлік ДҚ желі арқылы көптеген клиенттерге ашылады. ДҚ-ның өзі файл-серверде бір экземплярда сақталады. Әр клиент үшін жұмыс барысында ол өзгерте алатын деректің локальды көшірмесі жасалады.

Клиент/сервер ДҚ. ДҚ клиент/сервер платформасында. Бұл жағдайда клиенттер тобы ДҚ-ын арнайы компьютер – сервер арқылы аша алады. Клиент серверге ДҚ-ын іздеуге немесе жаңартуға тапсырма береді.

Көпдеңгейлі бөлінген ДҚ – деректерді өңдеу бөлінген қосымшалар көмегімен жүргізіледі. Үш деңгейлі нұсқа жиірек қолданылады:

• Төменгі деңгейде компьютерлерде қолданушыларға қолданушылық интерфейсті қамтамасыз ететін клиенттер қосымшалары ашылады.

• Екінші деңгейде қолданушы мен бөлінген ДҚ арасында деректердің алмасуын қамтамасыз ететін сервер ашылады.

• Үшінші деңгейде серверлерден ақпаратты қабылдайтын және басқаратын ДҚ-ның өшірілген сервері ашылады.

Delphi негізінде бұл жүйенің бірінші екі деңгейінің орындалуын қамтамасыз етеді. Айта кету қажет, төменгі деңгейде — компьютерлерде қолданушыға Borland Database Engine (BDE) орнатулары қажет емес.

Delphi-де ДҚ-мен байланыс ұйымдастыру. Delphi-дің бірінші нұсқаларында Borland Database Engine (BDE) ДҚ- мен жұмыс істеудің негізі болды. Бірақ Delphi 5-тен бастап компоненттер кітапханасында деректермен байланыстың баламалық механизмдері пайда бола бастады. Delphi 6-дан бастап олар аса қатты көбейді.

Delphi-дің ДҚ-мен байланысының BDE орнатуларын қарастырайық. BDE ДҚ- мен қосымша арасында делдал қызметін атқарады. Ол қолданушыға жұмыс үшін бірегей интерфейс береді. Delphi қосымшасы ДҚ-мен BDE арқылы байланысады. Бұл жағдайда деректер қорымен байланысу сүлбесі - 9.3 суретке сәйкес келеді.

BDE динамикалық түрде бірлескен DLL (IDAPI01.DLL, IDAPI32.DLL файлдары) кітапханаларынан тұрады. Олар басқа да кітапханалар сияқты IDAPI (Integrated Database Application Program Interface) деп аталатын API-мен (Application Program Interface — программалар интерфейсі) қамтамасыз етілген. Бұл функциялар және процедуралар тізімі деректер қорымен жұмыс істеу үшін.

BDE берілген ДҚ-на сәйкес келетін драйверді табады. Драйверкөмекші программа, ол берілген типтегі ДҚ-мен қалай жұмыс істеуді анықтайды. Егер BDE-де ДҚБЖ-не сәйкес өзінің драйвері болса, онда BDE ол арқылы ДҚ-мен және ондағы керекті кестемен байланысады, қолданушының сұранысын өңдейді. Microsoft Access, FoxPro, Paradox, dBase және т.б. сияқты ДҚ-мен байланысты BDE орнатады.

Егер BDE-де керекті ДҚБЖ өзінің драйвері болмаса, онда ODBC драйвері қолданылады. ODBC (Open Database Connectivity) — DLL, функциялары бойынша BDE-ге ұқсас, бірақ Microsoft фирмасымен жасалған. Ол ODBC.DLL файлында сақталады. ODBC арқылы жұмыс істеу BDE-ге енгізілген ДҚБЖ-ның өзінің драйверлері арқылы жұмыс істеуден баяу. Бірақ ODBC-мен байланыс арқасында Delphi-дің масштабталуы әлдеқайда артты.

SQL BDE-де ұсталады — сұраныстардың стандартты тілі, Sybase, Microsoft SQL, Oracle, Interbase сияқты SQL-серверлерімен деректер алмасуға мүмкіндік береді. Бұл мүмкіндік клиент/сервер платформасында жұмыс істегенде кеңінен қолданылады. Delphi 5-те ДҚ-мен жұмыс істеудің баламалық мүмкіндігі пайда болды. Бұл Microsoft жасаған ActiveX Data Objects (ADO) технологиясы. ADO — деректердің кез- келген түріне қолданушылық интерфейс, реляционды және реляционды емес ДҚ-мен, электронды поштамен, жүйелік, мәтіндік және графикалық файлдармен қоса. Деректермен байланыс OLE DB технологиясы арқылы жүргізіледі.

ADO-ны қолдану құжаттармен жұмыс істеу өнімділігін арттырады. ДҚ-мен жұмыс істеудің баламалық түрі - Interbase Delphi 5-ке InterBase Express технологиясы негізінде енгізілді.

Delphi 6 және 7-де ДҚ-мен жұмыс істеудің баламалық мүмкіндіктері dbExpress технологисы арқасында кеңейтілді. Бұл бірегей интерфейс негізінде SQL серверлеріне өтуді қамтамасыз ететін драйверлер жиынтығы.

Негізгі әдебиеттер: 1[553-558]

Бақылау сұрақтары:

1. Деректер қоры, ДҚАБ, барлық өзгерістерді кэштеу, транзакциялар?

2. Деректер қорының моделі?

3. Delphi -де деректер қорымен байланысты ұйымдастыру?

Дәріс №12. ДҚ кестелерін құру. ДҚ кестелерінің параметрлерін орнату. Database Desktop көмегімен деректер қорын құру.

Жаңа кестені құру. BDE және Delphi –мен бірге кейбір ДҚБЖ –ің деректер қорының кестелерін құруға, олардың құрылымын өзгертуге мүмкіндік беретін Database Desktop (32 –разрядты Delphi үшін DBD32.EXE файлы) бағдарламасы құрылады. Database Desktop –ты шақыру Tools- Database Desktop бас мәзірінің бұйрығы арқылы іске асырылады. Tools | Configure Tools бұйрығы арқылы мәзірде Database Desktop –ты қосуға болады.

Paradox 7 – дегі деректер қоры – бұл .db кеңейтілген файлдар –кестелер бар каталог болып табылады. ДҚБЖ Paradox 7 деректер қорының кестелерін құру Database Desktop көмегімен іске асырылады. Алдын ала сәйкес каталог құру қажет. Ары қарай Database Desktop File New бұйрығын орындау керек. Мынадай бөлімдері бар мәзір ашылады:

QBE Query

Сауалдарды визуалды тұрғызушы және осы сауалдарды файлдарға жазу

SQL File

SQL –да сауалдарды құру және оларды файлға жазу

Table

Жаңа кестені құру

Table таңдаңыз. Ашылған диалогтық терезеде тізімнен Paradox 7 таңдауға болады. Кесте конструкторының терезесінде мынадай операцияларды орындауға болады: кестенің құрылымын анықтауға (өрістер мен олардың түрлері), екінші ретті индекстерді құруға, өрістер мәндерінің диапазондарын енгізуге және жасалатын кесте туралы басқа да пайдалы ақпарат енгізуге болады.

Өрістерді анықтау. Әр өріс үшін оның аты беріледі (Field Name) –өрістің идентификаторы. Өрістің аты 25 символға дейінгі атаудан құрылу мүмкін және пробелден басталмауы қажет. Одан кейін тышқанның оң батырмасын баса отырып, берілген тізімнен осы өрістің деректер типін (Type) таңдау керек. Төменде Paradox –та қолданылатын деректер типі келтірілген.

Белгіленуі

Өлшемі (Size)

Тізімдегі белгіленуі

Түсініктеме

А

1-255

Alpha

Қатарлық өріс

N

Number

15 разрядты -10307 –ден 10308 –ге дейінгі нақты сандар

$

Money

Number –ден суреттелу пішіні мен ақша бірлігінің символымен ерекшелінетін оң және теріс сандар

S

Short

-32767-ден 32767-ге дейінгі бүтін қысқа сандар

I

Long Integer

-214748364-ден 2147483647-ге дейінгі бүтін ұзын сандар

#

0-32

BCD

BCD (Binary Coded Demical) форматтағы сандар. Осы сандармен есептелулер басқаларға қарағанда үлкен дәлділікпен, бірақ баяу жүргізіледі.

D

Date

Мезгілді көрсететін мәндер

T

Time

Уақытты көрсететін мәндер

@

Timestamp

Уақыт пен мезгілді сақтайтын мәндер. Мәндерді енгізген кезде Timestamp типтің өрісінде қолданушы пробелді баса отырып, ағымдағы уақыт пен мезгілді енгізе алады.

M

1-240

Memo

Ұзындығы шектелмеген мәтіндерді сақтау үшін арналған өрістер. Мәтіндер жеке файлдарда .mb. сақталады.

F

0-240

Formatted Memo

Ұзындығы шектелмеген форматталған мәтіндерді сақтау үшін арналған өрістер. Мәтіндер жеке файлдарда .mb. сақталады.

G

Graphic

.bmp, .pcx, .tif, .gif, немесе .eps. форматты файлдардағы суреттерді Database Desktop оларды .BMP форматына түрлендіреді.

O

OLE

OLE типті деректер –бұл суреттер, дыбыс, құжаттар. Database Desktop осы типтің өрістерін қолдамайды.

L

Logical

Логикалық өрістер.

+

Autoincrement

1-ге автоматты түрде ұлғаятын бүтін ұзын. Тек оқуға арналған.

B

Binary

.mb. жеке екілік файлдарда сақталатын және Database Desktop интерпретацияламайтын деректер. Файлдарда дыбыстар және тағы да басқа деректер сақталу мүмкін.

Y

1-255

Bytes

Database Desktop интерпретацияламайтын деректер. Binary өрістеріне қарағанда сыртқы файлдарда емес, кестеде сақталады.

Кейбір типтер үшін өлшем (Size) беру қажет. Маңызды өрістер "*" символымен белгілену қажет. Егер бірнеше негізгі өрістер болса, онда Paradox кестелерінде олар бірінші болулары керек.

Кестенің қасиеттерін анықтау. Терезенің оң жақ бөлігінде кестенің қасиеттері беріледі (Table properties). Жоғарыда бөлімдердің атауы бар тізім келтірілген.

Validity Checks-мәндердің дұрыстығын тексеру. Осы бөлімді таңдаған кезде терезенің оң жақ бөлігінің түрі сәл өзгеруі мүмкін. Өрістің келесі сипаттамаларын беруге болады:

Required Field

Осы индикаторда әр хаттамада болу қажет өрістер ғана белгіленеді.

Minimum

Maximum

Минималды мәні.

Максималды мәні

Default

Үндеместік бойынша мәні. Бұл қасиеттерді сандық және логикалық өрістер үшін, сонымен қатар кейбір символды өрістер үшін берген жөн.

Picture

Деректерді енгізу үшін шаблондар. Мысалы, телефон номерінің шаблоны (###-##-##).

Assist

Бұл батырма Picture шаблонын құруға көмектесетін сұхбаттық терезені шақырады.

Table Lookup-қарау кестесі. Бұл бөлім осы кестенің өрісімен мәндер алынатын кестенің өрісін байланыстыруға мүмкіндік береді.

Secondary Indexes-екінші индекстер. Жаңа екінші индексті құру үшін Define батырмасын басыңыз, ол екінші индекстерді құратын сұхбаттық терезе ашылатынын анықтайды.

Index Options (индекс операциясы) радиобатырмалар тақтасын басқан кезде, келесі сипаттамаларды орнатуға болады:

Unique

Осы операцияны орнату кестені индекстеуге мүмкіндік бермейді, себебі онда индекске қосылған өрістердің жиынтығының дубликаты бар.

Descending

Кесте мәндердің кему дәрежесі бойынша реттеледі.

Case Sensitive

Символдар енгізілген регистр ескеріледі.

Maintained

Индекс кесте өзгерген сайын жаңартылып отырады.

Бұдан кейін ОК батырмасын басып, индекс аты берілетін терезе ашылады.

Referential Integrity-сілтемелер деңгейіндегі тұтастық. Мұнда жеке кестелер деректерінің арасындағы тұрақты байланысты қамтамасыз етіп отыратын әдістер туралы айтылып отыр. Тағы да басты кестедегі негізгі өрістің мәні өзгерген сайын көмекші кестеде автоматты түрде орындалатын операцияларды белгілеуге болады.

Password Security-рұқсаттама (доступ) паролі. Paradox кестелер үшін паролдерді анықтауға мүмкіндік береді және олардың әрқайсысы үшін операцияларды анықтайды.

Current Password (ағымдағы пароль) терезесінде рұқсаттама ережелерін ұйымдастыру үшін қажет паролді көрсетесіз. Table Rights (кестеге рұқсаттама) радиобатырмалар тобында кестеге рұқсаттаманың жалпы деңгейін анықтауға болады:

ALL

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

Insert&Delete

Жазулары бар (редакциялау, жою) кез келген операцияларға рұқсат беріледі.

Data Entry

Деректерді редакциялауға және жазуларды қоюға рұқсат беріледі.

Update

Кестелерді қарауға және маңызды емес өрістерді өзгертуге болады.

Read Only

Кестені қарауға болады.

Field Rights (өріске рұқсаттама) терезесінде әр өріске қосымша рұқсаттамаларды анықтауға болады:

ALL

Кестеге рұқсаттама берілген жағдайлары қарастырылған өріске барлық рұқсаттама беріледі.

Read Only

Осы өрістің деректерін оқуға мүмкіндік береді.

None

Берілген өрісті редакциялауға және бақылауға мүмкіндік бермейді.

Table Language-кестенің тілі. Table Properties тізіміндегі бұл бөлім BDE Administrator бағдарламасының көмегімен ДҚБЖ драйверлерінде үндеместік бойынша орнатылған кестенің тілін (Modify батырмасымен) анықтауға мүмкіндік береді. Тілді дұрыс таңдау кестеде орыс тіліндегі мәтіндердің оқылуына мүмкіндік береді.

Dependent Tables-тәуелді кестелер. Referential Integrity сілтемелер деңгейіндегі тұтастықпен байланысқан тәуелді кестелердің тізімін қарауға мүмкіндік береді.

Кестені құруды аяқтау

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

Құрылымды өзгерту және Database Desktop көмегімен кестені толтыру

Кестені құрғаннан кейін оны File| Open бұйрығымен ашуға болады. Table мәзірінің бөлімдерінің көмегімен кестенің құрамын қарауға (Table View Data бұйрығы) немесе редакциялауға (Table | Edit Data бұйрығы) болады. Database Desktop бағдарламасы орыс тіліне автоматты түрде икемделмейді. Ары қарай осындай кестені қолданған сайын қосымшада барлық жазулар жақсы күйде болады.

Table Info Structure бұйрығы кестенің құрылымы туралы ақпаратты қарауға, ал Table Restructure бұйрығы кестенің құрылымын немесе оның кейбір сипаттамаларын өзгертуге мүмкіндік береді.

Деректер қорының және каталогтардың псевдонимдерін құру және редакциялау.

Үш бағдарламалардың көмегімен псевдонимдерді қараудың, құрудың және редакциялаудың үш балама жолы бар: Database Desktop, BDE Administrator және Database Explorer. Database Desktop –ты қарап өтейік.

Жұмыстық және жеке каталогтардың автоматты түрде құрылатын псевдонимдері.

BDE –де автоматты түрде екі псевдоним құрылады, бұл псевдонимдер екі каталогқа қатысты: жұмыстық (working) және жеке (private).

Жұмыстық каталог барлық қолданушылардың бірігіп жұмыс істеу үшін қолданылады. Оның WORK деген псевдонимі бар.

Жеке каталог Database Desktop орнату кезінде автоматты түрде жұмыстық каталогтың жанында құрылады. Ол қолданушының жеке кестелерін және басқа обьектілерін сақтау үшін қажет. Оның PRIV деген псевдонимі бар.

Database Desktop –ғы деректер қорының псевдонимдерін құру және қарау.

Database Desktop –та псевонимдердің екі түрі құрылуы мүмкін: ашық (кез келген каталогпен жұмыс істеу кезінде) және жобаның псевдонимдері (нақты жұмыстық каталогпен жұмыс істеу кезінде). Ашық псевдонимдер …\Borland\Borland Shared\Bde каталогында IDAPI32.GFG файлында Delphi 5-7 –да сақталады. Оларды кез келген жұмыстық каталогтан алуға болады. Жобаның псевдонимдері жұмыстық каталогтың файлында сақталады және сол каталогтан ғана алуға болады.

Псевдонимдері Tools|Alias Manager бұйрығын орындап қана қарауға және құруға болады. Одан кейін Alias Manager (псевдонимдердің диспетчері) диалогтық терезені көруге мүмкіндік бар. Терезенің жоғарғы бөлігіндегі Public Alias (ашық псевдоним) индикаторы қандай псевдоним құрылатынын көрсетеді. Төменде Database Alias тізімі орналасқан. Онда құрылған псевдонимдерден қажеттіні таңдауға болады. Мұнда қандай псевдонимдер көрсетілгені радиобатырмалардың тобымен анықталады. Егер Show Public Aliases Only батырмасы таңдалса, онда тізімде тек ашық псевдонимдер көрсетіледі, ал егер Show Project Aliases Only батырмасы таңдалса, онда жобаның псевдонимдері көрсетіледі. Show All Aliases батырмасы таңдалғанда, псевдонимдердің екі түрі де көрсетіледі. New (жаңа) батырмасы жаңа псевдонимді құруға мүмкіндік береді.

Деректер қорының жаңа псевдонимін құру үшін:

• құрылатын псевдоним үшін Public Alias операциясын орнату немесе жою керек. • Driver type тізімінен деректер қорының драйверлерін таңдау керек және оның сипаттамаларын толтыру қажет. Paradox, dBase және тағы да басқа деректер базасы үшін STANDARD драйверін таңдаңыз. Кей жағдайларда Database Alias терезесінде ұқсас псевдонимді таңдап, оның сипаттамаларын редакциялауға болады.

• Database Alias терезесінде жаңа псевдонимді жазу.

• енгізілген ақпаратты сақтау үшін және келесі псевдонимді құру үшін Keep New батырмасын басыңыз немесе барлық ақпаратты Save as батырмасымен сақтап, сұхбаттан шығу.

BDE Administrator –да драйверлердің және деректер қорының псевдонимдерін құру және қарау. BDE Administrator бағдарламасы түрлі деректер қорының BDE жаңа драйверлерін қарауға, құруға және редакциялауға мүмкіндік береді: STANDARD, SQL, Access, OBDC. Компьютереге BDE – ні орнатқан кезде BDE Administrator бағдарламасы Windows «басқару тақтасы» бағдарламасының құрамына енеді. Сонымен қатар оны Tools Configure Tools бұйрығының көмегімен Delphi мәзіріне қосуға болады. Бағдарламаның файлы …\Program Files\Borland\Borland Shared\BDE\bdeadmin.exe.

Бағдарламаның терезесінде екі бет бер: Database –деректер қоры және Configuration –конфигурация. Сол жақ тақтадағы бетте деректер қорының псевдонимдер ағашы орналасқан. Сол жақ тақтада сізге керек псевдонимді бөліп алып, оң жақ тақтада Definition оның сипаттамаларын көруге болады. Осы сипаттаманың саны мен мәні қолданылатын драйверлерге байланысты.

Көбінесе Paradox деректер базасы үшін қолданылатын STANDARD драйверінің псевдонимдер сипаттамаларының тобы минималды: Type- драйвер аты, PATH-деректер қорына жол.

Жаңа псевдонимді құру үшін Object New бұйрығын орындау керек немесе сол жақ тақтада Databases –ті тышқанның оң жақ батырмасымен басу қажет және пайда болған мәзірден New жаңа бөлімді таңдау керек.

STANDARD типті драйверлерді Paradox, dBase, FoxPro кестелері және ASCII мәтіндері үшін қолдануға болады.

Драйверді таңдағаннан кейін ОК батырмасын басыңыз және псевдонимдер ағашында жаңа төбе пайда болады. Оның атын псевдоним деп қоюға болады.

Оң жақ тақтада құрылатын псевдоним үшін орнату қажет параметрлер пайда болады. STANDARD типі үшін параметрлер келесідей болады:

PATH

Деректер қорының жолы

DEFAULT

DRIVER

Алдыңғы кестеде көрсетілген драйверлердің біреуі: Paradox (.db. файлдары) кестелері үшін PARADOX

ENABLE

BCD

Бұл BDE сандық өрістерді үтірі бар мәндерге немесе BCD кодтарына тасымалдау керек, керек еместігін анықтайды. BCD дөңгелектеу қателерін жібермеуге мүмкіндік береді. Егер ENABLE BCD=true болса, онда DECIMAL және NUMERIC өрістері BCD кодтарына түрленеді.

Параметрлерді таңдап болған соң тышқанның оң жақ батырмасын басыңыз және пайда болған мәзірден Apply бөлімін таңдаңыз. Жаңа псевдоним бекітіледі.

BDE Администраторының Configuration беті сурет – 9.20 көрсетілген. Осы беттің сол жақ тақтасында Native (түрлі жүйелердің өзіндік драйверлері) тобынан немесе ODBC (ODBC драйверлері) тобынан драйверлер таңдауға болады. Таңдалған драйверлердің қайсыбір параметрлерін өзгертуге болады.

BDE –де деректер қорымен байланысу үшін қолданылатын компоненттерді шолу.

Деректер қорын қолданатын әр қосымшаның ең болмағанда келесі үш компоненттердің біреуі бар:

• Компоненттер –деректер қорымен байланысатын деректер жиынтығы (data set). BDE үшін Table, Query, StoredProc компоненттері.

• Компонент –бірінші типті компоненттер мен визуализация компоненттерінің арасындағы байланысты іске асыратын деректердің қайнар көзі (data source). Мұндай компонент болып DataSource (DataAccess беті) табылады.

• визуализация және деректерді басқару компоненттері, мысалы DBGrid, DBText, DBEdit және тағы да басқа (Data Control беті).

Осы компоненттердің бір –бірімен және деректер қорымен байланысын мынадай сұлба түрінде көрсетуге болады

Көрсетілген компоненттерден басқа, қосымшада Database компоненті орналасуы мүмкін, ол клиент/сервер платформасында жұмыс істейді. Тағы да ол жойылған сервермен байланысуға, транзакцияларды іске асыруға, паролдермен жұмыс істеуге мүмкіндік береді.

Тағы да бір автоматты түрде құрылатын Session компоненті. Бұл деректер қорымен жұмыс істейтін кез келген қосымшаның басты компоненті. Бірақ мұндай компоненттерді параллельді бірнеше ақпарат ағымдары өңделетін көптапсырмалы қосымшада қолданған жөн.

Негізгі әдебиеттер: 1[560-578]

Бақылау сұрақтары:

  1. Database Desktop бағдарламасы не үшін керек?

  2. Database Desktop –да деректер қорының псевдонимдерін қалай құруға және қарауға болады?

  3. BDE Administrator –да деректер қорының псевдонимдерін қалай құруға және қарауға болады?

  4. Деректер қорымен байланысу үшін BDE қандай компонентерді қолданады?

Дәріс №13. ДҚ құру негіздері. Деректермен жұмыс істеу үшін қажет визуалды компоненттер. Table компонентінің негізгі қасиеттері және оның негізіндегі қарапайым қосымшалар. Компоненттер мен деректер қоры арасындағы байланысты орнату, кесте бойынша навигация.

Деректер қорымен жұмыс істейтін қарапайым қосымшаны құру үшін деректер жиынтығы ретінде визуалды емес: BDE кітапханасының бетінде орналасқан Table компоненті, Data Access бетінде орналасқан DataSource компоненті алынады. Деректерді визуализациялау компоненті ретінде DBGrid компонентін қолдануға болады. Бұл берілген пішімдер көрсетілетін визуалды компонент. Сондықтан оны созыңыз немесе Align қасиетінде alClient орнатыңыз.

Осы компоненттердің арасында байланысты орнату үшін DataSource DBGrid қасиеті және визуализация мен деректерді басқару компоненттерінің арасында деректердің қайнар көзін DataSource1 орнату керек.

Ары қарай деректердің қайнар көзі мен жиынтығы арасында байланысты орнату қажет. DataSource1 –ді белгілеңіз және Обьектілер Инспекторында оның басты қасиетін DataSet табыңыз да, Table1 таңдаңыз.

Енді Table1 компонентін деректер базасының кестесімен байланыстыру керек. Осыны іске асыру үшін Table компонентін екі қасиеті керек: DatabaseName және TableName. Ең алдымен DatabaseName қасиетінде деректер базасының псевдонимін орнатыңыз.

Осыдан кейін TableName қасиетін орнатуға болады. Тізімді деректер базасында бар кестелер берілген.

Енді жауапты сәт туды. Сіз жобалау кезінде деректер базасымен тікелей байланыса аласыз. Қосылыс Active қасиетінің көмегімен іске асады. Ол үндеместік бойынша false тең. Оны true –да орнатыңыз. Егер бәрін дұрыс істесеңіз, онда DBGrid1 компонентінің өрісінде кестенің мәліметтерін көре аласыз.

Қолданушыға деректерді тексермей кестеде редакциялауға мүмкіндік бермеу керек. Ол үшін true–да DBGrid1 компонентінің Read Only қасиетін орнату қажет.

Сіз жасаған кәдімгі қосымшаға тағы бір компонент қосуға болады. Ол Data control бетінде орналасқан (DBNavigator навигатор) кестемен жұмысты басқарады. DBGrid1 компонентінің Align қасиетін alBotton–ға өзгертіңіз, осы компоненттің жоғарғы шетін сәл төмен ығыстырыңыз да, пішіннің жоғарғы жағына DBNavigator компонентін орнатыңыз.

Компонентте деректерді басқару үшін бірнеше батырмалар бар. Оларды сол жақ батырмадан бастап атап өтейік:

nbFirst

Бірінші жазуға көшу

nbDelete

Ағымдағы жазуды өшіру

nbPrior

Алдыңғы жазуға көшу

nbEdit

Ағымдағы жазуды редакциялау

nbNext

Келесі жазуға көшу

nbPost

Редакталған ақпаратты деректер базасына жіберу

nbLast

Соңғы жазуға көшу

nbCancel

Редакциялауды немесе жаңа жазуды қосуды болдырмау

nbInsert

Ағымдағы жазудан алдына жаңа жазуды қою

nbRefresh

Деректер жиынтығымен байланысқан буферді тазарту

Visible Buttons навигаторының қасиетін қолдана отырып, осы қосымшада қажет емес батырмаларды алып тастауға болады. Мысалы, егер қолданушыға деректер базасына жаңа жазуларды енгізуге рұқсат бермесеңіз, онда false-та nbinsert батырмасын орнатуға болады. Егер редакциялауға тыйым салғыңыз келсе, онда nbFirst, nbPrior, nbNext, nbLast батырмаларын қалдырып, қалғандарын алып тастауға болады.

Қосымша навигатормен жұмыс істеу үшін оның негізгі қасиетін DataSource орнату керек (DataSource- компонент аты).

Навигатордың тағы бір қасиетін атап өтейік-Hints. Бұл TStrings типті қатарлар тізімі.

Форманы құру кезінде қосымша деректер қорымен байланысу үшін, ал пішінді бұзу кезінде байланыс үзілу үшін OnCreate формасына түрді түрлендіргішті қою керек:

Procedure TForral. FormCreate (Sender: TObject);

Begin

Table1.Active :=true; end;

Осылай OnDestroyформасына мынадай түрлендіргішті қойыңыз:

Procedure TForm1.FormDestroy (Sender: TObject); begin

Table1. Active := false; end;

Өрістердің қасиеттері. Жазуларды реттеу. Формада Table1 компонентін белгілеңіз. Обьектілер Инспекторында басқалармен қатар IndexName және IndexFieldName қасиеттерін көресіз. Біріншісінде Secondary indexes қасиетінде сіздің кестеңіз үшін жасалған индекстер тізімі бар. Мысалы, fio индексін таңдаңыз, жазулар алфавит бойынша реттелгенін көресіз, себебі, осы индекске Fam, Nam және Par өрістері қосылған. Depfio индексін таңдағанда, реттелу бөлімдері бойынша жүзеге асады, ал әр бөлімнің ішінде алфавит бойынша реттелу болады. Индексациялаудың балама нұсқасы болып IndexFieldName табылады. Оның тізімінде тек индекстарда қарастырылған өрістердің комбинациясы бар және индекстердің атының мәнін ұмытып қалған кезде біреуін таңдауға болады.

Жеке өрістерді редакциялау үшін Өрістер Редакторы бар. Бірақ та сіз қосқан өрістермен жұмыс істей алатыңызды ескеріңіз. Оны Table1 компонентінде екі рет шерту арқылы шақыруға болады. Алдымен осы редактордың бос өрісін көресіз. Оның үстінен тышқанның оң жақ батырмасымен шертіңіз және пайда болған мәзірден Add Fields (өрістерді қосу) бөлімін таңдаңыз. Одан кейін кестенің барлық өрістерінің тізімі бар терезе пайда болады. Одан сізге керек өрістерді тышқанның көмегімен таңдап алыңыз. Егер Ctrl батырмасын басып тұрсаңыз, онда кез келген өрістердің комбинациясын белгілеуге болады. Сондықтан да осы жағдайда Charact, Photo және Num өрістерінен басқа барлық өрістерді белгілеген жөн. Өрістерді белгілеп, ОК батырмасын басыңыз. Бұдан кейін сіз қосылған өрістердің тізімі бар Өрістер Редакторына қайтып келесіз. Төменде Өрістер Редакторы көрсетілген: бастапқы күйі, өрістерді таңдау терезесі, таңдаудан кейінгі күйі.

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

Тізімде бір өрісті белгілеңіз де, оның қасиеттерін Обьектілер Инспекторында көруге болады. Осында әр өріс обьект болып табылатынын көруге болады. Және оның класы TStringField, TSmallintField, TBooleanField өрістер типіне байланысты екенін көресіз. Бұл барлық кластар TField-тің туындасы болып табылды. Сонымен өрістер обьект болып табылады да, көптеген қасиеттері бар болады. Олардың негізгілерін қарап өтейік.

Alignment қасиеті кесте бағанында мәтіннің тегістелуін анықтайды: солға, оңға және центр бойынша.

Display Label қасиеті өрістің бағанының басына сәйкес. Мысалы, Fam өрісі үшін Display Label мәні «Аты-жөні» сәйкес, ал Nam «аты» сәйкес.

Display Width қасиеті бағанның ені мен символдар санын анықтайды.

Қ атарлар үшін EditMask және сандар үшін EditFormat қасиеттері деректерді көрсету форматын анықтайды. True-да орнатылған Readonly қасиеті қолданушыға өріске деректерді енгізуге мүмкіндік бермейді.

Visible қасиеті қолданушыға сәйкес өріс көрінетінін не көрінбейтінін анықтайды. Барлық қажетті қасиеттерді орнатқаннан кейін қосымша керекті түрге келеді Өрістер Редакторының тағы да бір ерекшелігін атап өтейік: одан формаға тышқанның көмегімен өрістерді тасымалдау мүмкіндігі.

Ф ормаға Table1 компонентін енгізіп, оны деректер қорының кестесімен байланыстырамыз. Table1 екі рет шертеміз де, одан кейін тышқанның оң жақ батырмасымен Өрістер Редакторы терезесін шертеміз және пайда болған мәзірден Add all Fields (барлық өрістерді қосу) бөлімін таңдаймыз. Терезеде кестенің барлық өрістерінің аттары пайда болады. Бұдан кейін тышқанды шертіп, контекстік мәзірді іске қосамыз да, одан Select all (барлық өрістерді белгілеу) бөлімін таңдаймыз. Барлық өрістер белгіленіп қалады. Оларды тышқанның көмегімен формаға тасымалдауға болады. Формада автоматты түрде компоненттер құрылады. Олар әр өрістің деректерін көрсетеді. Енді оларды тек пішін ауданында дұрыс орналастырып, Table1 компонентінде Active қасиетін орнатып, навигаторды қосқаннан кейін қосымша жұмыс істеуге дайын болады. Төменде қосымшаның түрі келтірілген:

Формада құрастырылған компоненттерге назар аударыңыз. Мұнда DataSet қасиетінің Table1 деректер жиынтығымен байланысқан DataSource1 деректердің қайнар көзі пайда болғанын көресіз. Бұдан басқа өрістердің деректерін Num, Dep, Fam, Nam, Par, Year_b және Sex көрсететін DBEdit –ң 7 редакциялау терезесі орналасқанын көруге болады. Бұл компоненттердің Edit редакциялау терезесінің қасиеттері сияқты қасиеттері болады. Бірақ деректермен байланысқан. Бұл байланыс DataSource қасиетімен анықталады. Бұл қасиетті қарап өтіңіз. Ол DataSource1-ге бірдей етіп автоматты түрде орналасқанын көресіз. Әр компоненттің DataField қасиеті өрістің атына сәйкес.

Терезелерде ағымдағы жазулардың өрістерінің сәйкес мәндері көрсетіледі. Ал егер қосымша жұмыс істеп тұрған кезде мәтінді өзгертсе, онда сәйкес өзгертулер деректер қорына енгізіледі.

Edit компонентінің DBEdit компонентінен айырмашылығы мынада: DBEdit үшін Обьектілер Инспекторында редакциялау терезесінің негізгі қасиетін көрмейсіз. Бұл DBEdit-те мұндай қасиет жоқ дегенді білдірмейді. Ол бар, бірақ та published сияқты атап өтілмеген. Сізде Text қасиеттерін орындау кезінде орнатуға және оқуға мүкіндігіңіз бар, бірақ жобалау кезінде оны орната алмайсыз.

Charact өрісін көрсету үшін пішінде DBMemol компоненті орналасқан. Бұл деректермен байланысқан көп қатарлы редакциялау терезесі, ол Memo компонентіне ұқсас. Photo өрісі DBImagel компонентінде көрсетіледі. Бұл суреттерді қарау және редакциялау үшін қолданылатын Image кәдімгі компонентінің деректерімен байланысқан. DBMemo және DBImage компонентттерінің олардың аналогтарынан Memo және Image айырмашылығы мынада: олардың көрсетілетін ақпаратпен байланысты қасиеттері Обьектілер Инспекторы терезесінде жоқ. Осы қасиеттерді тек орындау кезінде оқып, орнатуға болады.

Егер кестеде булев өрісі болса, онда оны формада көрсету үшін DBCheckBox компоненті пайда болушы еді. Бұл CheckBox кәдімгі индикаторына ұқсас индикатор, бірақ өзінің DataSource қасиетімен деректердің қайнар көзімен байланысты. Ағымдағы жазулардағы өрістердің мәні true-ға тең болған жағдайда бұл компонентте жалауша көрсетіледі. Егер қосымшамен жұмыс істеу кезінде жалаушаны орнатып немесе алып тастасаңыз, онда сәйкес өзгерістер кестенің ағымдағы жазуларында болады. Булево өрісін, сонымен қатар, DBRadioGroup (радиобатырмалар тобы) компонентінің көмегімен көрсетуге болады. Бұл компонентті кейінірек қарастырамыз.

Автоматты генерацияланған қосымшамен жұмыс істеп көріңіз. Оны Charact (сипаттама) және Photo (сурет) өрістерін толтыру үшін қолданып көріңіз. Сипаттаманы сәйкес терезеде жазуыңызға болады және оны навигатордың nbPost батырмасымен сақтауға болады. Ал Photo өрісін суреттермен толтыру үшін алмасу буферін Clipboard қолдануға болады. Кез келген бағдарламаның көмегімен (мысалы, Windows бағдарламасы) графикалық файлды ашыңыз да, оны алмасу буферінде сақтаңыз, өзіңіздің жұмыс қосымшасына ауысыңыз, DBImagel компонентін белгілеңіз және OH-V (буферден алып қою) батырмаларын басыңыз. Суреттер терезесіне сәйкес суреттер көшіріледі. Навигатордың nbPost батырмасымен осы нәтижені сақтауға болады.

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

Негізгі әдебиеттер:

Бақылау сұрақтары: 1[579-586]

  1. Table компоненті не үшін қажет?

  2. Table компонентінің өрістерінің қасиеттері?

Дәріс №14. Деректер қорымен (ДҚ) жұмыс істеу үшін қажетті визуалды компоненттер. Енгізілетін мәндерге қойылатын шектеулер.

Delphi қосымшаларында мәндерді шектеудің қосымша мүмкіндіктерін қарастырады.

Себебі, Table1 кестесінде түрлі қолданыстағы шектерді орнатуға болады. Қосымша шектеулерді енгізу үшін Өрістер Редакторы көмегімен өрістердің қасиетін қолдануға болады. Ол үшін Обьектілер Инспекторында Редактордың көмегімен керек өрісті белгілеп алу қажет және сәйкес қасиеттерді орнату керек.

Сандық өрістер үшін өріске енгізілетін мәндердің шектерін орнататын MinValue және MaxValue қасиеттері бар. Осы шектерді бұзған жағдайда, EdatabaseError хабарламасы генерацияланады.

Шектеудің тағы бір мүмкіндігі: CustomConstraint және ConstraintErrorMessage қасиеттерін қолдану. CustomConstraint қасиеті SQL қатары түріндегі өрістің мәніне шектеу қоюға мүмкіндік береді. Егер CustomConstraint қасиетін белгілесеңіз, онда ConstraintErrorMessage қасиетінде де белгілеу керек.

Өрістер деңгейінде деректерді тексерудің тағы бір мүмкіндігі бар: On Validate өрісінің оқиғасының өңделуін қолдану. Бұл оқиға ағымдағы жазбаның буферіне енгізілген өрістің мәнін жазу алдында пайда болады. Мұнда кез келген тексерулерді қарастыруға болады: мүмкін емес деректер пайда болғанда, қолданушыға хабарлама жіберу, мысалы Abort функциясымен EAbort хабарламасын генерациялау. Егер бәрі жақсы болса, онда OnValidate оқиғасынан кейін OnChange оқиғасы пайда болады.

Деректерді тексерудің қарастырылып өткен әдістері нақты өріске қатысты қолданылады. Сонымен қатар, түрлі өрістерін талдай отыра, жазбада тексеруді іске асыруға болады. Ол үшін Table компонентінің Constraints қасиетін қолдану қажет. Осы қасиеттің ішінде батырманы басу арқылы шектеулерді редакциялайтын терезені ашыға болады, оның ішіндегі Constraints қасиетіне деректер жиынтығын енгізуге болады. Оның әрқайсысы жеке обьект болып келеді. Бір шектеуді белгілесеңіз, Обьектілер Инспекторында оның қасиетін көре аласыз. CustomConstraint қасиеті шектік мәндерді анықтайтын SQL қатары түрінде болып келеді. ErrorMessage қасиеті қолданушыға шектеулерді бұзған жағдайда көрсетілетін мәтіннің қатарын анықтайды.

Деректерді кешенді түрде тексеру үшін Table компонентінің түрлі оқиғаларын қолдануға болады. Бірақ бұларға деректермен жұмыс істеуді бағдарламалау әдістерін қарастырып өткенде тоқталамыз.

Есептелетін өрістер.

Жазбалардың басқа өрістерінің негізінде есептелінетін өрістерді есептелетін өрістер (calculated fields) деп атайды. Кестеге есептелетін өрісті қосу үшін Table1 –да Өрістер Редакторын екі рет шерту керек. Өрістер Редакторында тышқанның оң жақ батырмасын басыңыз да, пайда болған мәзірде New бөлімін таңдаңыз. Field properties бөлімінде өрістің аты, деректер түрін және өлшемін көрсетіңіз. Одан кейін пайда болған жаңа өріс үшін Обьектілер Инспекторында DisplayLabel мәнін «Өрістің аты»-на тең етіп белгілеңіз. Есептеу үрдісін белгілеу үшін Өрістер Редакторынан шығыңыз да, Tablel-ді белгілеңіз, одан кейін Обьектілер Инспекторында оқиғалар бетіне өтіңіз де, OnCalcFields оқиғасын басыңыз, осы оқиғада қажетті операторлардың тізімін жазыңыз. Бұл оқиға кестенің есептелетін өрістерін жаңартқан сайын шығып отырады.

Деректерді фильтрлеу. Table компоненті басқа қасиеттерімен қатар белгілі бір белгілері бойынша жазбаларды фильтрлеуге мүмкіндік береді. Фильтрлеу Filter, Filtered және Filter-Options қасиеттерімен берілуі мүмкін. Filtered қасиеті фильтрді қосып сөндіреді. Ал фильтрдің өзі Filter қасиетіне қатар түрінде жазылады.

Фильтрлеудің шарттарын жазу кезінде =, >, >=, <, <=i <>t операцияларының қатынастарын, сонымен қатар and, or және not логикалық операцияларын қолдануға болады. Фильтрде есептелетін өрістердің аттарын қолдануға болмайды.

DBGrid деректерді басқарудың және визуализацияның кейбір компоненттері. Деректерді басқарудың және визуализацияның кейбір компоненттері ретінде DBGrid қолдануға болады. DBGrid компонентінің бағандарын құрастыру үшін Columns қасиетін қолдануға болады. Ол үшін Обьектілер Инспекторында осы қасиетті шерту қажет және экранда Бағандар Редакторы бос терезесі пайда болады. Бағандарды Add батырмасын басып қосып отыруға болады және олар үшін Обьектілер Инспекторында FieldName қасиетінде сәйкес өрістерді көрсету қажет. Осы әрекетті тышқанның оң жақ батырмасын басып, контекстті мәзірде Add бөлімін таңдап іске асыруға болады. Және керісінше жасауға болады: мәзірден Add All Fields бөлімін таңдауға болады немесе сәйкес батырманы басуға болады. Бағандар Редакторы терезесінде Өрістер Редакторына қосылған барлық бағандардың тізімі пайда болады. Одан кейін керек емес бағандарды Delete батырмасымен алып тастауыңызға болады.

Бағандар Редакторында бағанды белгілесеңіз, Обьектілер Инспекторында оның қасиетін көруге болады. Бағанның көптеген қасиеттерінің ішінде ButtonStyle қасиеті айрықша. Ол деректерді енгізудің стилін анықтайды. ButtonStyle қасиеті келесі мәндерге ие болуы мүмкін:

cbsAuto

Редакциялау кезінде мүмкін мәндердің тізімімен байланысқан батырмалардың пайда болуы.

cbsEllipsis

Редакциялау кезінде "..." көп нүктесі бар батырманың пайда болуы

cbsNone

Ешбір батырмаларсыз редакциялау.

Егер cbsAuto мәнін орнатса, онда PickList бағанының қасиеттерінің орнатуға болады. DropDownRows қасиеті тізімдегі рұқсат етілетін қатарлар санын анықтайды. Егер қатарлар саны DropDownRows аз болса, онда тізімнің өлшемі автоматты түрде орнатылады.

cbsAuto-ң мәні бағанға қатысты болғанда осындай ұқсас редакциялау жүреді. Онда тізім автоматты түрде толтырылады.

Егер ButtonStyle қасиетінің мәні cbsEllipsis-не тең болса, онда қолданушы осы өрісті редакциялайтын болса "..." көпнүктесі бар батырма шығады. Осы батырманы басқан кезде OnEditButtonClick оқиғасы пайда болады. OnEditButtonClick оқиғасынан қандай өріс редакцияланатынын көруге болады. Тағы осы қасиет өріске орнатылған мәнді енгізуге мүмкіндік береді.

Егер ButtonStyle қасиетінің мәні cbsNone-ға тең болса, онда өрісті редакциялау ешқандай батырмаларсыз өтеді.

DBGrid компоненті өте ыңғайлы болып келеді, бірақ визуализациялаудың нашар компоненті болып табылады. Онда деректерді көрсетудің пішіні ыңғайлы емес. Data Control бетінде орналасқан визуализациялау мен деректерді басқарудың тағы да көптеген компоненттері бар.

Осы компоненттердің кейбіреулерін атап өтейік:

DBText Label –ға ұқсас, бірақ деректермен байланысқан. Ол кейбір өрістердің деректерін көрсете алады да, оларды редакциялай алмайды. Көрсетілетін өрістің типі түрлі болуы мүмкін: қатар, сан. Компонент автоматты түрде сәйкес типтерді символдарға ауыстырады.

DBEdit — деректермен байланысқан Edit терезесінің аналогы. Ол өрістердің түрлі деректерін (қатар, сан) көрсетеді және оларды редакциялайды.

DBMemo — деректермен байланысқан Memo терезесінің аналогы. Ол Memo типіндегі өрістердің деректерін көрсетеді және редакциялайды.

DBRichEdit — деректермен байланысқан RTF терезесінің аналогы. Ол да DBMemo компоненті сияқты қолданылады.

DBImage — деректермен байланысқан Image компонентінің аналогы. Компонент графикалық өрістерді, мысалы суреттерді көрсетеді.

DBCheckBox — деректермен байланысқан кәдімгі CheckBox индикаторының аналогы. Ол булевой типті өрістердің деректерін көрсетеді және редакциялайды. Егер деректерді көрсету кезінде өріс true мағынасында болса, онда индикатор қосылады. Және керісінше.

DBRadioGroup — деректермен байланысқан RadioGroup радиобатырмалар тобының аналогы. Компонент мүмкін мәндері шектеулі өрістерді көрсетеді және редакциялайды. Біздің жағдайымызда ол Dep өрісіне қатысты болуы мүмкін. Items қасиеті батырмалар санын және олардың айналасындағы жазуларды анықтайды.

Сонымен қатар өрістер мен сәйкес батырмалардың мағынасын анықтайтын Values қасиеті бар. Осылай батырмалардағы жазулар және өрістердің мағынасы сәйкес келмеуі мүмкін. Егер Values қасиеті берілмесе, онда өрістердің мәні ретінде Items қасиетіндегі қатарлар алынады, яғни батырмалар жанындағы жазулар.

Визуализациялаудың және деректерді басқарудың тағы бірнеше компоненттері бар, оларды оқып білуіңізге болады. Барлық аталған компоненттердің екі қасиеті бар: DataSource — деректердің қайнар көзі ( TData-Source типті компонент) және DataField — компонент байланысқан өріс.

Осы барлық компоненттердің ерекшелігі болып, олардың Обьектілер Инспекторында негізгі қасиеттерінің (Caption -да DBText, Text -да DBEdit, Picture -да DBImage и т.п) болмауы табылады. Осы барлық қасиеттер компонент түрінде болады, бірақ оларды орындау кезінде ғана қолдануға болады. Сондықтан оларды бағдарламалық түрде оқуға, орнатуға, өзгертуге мүмкіндік жоқ. Бұл жағдай түсінікті де. Себебі бұл қасиеттер кестенің сәйкес өрістерінің мәні.

Аталған компоненттер пішінде, кез- келген тақтада орналасуы мүмкін. Сонымен қатар DBCtrlGrid арнайы компонент-кестеде орналасуы мүмкін. Бұл компонент бірнеше тақаталардан тұрады. оның тек біріншісі жобаланады. Ал қалғандары біріншінің құрылымын қайталайды да, кестенің келесі жазбаларына қатысты болады. DBCtrlGrid-ң DataSource қасиеті бар, ол автоматты түрде тақтада орналасқан компоненттерге беріледі. RowCount қасиеті кестедегі қатарлар санын анықтайды, ал ColCount кестедегі бағандар санын анықтайды. DBCtrlGrid тақтасының ені мен биіктігін PanelWidth және PanelHeight қасиеттерімен беруге болады. Осы жағдайда Delphi сіз берген мәндерді автоматты түрде дөңгелектейді.

Бірнеше кестелермен байланысқан қосымшалар. Негізгі және қосымша кестелердің байланысы. Екі кесте өзара кілт бойынша байланысуы мүмкін. Осы кестелердің біреуі негізгі (master), ал екіншісі қосымша (detail) болып табылады.

Жаңа қосымша ашыңыз да, онда Table компонентінің екі бөлшегін орнатыңыз. Кесте Dep өрісі бойынша индексталуы керек. Компоненттердің екінші компонентін DBGrid компонентінің деректерін көрсетуі үшін қолданады. Комплект екінші қосымша кестеге Pers орнатылады.

Енді осы компоненттерді қосыңыз. Екінші компонентте уақытша деректер қорымен байланысты үзіңіз. Ары қарай MasterSource қасиетінде қосымша кестеге бағытталған Table компонентін орнатыңыз. Осыдан кейін Master Fields қасиетін басыңыз. Өрістер байланысының редакторы терезесі ашылады.

Негізгі әдібиеттер: 1[586-605]

Бақылау сұрақтары:

1. Енгізілетін мәндердің шектеулері?

2. Есептелетін өрістер. Деректерді фильтрлеу?

3. Визуализация және деректерді басқару компоненттері?

Дәріс №15. Деректер қорымен жұмысты бағдарламалау. Деректер жиынтығының күйі.

Деректер қорымен жұмысты бағдарламалауға қатысты сұрақтарды қарастыруды деректер жиынтығының күйін анықтайтын ТТаblе компонентінің State негізгі қасиетінен бастайық. Бұл қасиетті тек орындау және оқу кезінде қолдануға болады. Деректер жиынтығы келесі негізгі күйлердің біреуінде орналасқан:

dsInactive

Деректер жиынтығы мен деректер жабық күйде.

dsBrowse

Деректерді тек бақылауға болады, ал өзгертуге мүмкіндік жоқ. Бұл деректер жиынтығын ашқаннан кейінгі күйі.

dsEdit

Ағымдағы жазба өзгертілуі мүмкін.

dsInsert

Жаңа жазба енгізілуі мүмкін.

dsSetKey

Жазбаны іздеу режиміне және SetRange өзгетулердің диапазонын қабылдау операциясына жол ашық. Деректерді бақылауға болады да, өзгертулер мен жаңа жазбаларды енгізуге мүмкіндік жоқ.

Бұдан басқа, кейбір қызметтік күйлер бар. Кестеде көрсетілген күйлер қосымшаларда түрлі әдістерді қолданып, орнатылуы мүмкін.

Close әдісі false –та Active қасиетін орнатып, деректер қорымен байланысты үзеді. Осы кезде State dslnactive күйіне ауысады.

Open әдісі true –да Active қасиетін орнатып, деректер қорымен байланысты қалпына келтіреді. Осы кезде State dsBrowse күйіне ауысады.

Edit әдісі деректер жиынтығын dsEdit күйіне ауыстырады.

Insert және InsertRecord әдістері деректер жиынтығына жаңа жазбаны енгізеді, кейбір басқа операцияларды орындайды (оларды Delphi анықтамасында қарай аласыз) және State–ті dslnsert күйіне ауыстырады.

Жазбаны іздеумен және деректердің өзгеруінің диапазонын қабылдаумен байланысқан EditKey, SetRange, SetRangeStart, SetRangeEnd және ApplyRange әдістері State –ті dsSetKey күйіне ауыстырады.

Көптеген басқа әдістерді деректер жиынтығының түрлі күйлері автоматты түрде орнатады. Деректер қорымен жұмысты бағдарламалау кезінде деректер жиынтығының дер кезінде сәйкес күйге ауыстырылып отыруын бақылап отыру керек. Мысалы, егер алдын ала Edit әдісімен деректер жиынтығын dsEdit күйге ауыстырмай, жазбаны өзгертетіңіз болсаңыз, онда «Dataset not in edit or insert mode» — «Edit немесе Insert режимінде емес деректерді теру» хабарламасымен EdatabaseError жазуы шығады.

Деректер қорына жазбаларды жіберу.

Ағымдағы жазбаларды редакциялау жүріп жатқан кезде, өзгертулер деректер қорында емес, буферде іске асады. Деректер қорына жазбаларды жіберу тек Post әдісін орындау кезінде ғана болады. Бұл әдіс деректер жиынтығы dsEdit немесе dsInsert күйлерінде болғанда шақырылады. Бұл әдісті анық шақыруға болады, мысалы Table1.Post. Және ол деректер жиынтығымен орын ауыстыру кезінде анық емес түрде шақырылуы мүмкін, яғни деректер жиынтығы dsEdit немесе dsInsert күйінде болғанда, курсорды жаңа ағымдағы жазбаға ауыстыру кезінде болады. Жазбаға енгізілген өзгертулерді жоюды Cancel әдісімен іске асыруға болады. Алдын ала Post әдісін шақырмай, осы әдісті орындау кезінде жазба өзгертуге ілгері күйге қайтып келеді де, деректер жиынтығы dsBrowse күйіне ауысады.

Деректер жиынтығымен орын ауыстыру кезінде Post әдісі анық түрде шақырылмауын ескере отырып, қолданушы жазбаға байқамай өзгертулер енгізіп және басқа жазбаға орын ауыстырып оларды алдын ала тексермей кестеге енгізуі мүмкін. Мұндайды болдырмау үшін деректерді тексеру бойынша шаралар қолдану керек және оларды деректер қорына тек қолданушының келісімімен ғана енгізу керек. Мұны Table компонентінің оқиғаларын қолданып іске асыруға болады. Мұндай оқиғалар болып BeforePost (Post әдісін орындау алдында пайда болады) және AfterPos (Post әдісін аяқтау кезінде пайда болады) табылады. BeforeInsert және After-Insert оқиғаларына Insert әдісі ере жүреді. Осындай оқиғаларды деректерді тексеру үшін қолдану керек.

Өрістерге кіру. Өрістер Tfield класының және одан туынды TStringField, TSmallintField, TbooleanField кластарының обьектілерімен көрсетіледі.

Бұл обьектілер үш әдіспен құрылуы мүмкін:

  • Деректер жиынтығының әр компоненті (Table және т.б.) үшін автоматты түрде генерациялануы мүмкін;

  • Өрістер Редакторы көмегімен жобалау кезінде құрылуы мүмкін;

  • Қосымшамен жұмыс кезінде бағдарламалық түрде құрылуы мүмкін.

Егер бұл обьектілер басқа әдістермен (Өрістер Редакторы көмегімен жобалау кезінде немесе орындау кезінде бағдарламалық түрде) құрылмаса, онда TField класының обьектілері деректер қорын ашқан кезде автоматты түрде генерацияланады. Обьектілер кестенің барлық өрістері үшін генерацияланады.

Жобалау кезінде Өрістер Редакторы көмегімен өрістер обьектілерін құру жоғарыда қарастырылып өткен. Бұл жағдай обьектілерді автоматты құруды болдыртпайды. Обьектілері Өрістер Редакторы көмегімен құрылмаған барлық өрістер қосымша үшін жабық. Өрістер Редакторын құру өте ыңғайлы, себебі, жобалау кезінде әр өріс үшін пайдалы қасиеттерді құруға мүмкіндік береді.

Өрістер обьектілеріне кіру үш әдіспен іске асады:

  • Обьектінің реттік индексі бойынша

  • Өрістің аты бойынша

  • Обьектінің аты бойынша

Обьектінің реттік индексі бойынша кіру Fields[i:integer] қасиеті арқылы іске асады. Мұнда i обьектінің индексі.

Delphi –де индексациялау 0 басталады. Мысалы, Table1.Fields[0] Table1 кесте өрісінің бірінші обьектісі.

Өрістің аты бойынша кіру FieldByName('<имя>') әдісімен іске асады. Мысалы, Table1.FieldByName('Fam') Fam өрісімен байланысқан обьект.

Обьектінің аты бойынша кіру тек Өрістер Редакторы көмегімен жасалған обьектілерге ғана болады. Delphi обьектінің атын жасайды. Ол кесте мен өрістің атынан құрылады. Мысалы, TablelDep. Сіз бұл атауларды Өрістер Редакторымен жұмыс істегенде көре аласыз. Әрине осы атауды өзгерте аласыз. Обьектіге аты бойынша кіру басқаларға қарағанда кестеге сілтеме жасауды керек етпейді. Тек Table1Dep деп жазсаңыз болды, бұл сізге керек обьект болады.

Автоматты түрде жасалатын обьектілер өз аттарын өзгертпейді, себебі, олардың Name қасиеті бос. Сондықтан оларға аты бойынша кіру мүмкін емес.

Өрістерге кірудің қарастырылған әдістерінің ішінде ең ыңғайлысы болып, обьектіге аты бойынша кіру әдісі табылады. Оның кемшілігі: өрістің қатаң кодталуы. Егер кодтың қатары түрлі жағдайларда түрлі өрістерге айналып келуі керек болса, онда индекс бойынша кіруді Fields[i] немесе өрістің аты бойынша кіруді FieldByName(s) қолдану керек.

Ағымдағы жазбаның өрісінің мәні Value қасиетінде сақталады. Осы қасиеттің типі өрістің типімен анықталады. Мысалы, Tablel.FieldByName('Fam').Value — бұл қатар, aл Table1.FieldByName('Year_b').Value —бұл бүтін сан.

Мәндердің бір түрін екіншіге ауыстыратын қасиеттерде болады. Мысалы, AsString қасиеті өрістің мәнін оқу кезінде өрістің кез келген түрін қатарға ауыстырады да, және керісінше әрекет жасайды. AsString қасиетінен басқа, ұқсас Aslnteger, AsFloat, AsBoolean, AsDateTime қасиеттері болады. Aslnteger қасиеті өрістің түрі мен бүтін 32-битті санның арасындағы түрлендіруді іске асырады, AsFloat қасиеті дәл осы операцияны үтірі бар нақты сандар үшін жасайды, AsBoolean қасиеті —булевой мәндер үшін, AsDateTime қасиеті—Delphi-да қабылданған TDateTime форматында уақыт пен күндердің мәндері үшін.

Кей жағдайларда өрістің типін білуге керек болады. Оны ftUnknown (белгісіз), ftAutoInc (автоматты түрде өсуші), ftString (қатар) мәндеріне ие болатын DataType өрісінің обьектісінің қасиетінен біле аласыз.

Навигация әдістері

Деректер жиынтығында навигацияны іске асыруға мүмкіндік беретін бірқатар әдістер бар:

First

бірінші жазбаға орын ауыстыру

Last

соңғы жазбаға орын ауыстыру

Next

келесі жазбаға орын ауыстыру

Prior

алдыңғы жазбаға орын ауыстыру

MoveTo (i:integer)

i жазбаның соңына (i>0 кезінде) немесе басына (i<0 кезінде) орын ауыстыру

dsEdit күйіндегі жиынтық бойымен кез келген орын ауыстыру Post әдісін шақырады. Ол өзгертілген ағымдағы жазбаны деректер базасына жібереді де, бұдан кейін өзгертулерді жою үшін Cancel әдісін қолдануға мүмкіндік жоқ. Сондықтан деректер жиынтығында орын ауыстырудың алдында деректерді тексеріп отыру керек немесе жиынтық бойымен басқа бір күйде орын ауыстыру керек (мысалы, dsBrowse). Кестенің басы мен соңын бақылап отыру үшін екі қасиет қолданылады: EOF (end of file) —деректердің соңы, және BOF (beginning of file) —деректердің басы. Егер курсорды соңғы немесе бірінші жазбаның шектерінен тысқары етіп ауыстырса, сонымен қатар Last және First әдістерін орындаудан кейін бұл қасиеттер true қасиетіне тең болып қалады.

Жазбаларды іздеу. Деректер қорымен орындалатын операциялардың ең негізгісі болып, кілт бойынша жазбаларды іздеу табылады. Жазбаларды іздеудің бірнеше әдістері бар. Олардың екеуі SetKey және FindKey Delphi-ң, сонымен қатар Delphi 1-ң кез келген версияларына қолданылуы мүмкін. Қалған екеуі Lookup және Locate кейінірек пайда болды.

SetKey әдісін қолдану үшін кесте алдын ала іздеу жүргізілетін өріс бойымен индекстелу керек. Одан кейін кесте dsSetKey іздеу күйіне ауыстырылады. Ол үшін SetKey әдісі қолданылады. dsSetKey күйінде деректер жиынтығы келесі операторды іздеу кілті ретінде қабылдап алады. Сондықтан sSetKey күйін орнатқаннан кейін иелену операторы іздеу кілтінің қажетті мәнін орнатады. Ең соңында GoToKey әдісімен курсор өрістің мәні кілтке тең болатын жазбаға ауыстырылады. Егер мұндай жазбалар бірнеше болса, онда курсор біріншісіне ауыстырылады. Егер сәйкес жазба табылмаса, онда GoToKey әдісі false-қа қайтып келеді. Қатар типті өрістер үшін GoToKey әдісін емес, ал GoToNearest әдісін қолданған жөн. Бұл әдіс курсорды кілтке максималды жақын жазбаға тасымалдайды. Яғни, толық үйлеспегенде де жұмыс істей береді.

FindKey іздеу әдістемесінде кесте іздеу салынатын негізгі өрістер бойынша индексталу керек. FindKey әдісіне негізгі өрістердің мәндерінің массиві беріледі (және индекске кіретін реті бойынша). Барлық өрістерді атап шығудың қажеті жоқ. Тек біріншісін атаса болды. Қатар типті өрістер үшін FindKey орнына оған ұқсас әдісті FindNearest қолдануға болады. Ол үйлесімді қатарға өтеді.

Тағы да Delphi-ң соңғы версияларында пайда болған Locate әдісі бар. Locate ерекшелігі: деректер жиынтығын белгілі бір әдіспен индекстеудің қажеті жоқ.

Бұл әдіс мынадай түрде болады:

function Locate (const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean;

KeyFields-ң бірінші параметрі ретінде құрамында негізгі өрістердің тізімі бар қатар беріледі. Екінші параметр ретінде KeyValues беріледі (негізгі мәндердің массиві). Ал үшінші параметр Options операциялардың жиынтығы болып табылады. Оның элементтері loCaselnsensitive (символдары енгізілген регистрге іздеу сезгіштігінің болмауы) және loPartialKey (бірен-саран үйлесімділіктің мүмкіндігі) болады. Егер ізделініп отырған жазба табылмаса, онда әдіс false-ты қайтып әкеледі.

Бірнеше өрістер бойынша іздегенде, VarArrayOf функциясын қолдануға болады. Ол параметрлер массивінен Variant типін құрастырады.

Соңында іздеудің соңғы әдісі Lookup туралы айта кетсек. Бұл әдіс мынадай түрде болады:

function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields,: string) : Variant;

Lookup әдісі курсордың орналасуын өзгертпейді. Ол тек белгіленген өрістердің мәндерін қайтарады. Олар кез келген әдіспен қолданылуы мүмкін. Әдетте, олар Lookup немесе Locate операторларында KeyValues параметрінің орнына қолданылады. Бұл жағдай бірнеше кестелер бойынша күрделі сауалдарды құрастыруға ықпал етеді.

Мүмкін мәндердің диапазонын орнатудың әдістері

Қосымшамен жұмыс істеу кезінде өрістің мүмкін мәндерінің диапазонын орнатудың түрлі әдістері бар. SetRangeStart әдісі деректер жиынтығын dsSetKey күйіне ауыстырады және өріске мәндерді иеленудің операторы мүмкін мәндердің диапазонының төменгі шегінің өрісі үшін тапсырма ретінде қабылданады. SetRangeEnd әдісі осыған ұқсас жұмыс істейді, бірақ одан кейінгі иелену операторы диапазонның жоғарғы шегінің тапсырмасы ретінде қабылданады. Диапазонның шектері орнатылғаннан кейін ApplyRange әдісін қолдануға болады.

Сандық өрістер үшін SetRangeStart және SetRangeEnd әдістерінің жұмыс істеуінің нәтижелеріне деректер жиынтығының Key Exclusive қасиеті әсер етеді. Ол қабылданған шектер диапазонға кіреме (KeyExclusive = false кезінде бұл мәндер үндеместік бойынша қабылданды) әлде кірмей ме (KeyExclusive = true кезінде) деген сұраққа жауап береді. Басқаша айтқанда, KeyExclusive = false кезінде > қатынастарының оперциялары, $ ал KeyExclusive = true кезінде >, < қатынастарының операциялары қолданылады.

Диапазонды орнатудың тағы бір жеңілдетілген әдісі SetRange бар. Бұл әдіс мынадай түрде болады: procedure SetRange(const StartValues, EndValues: array of const);

StartValues және EndValues массивтерінде негізгі болып табылатын өрістер диапазондарының сәйкесінше төменгі және жоғарғы мәндері болады. Осылай SetRange әдісі SetRangeStart, SetRangeEnd и ApplyRange әдістеріне жүгінуді алмастырады.

Кестелерді құрудың және өзгертудің әдістері.

Table –да кестелер мен индекстерді өзгертуге мүмкіндік беретін бірқатар әдістер бар. Оларды шолып өтейік:

Create Table

Fields немесе FieldDcfs қасиеттерінде орналасқан Таblе компоненттеріне сүйене отырып, жаңа кестені құру. Егер осындай атпен белгіленген кесте бар болса, онда кесте қайтадан жазылады.

Delete Table

DatabaseName және TableName қасиеттерімен берілген кестені жояды. Кестені алдын ала жауып тастау керек.

RenameTable(s)

Бар кестенің атын жаңа атқа ауыстыру. Осымен қатар кестеге барлық ілеспелі файлдардың да аттары өзгереді.

DeleteIndex(s)

Кестеден s атты екілік индексті жойып алып тастайды.

Негізгі әдебиеттер: 1[606-617]

Бақылау сұрақтары:

1. Деректер жиынтығының күйі?

2. Деректер базасына жазбаларды жіберу?

3. Өрістерге кіру. Навигация әдістері?

4. Жазбаларды іздеу?

5. Мүмкін мәндердің диапазонын орнатудың әдістері?

6. Кестелерді құрудың және орнатудың әдістері?