Негізгі визуалдық компоненттер. VCL кітапханасының компоненттері. Қасиеттері, әдістері және оқиғалары


Әдістемелік нұсқаулар


VCL (Visual Component Library)- визуальды компоненттер кітапханасында қосымша құруда қажет болатын компоненттер жинақталған.

Компоненттердің қасиетін өзгерту екі түрлі жолмен жасалады: объектілер инспекторының (Object Inspector) терезесінде немесе программалау жолымен. Мысалы, Label1 компонентінің Caption қасиетін Object Inspector терезесінде өзгерту.

Ал программалық жолмен өзгерту үшін программа мәтінінде келесі түрде жазылуы керек:

Label1->Caption= "Багдарлама";

Объектінің немесе компоненттердің әдістерін шақыру келесі түрде жазылады:

Объектінің аты ->әдістің аты;

Memo1->Clear();

Компоненттерге тән оқиғалар функциялар /void __fastcall/ түрінде анықталған, бұл функциялардың шаблондары программа мәтініне автоматты түрде бірден қойылады, бұл шаблондарды сол компоненттің белгісіне екі рет шерту немесе Object Inspector терезесіндегі Events жапсырмасындағы оқиғалар арқылы шақырып алуға болады. Мысалы, Button1 компонентінің OnClick оқиғасы:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Label1->Caption= "Багдарлама";

}


4.2- сурет. Button1 компонентінің

OnClick оқиғасын шақыру.


Форма. C++ Builder ортасында құрылатын қосымшаның орындалуы кезінде экранға шығатын визуальдық бөлімінің негізін TForm класының өкілі болып табылатын Form компоненті құрайды. C++ Builder ортасы жүктелгенде, құрылатын жобаға (Project1) сәйкес форма терезесі (Form1) өзі автоматты түрде пайда болады /4.3-сурет/. Форма терезесі, бұл - Windows қосымшаларына тән тақырыптық зонасы, жүйелік мәзір батырмасы, басқару батырмалары және таза жұмыстық обылысы бар, өлшемі өзгеріп отыратын терезе.

Жобаға тағы да форма терезелерін қосу үшін File à New à Form командасы орындалады. Программа құруда Form компонентінің келесі қасиеттері мен әдістері жиі пайдаланылады:

TCaption типтер класына жататын Caption қасиеті форманың тақырыбын, яғни тақырыптық зонадағы мәтінді жазу үшін қолданылады;

TComponentName типіне жататын Name қасиеті Form компонентінің атын немесе идентификаторын беру үшін қолданылады, әдетте ол Form1, Form2 ... болып кете береді, егер қолданушы қажет болған жағдайда бұл атауларды өзгерте алады және программада оны сол өзі берген атпен шақырып пайдаланады, мысалы, Name қасиетінің мәні Form1 –ден MainForm- ға өзгертілсе онда оны программада пайдаланғанда

Form1à Caption:= “Форма терезесі”; деп жазудың орнына MainFormà Caption:= “Форма терезесі”; түрінде жазады. Бұл Name қасиеті C++ Builder ортасындағы қолданылатын барлық программалық компоненттерге тән қасиет.

Программада Form компонентінің жаңа экземпляр-данасын құру үшін constructor Create (AOwner: TComponent); конструкторы қолданылады, егер жаңа дананы құру команда түрінде талап етілетін болса оны программа мәтінінде келесі түрде жазады:

CreateForm(TForm1, Form1);àApplication

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

Form2=TForm2.Create(Application); түрінде беруге болады.

Close функциясы форма терезесін жабуды қамтамасыз етеді, программадағы жазылуы:

Form1à Close();

Hide функциясының қызметі - форманы экранда көрсетпей жасырып тұрады, жазылуы:

Form1à Hide();

Show функциясы орындалғанда көрінбей тұрған форма, алдыға шығып экранда көрсетіліп тұрады, жазылуы:

Form1à Show();
</rect.area();
</rect.width();
</rect.length();
Форма компонентінің TNotifyEvent класына жататын OnCreate оқиғасы форма құрылған кезде бір-ақ рет орындалады, сондықтан бұл функцияға форманың құрылуымен бірге орындалатын (мысалы пароль енгізу сияқты) операциялар жазылады. OnCreate оқиғасына сәйкес функция Object Inspector терезесінің Events жапсырмасындағы OnCreate жолының терезесіне екі рет шерту арқылы шақырылады:

void __fastcall TForm2::FormCreate(TObject *Sender)

{


}


Мәтінмен жұмыс жасауға арналған Standart панелінің Label, Memo, Еdit компоненттері. Қарапайым қосымшалар құру үшін Standart панелінің компоненттері қолданылады.

Қосымшаларда мәтін түріндегі мәліметтерді терезелер арқылы енгізуде Standart панелінің Label, Еdit, Memo компоненттері қолданылады.

Еdit компоненті (немесе енгізу жолағы, немесе бір жолды редактор деп те атайды) мәтінді кішкентай терезе түріндегі бір жолға енгізуді немесе мәтін түріндегі нәтижені терезеге шығарып қоюды қамтамасыз етеді. Қосымшада Еdit компонентінің терезесінде берілген мәтінді, курсорды оңға және солға жылжытатын бағыттауыштар көмегімен, символдарды өшіретін <Backspace> және пернелерін пайдаланып және фрагменттерді бөліп алып жөндеуге болады. Еdit компонентінің терезесіне енгізілген мәтін, оның типі AnsiString болатын Text қасиетінің мәні болып табылады, яғни Еdit терезесінде берілген мәліметтер программада тек жолдық тип ретінде ғана қабылданады, ал оны әрі қарай программада сандар ретінде пайдалану үшін түрлендіру функциялары қолданылады. Терезеге енгізілген мәтінді бүтін /int/ немесе нақты /float/ типтердің біріне айналдыру үшін келесі түрлендіру функциялары қолданылады:


StrToInt (AnsiString s)- жолдық типті бүтін типке, StrToFloat(AnsiString s) - нақты типке түрлендіреді.

Еdit терезесіндегі мәтіннің үлкен немесе кіші әріптермен жазылуын немесе регистрлердің ауысып отыруын оның CharCase (типі TEditCharCase) қасиеті арқылы береді, сәйкесінше ол үш түрлі мән қабылдайды:


  • ecNormal – ррегистр өзермейді, сол күйінде тұрады;

  • ecLowerCase - төменгі регистрдің әріптеріне көшеді;

  • ecUpperCase - жоғарғы регистрдің бас әріптеріне ауысады.

Еdit компонентінің типі Char болатын PasswordChar қасиеті осы терезеге пароль енгізу үшін қолданылады, әдетте оның мәні #0 болып тұрады да терезеге енгізілген мәтіннің өзі шығады, ал оны жасырып көрсетпеу үшін PasswordChar қасиетінің қабылдайтын мәнін басқа бір символға, мысалы «*» немесе «?» секілді мәндерге өзгерту керек, сонда енгізілген құпия мәтіннің орнына «********» немесе «?????????» түріндегі жолдар шығады.

Программа терезесінде Еdit1, Еdit2, Еdit3 компоненттері арқылы берілген бірнеше терезелердің бірінен екіншісіне ENTER пернесі арқылы көшіп отыру үшін оларға басқару фокусын беруді (курсорды беретін) қамтамасыз ететін SetFocus әдісін қолдануға болады, ол әдіс осы компоненттің терезесінде тұрып басылған пернеге жауап беретін OnKeyPress оқиға өңдеушісінің денесінде шақырылады. Мысалы, Еdit2 компонентінің терезесінен ENTER пернесі арқылы Еdit3 терезесіне көшу үшін сол Еdit2–нің OnKeyPress оқиға өңдеушісіне келесі кодты жазуға болады:


void __fastcall TForm2::Edit2KeyPress(TObject *Sender,

char &Key)

{

if(Key>='0' || Key<='9') ; // бұл 0- 9 цифрларды көрсету

if(Key==8) ; // Backspace -өшіру пернесінің ішкі коды

if(Key==13) // ENTER перенсінің ішкі коды

Edit3->SetFocus();

}


Ал, форма терезесіндегі барлық терезелік компоненттерде басқару фокустарының өзара ауысып отыруын ұйымдастыру үшін Form компонентінің SelectNext (TWinControl* CurControl, bool GoForward, bool CheckTabStop); әдісі қолданылады. Қосымшадағы Memo терезесін мәтіндік файлдарды ашып оқу үшін немесе терезедегі мәтінді тексттік файлға жазып сақтау үшінде қолдануға болады. Ол үшін оның LoadFromFile (FileName) әдісі- терезедегі мәтінді файлға жазуды, ал SaveToFile (FileName) әдісі-керісінше файлдағы мәтінді Memo терезесіне шығаруды қамтамасыз етеді. Мысалы:

...

AnsiString FileName = "C:\\WINDOWS\\WIN.INI";

// файлдың аты

Form1->Memo1->Lines->LoadFromFile(FileName);

Form1->Memo1->Lines->SaveToFile(ChangeFileExt

(FileName, ".BAK"));

...

Жаттығу жұмыстары


Үшбұрыштың ауданын, биіктігі мен табаны бойынша есептеуді орындайтын қарапайым қосымша құру. Қосымша терезесі келесі түрде болуы қажет /4.4-сурет(а,б)/.

4.4-сурет. а) Форма терезесі


4.4-сурет. в) Қосымша терезесі


Орындалуы:


  1. Fileà New à Application командалары орындалады.

  2. Жаңа құрылған жобаны сақтау үшін Filеà Save All командасы орындалады. Жоба құрамына кіретін файлдардың бір бумада сақталуы қажет.

  3. Форма терезесіне қажет компоненттер /4.4-суреттегідей/ орналастырылып және олардың келесі қасиеттері өзгертіледі:
Компоненттің аты Қасиетінің аты Мәні
Form1 Caption Үшбұрыштың ауданын есептеу
Memo1 Lines Үшбұрыштың ауданын биіктігі мен табаны бойынша есептейтін программа құрыңыз
Label1 Caption Биіктік
Label2 Caption Табан
Label3 Caption Үшбұрыштың ауданы
Edit1 Text
Edit2 Text
Edit3 Text
Button1 Caption Есептеу

«Есептеу» деп аталатын батырмаға екі рет шертіліп, пайда болған терезеге келесі код жазылады:


void __fastcall TForm1::Button1Click(TObject *Sender)

{

int biktik, taban;

float audan;

biktik=StrToInt(Edit1->Text);

taban=StrToInt(Edit2->Text);

audan=float(biktik*taban)/2;

Edit3->Text=FloatToStr(audan);

}


Өзіндік жұмыс тапсымалары


Келесі мазмұндағы есептерді шеше алатын қосымша құрыңыз:


  1. Пирамиданың көлемін табу.

  2. Үш қабырғасы бойынша үшбұрыштың ауданын есептеу.

  3. Параллелипедтің көлемін есептеу.

  4. Тізбектің жалпы кедергісін есептеу (параллель қосылған).

  5. Трапецияның ауданын есептеу.

  6. Тізбектің жалпы кедергісін есептеу (тізбектей қосылған).

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

  8. Бүтін сандармен арифметикалық амалдарды орындай алатын калькулятор программа жасау.

  9. Тригонометриялық функцияларды және түбір табуды орындай алатын калькулятор жасау.

  10. Цилиндр көлемін табу.


4 - зертханалық жұмыс.

Наши рекомендации