Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Объектілер инспекторы терезесі



Қолданбада пайдаланылатын кез-келген компонент белгілі бір параметрлар жиынымен (орнымен, өлшемімен, түсімен т.б) сипатталынады. Компоненттердің кейбір параметрларын мысалы, орнын, өлшемін қолданушы форма терезесінде компонентпен манипуляция жасау арқылы өзгертуіне болады. Ал қалған параметрларды өзгертуге Объектілер инспекторы терезесі арналған. Объектілер инспекторы терезесі объектілер тармағы терезесінің астында экранның сол жағында орналасады да кезекті компоненттің қасиеттері мен оқиғаларын көрсетеді. Оны менюдың View\Object Inspector командасының немесе <F11> батырмасының көмегімен ашуға болады. Объектілер инспекторы терезесі Properties (Қасиеттер) және Events (Оқиғалар) парақтарынан тұрады.

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

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

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

Объектілер инспекторы терезесінің жоғарғы жағында формада орналасқан компонентер тізімін көрсететін ашылатын тізім орналасқан. Форманың өзі де компонент болғандықтан ол да тізімге кіреді.

Код редакторы терезесі (Unit.pas) форма терезесінің сыртында орналасады да көрінбей тұрады. Редактор коды кәдімгі текстік редактор тәрізді. Оның көмегімен модуль текстін және басқа да қосымшаның текстік файлдарын мысалы, жоба файлын редакторлеуге болады. Әрбір редакторленетін файл редактор кодында жеке бетте орналасады. Алғашқыда бұл терезе Form1 форма модулінің коды Unit1 қаттамасынан тұрады.

Форма терезесі мен код редактор терезесін <F12> батырмасы арқылы ауыстырып отыруға болады.

Код сілтеуіш терезесі (Exploring Unit1.pas) код редактор терезесінің сол жағына жалғаса орналасқан. Мұнда форма модулінің барлық объектілері тармақталып көрсетілген. Код сілтеуіш терезесінде қолданбаның объектілерін көру және қажетті объектіге өту ыңғайлы. Ол терезе коды View (көру) менюінің Code Explorer (код сілтеуіші) командасымен ашылады.

 

Дәріс №2

Тақырып. Қосымша құру. Визуалды компоненттердің жалпы сипаттамасы.

Жоспар.Қарапайым қосымша. Қосымшаның интерфейсін құру. Қосымшаның функционалдық мүмкіндігін анықтау. Визуалды компоненттер. Қасиеттер. Әдістер.

Кілттік сөздер: қосымша, интерфейс, компонент, қасиет, оқиға. Әдістер.

Иллюстрациялық материал:слайд

 

Delphi RAD (Rapid Application Development- Қолданбаны жылдам жасау) деп те аталатын визуалды программалау жүйелеріне жатады. Delphi-де қосымшаны құру екі кезеңнен тұрады:

§ қосымшаның интерфейсін (сырт көрінісін) құру;

§ қосымшаның функционалдық мүмкіндіктерін анықтау.

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

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

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

§ алдымен компоненттер Палитрасынан қажетті компоненттер таңдалынып формаға қойылады;

§ компоненттердің қасиеттері анықталады.

Компоненттердің қасиеттері олардың сырт көрінісін, орнын және іс-әрекетін анықтайды. Қасиеттерді Object Inspector терезесінде немесе программа жазу барысында орнатуға болады. Визуалды компоненттердің жалпылама болып табылатын қасиеттеріне кейінірек тоқталамыз.

Delphi-дің мүмкіндіктері және визуалды жобалау технологиясы жайлы алғашқы түсініктер алу үшін қосқыш рөлін атқаратын қосымша жасайық. Қосымшаның жұмыс кезеңінде терезенің көрінісі келесі суретте көрсетілген:

 

Жаңа программамен жұмыс бастау үшін Delphi-ді іске қосқаннан кейін File/New Application командасын таңдаймыз. Жұмыс басталысымен-ақ Delphi- қолданбаның Windows-та қалыпты жұмысын қамтамасыз етуге программа кодын құрады, яғни қарапайым жоба жасалады.

Әрине, бұл программа ешнәрсе орындамайды. Экранда бос форма. Енді осы форманың сырт көрінісін жөнге келтіру керек. Алдымен форманың Caption қасиетінің мәнін өзгерткен жөн. Ол үшін Object Inspector терезесінде Caption жолына тышқанмен шертіп, оң бағанада ерекшеленген тексттің орнына «Қосқыш» текстін енгізу керек.

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

Айталық, қосымша интерфейсін құру барысында формаға терезені жабуға арналған Button1 батырмасы орнатылсын. Онда бұл батырманың аты және тақырыбы «Button1» болады. Алайда, бұл батырманың тақырыбын оның атқаратын қызметіне байланысты объектілер инспекторы терезесінен Caption қасиетіне «Жабу» текстін енгізіп атын өзгертейік. Проектіні орындау барысында Button1 батырмасын маус немесе пернетақтаның көмегімен басуға болады.

Сондағы форма бетіне қойылған Button1 батырмасының қасиеттері мынадай болады:

Қасиеттер Мәндері
Caption Жабу
Heigth
Width

 

Батырма басылғанымен форманы жабыға байланысты ашқандай әрекеттер орындалмайды. Өйткені, батырма үшін пайдаланушының қандай да бір әрекет анықталмаған. Батырма қандай да бір оқиғаға жауап беру үшін осы оқиға пайда болған кезде шақырылатын өңдеу процедурасын құру қажет. Оқиғаны өңдеу процедурасын құру үшін формадан қажетті батырманы таңдап, Объектілер Инспекторы терезесінің осы таңдалған батырма үшін барлық мүмкін оқиғалар көрсетілген Events (Оқиға) парағына өту қажет. Батырманы басқан кезде OnClick (Шерту кезінде) оқиғасы пайда болғандықтан, осы оқиғаны өңдеу процедурасын құру қажет. Ол үшін OnClick оқиғасының мәндер аймағында маусты екі рет шертсек, нәтижесінде форма модулінде автоматты түрде өңдеу процедурасының қаңқасы құрылады. Осы кезде Код Редакторы терезесі алдыңғы бетке шығып, курсор процедураның Button1 батырмасын басқанда орындалатын код жазуға арналған жеріне орналасады.

Батырма терезені жабатын болғандықтан бұл жерде Form1.Close немесе жай ғана Close деп жазу керек. Сонда форма модулі келесі түрде болады:

 

unit Unit1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

 

type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.Close;

end;

 

end.

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

Визуалды компоненттердің жалпы сипаттамасы.

Қолданбаның интерфейсін құру үшін Delphi жүйесі визуалды компоненттердің көптеген жиынтығын ұсынады. Олардың негізгілері компоненттер палитрасының мына беттерінде орналасқан: Standard, Additional және Win32.

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

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

Енді компоненттердің негізгі жалпылама қасиеттерін атап өтейік. Бірақ осы қасиеттердің барлығы кез келген компоненттерге тән бола бермейді. Мысалы, Edit компонентінде Caption, ал Label компонентінде ReadOnly қасиеттері жоқ.

Name барлық визуалды компоненттерге тән жалпылама қасиет. Қолданбаны құру кезінде компоненттерге автоматты түрде компоненттің атынан және оның реттік нөмірінен тұратын атау беріледі. Мысалы, формаға екі Edit компоненттерін қойсақ олардың атаулары Edit1 және Edit2 болады. Атауларды қолданушы өзі де өзгерте алады. Мысалы,

Edit1.name=’EdtName’;

Енді бұл компоненттің аты Edit1 емес EdtName болады.

Caption қасиеті компоненттің тақырыбын (сыртқы жазылуын) анықтайды.

Allign қасиеті контейнер ішіндегі компоненттің орналасуын анықтайды.

Көбінде, контейнер ретінде форма (Form) немесе панель (Panel) алынады. Орналасу контейнер өлшеміне тәуелсіз интерфейстік элементтің сол контейнердің ішінде білгілі бір орында орналасуы талап етілетін жағдайда пайдаланылады.

Align қасиеті келесі мәндердің бірін қабылдайды:

§ AlNone- туралау процесі жүрмейді, компонент өзінің бастапқы орнында қалады;

§ AlTop – компонент контейнердің жоғарғы жағына орналасады, компонент биіктігі өзгермейді, ал ені контейнер еніне теңеседі;

§ AlBotton- AlTop қасиеті тәрізді, бірақ компонент контейнердің төменгі жағына орналасады;

§ AlLeft – компонент контейнердің сол жағына орналасады, компонент ені өзгермейді, ал биіктігі контейнер биіктігіне теңеседі;

§ AlRight – AlLeft қасиетіне ұқсас, бірақ компонент контейнердің оң жағына орналасады;

§ AlClient- компонент контейнердің тұтас бетін алып жататын болады;

§ AlCustom- контейнердегі компоненттің орны мен өлшемін өңдеуші орнатады. Мысалы, құралдар тақтасы әдетте форманың жоғырғы жағында бас менюдің астында орналасады. Құралдар тақтасын жасау үшін Panel компонентін пайдалансақ Align AlTop мәні алынады:

Panel1.Align:= Align;

Color қасиеті компонент бетінің түсін анықтайды. Көбіне түстерді тұрақтылар көмегімен берген ыңғайлы.

Type TColor = (COLOR_ENDCOLORS+1)..$02FFFFFF .

Color қасиетiнiң мәнi төртбайттық оналтылық санды бiлдiредi. Үлкен байт палитраны бiлдiредi және әдетте ол $00 кодынан тұрады. Ал кiшi үш байт RGB-интенсивтілікті (қызыл, жасыл, көк) бередi. Түстердi тұрақтылардың көмегiмен беру ыңғайлы. Бейнеленетiн түс бейне карта мен монитор параметрлеріне, бiрiншi кезекте орнатылған түстiк рұқсатқа тәуелдi болады.

 

Негiзгi түстер тұрақтылары

 

  Тұрақты     Түс   Мән
clAqua ашық көкшiл $FFFF00
clBlack қара $000000
clBlue көк $FF0000
clFuchsia көгiлдiр $F0FBFF
clGray сұр $808080
clGreen жасыл $008000
clLime ашық жасыл $00FF00
clMaroon қоңыр $000080
clNavy қою көк $800000
clOlive зәйтүн түсті $008080
clPurple қызыл-көк $800080
clRed қызыл $0000FF
clSilver күміс түсті $C0C0C0
clTeal көк-жасыл $808000
clWhite ақ $FFFFFF
clYellow сары $00FFFF

 

TCursor типтi Cursor қасиетi тышқан көрсеткiшiнiң түрiн анықтайды. Delphi –де тышқан көрсеткiшiнiң 20-дан астам түрi және оларға сәйкес келетін тұрақтылар бар. Олардың iшiндегi ең негiзгiлері:

à crDefault – көрсеткiш бастапқы қалыпта өзгеріссiз қалады, әдетте ол бағыттауыш түрiнде;

à crNone – көрсеткiш көрiнбейдi;

à crArrow – көрсеткiш бағыттауыш түрiнде ;

à crCross – көрсеткiш крест түрiнде;

à crHourGlass – көрсеткiш құмсағат түрiнде.

 

TCursor типтi DragCursor қасиетi компоненттердi ауыстыру кезiнде тышқан көрсеткiшiнiң түрiн анықтайды.

Boolean типтi Enabled қасиетi компоненттердiң белсенділігін, яғни оның түсiп жатқан хабарламаға әсер тигiзу мүмкiндiгiн анықтайды. Егер қасиет True мәндi қабылдайтын болса, онда компонент белсенді, ал керi жағдайда белсенді емес екендігін бiлдiредi.

TFont типті Font қасиетi визуалды компоненттерде бейнеленетін мәтін қаріпін анықтайды. Өз кезегiнде, TFont класы қаріптер параметрлерiн басқаратын қасиеттердi қамтиды. Қаріптің негiзгi қасиеттерiне:

à TFontName типті Name қасиеті қаріп атауын анықтайды, мысалы, Arial немесе Times New Roman;

à Integer типтi Size қасиеті пунктегі қаріптің өлшемiн бередi (ПУНКТ 1/72 дюймға тең);

à Integer типті Height қасиеті қаріптің пикселдегі өлшемін береді;

à TFontStyle типті Style қасиеті қаріптің стилін береді және ол келесі мәндер комбинациясын қабылдауы мүмкін:

– fsItalic (курсив);

– fsBold (қою қара);

– fsUnderLine (асты сызылған);

– fsStrikeOut (үсті сызылған).

à TColor типті Color қасиеті мәтін түсін басқарады.

 

Компонент түсiн орнату мысалы:

Label1.Font.Color := clBlue;

Label1.Color := clGreen;

 

Integer типті Height және Width қасиеттерi компоненттердiң пикселдегі сәйкесінше, тік және көлденең өлшемдерін көрсетеді.

Integer типтi Left және Top қасиеттерi компоненттің оны қоршап тұрған контейнерге қатысты жоғарғы сол жақ бұрышының координаталарын анықтайды.

THelpConText типтi HelpConText қасиетi анықтамалық жүйенің тарау нөмірін береді.

String типті Hint қасиетi курсор компоненттер облысында тұрып және ол бiр талай уақыт қозғалмай тұрған кезде шығатын сыбыр мәтінін бередi. Сыбыр сары түспен боялған өрiстi бiдiредi. Сыбыр шығу үшiн Boolean типiнің ShowHint қасиетiне True мәнін орнату керек.

TPоpupMenu типтi PopupMenu қасиетi тышқанның оң жақ батырмасын басу кезiнде пайда болатын жергілікті жанама менюдi көрсетедi. Жанама меню шығу үшін Boolean типтi AutoPupup қасиетiне True мәнiн орнату керек.

TCaption типтi Text қасиетi компонентпен байланысқан жолды білдіреді. Бұл қасиеттің мәні компоненттің мазмұны болады.

TTabOrder типтi TabOrder қасиетi <Tab> пернесiн басқан кезде компоненттердің контейнер фокусын қабылдау ретін анықтайды. Келісім бойынша бұл тізбек форманы құрастыру кезінде контейнерге компоненттерді орнату ретімен анықталады: бірінші компонент үшін TabOrder қасиетінің мәні 0, екінші үшін – 1 болады.

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

Color, Ctl3D, Font, ShowHint қасиеттерi үшiн визуалды компоненттер ата-аналық басқару элементтерінің сәйкес қасиеттерінің мәндерін қабылдауына болады. Көрсетiлген қасиеттер үшiн бастапқы мәндер Boolean типті келесi қасиеттер-нысандармен анықталады:

à ParentColor (фон түсi) ;

à ParentCtl3D( компонент түрi) ;

à ParentFont – (мәтін қаріпі);

à ParentShowHint (сыбырлауды бейнелеу нысан)

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

Келесі мысалды қарастырайық:

procedure TForm1.Button1Click(Sender: TObject);

begin

With TEdit.Create(Self) do

begin

Parent:=Form1;

Name:='edtNew';

Text:='New Edit';

Left:=60;

Top:=35;

end;

end;

end.

Бұл жерде Button1 батырмасын басқан кезде Form1 формасында орналасатын компонент динамикалық түрде құрылады. Егер Parent қасиетінің мәнін бермесе, онда компонент құрылады, бірақ экранда пайда болмайды. Ата-анадан басқа, компонент үшін Name, Text, Left және Top қасиеттерінің мәндері де орнатылады. Егер Name қасиетіне мән бермесе, онда компонент аты Edit1 болады.

Компоненттерде Parent қасиетіне ұқсас компоненттің элемент-иесін көрсететін Owner қасиеті бар.Әдетте компоненттердің иесі олар орналасқан форма болып табылады. Иені өшірген кезде онда орналасқан компоненттерде бірге өшеді.

Visible қасиеті компоненттің көрінгіштігін басқарады. Егер оған True мәні орнатылса, онда компонент пайдаланушыға көрінеді, ал егер False болса компонент пайдаланушыға көрінбейді. Компонент көрінбей тұрса да оны программалық жолмен басқруға болатынын айта кетейік. Мысалы:

Edit1.Visible:=True;

Edit2.Visible:=False;

Бұл жерде бір жолды редактор Edit1 пайдаланушыға көрініп тұрады, ал бір жолды редактор Edit2 пайдаланушыға жасырынды түрде тұрады.

 

Оқиғалар

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

-басқару элементін таңдау;

-тышқан көрсеткішін жылжыту;

-тышқан доңғалағын айналдыру;

-пернетақта батырмасын басу;

-енгізу фокусының басқару элементін қабылдау және жоғалту;

-объектілерді drag-and-drop әдісімен жылжыту.

Қасиеттер сияқты,оқиғалар да Инспектор терезесінде топтар бойынша топталған. Басқару элементін таңдауда Onclick оқиғасы пайда болады. Бұл оқиғаны басу оқиғасы деп атайды. Әдетте ол тышқан батырмасын компонентте шерткен кезде пайда болады. Жобаны құру барысында Onclick оқиғасы әлдеқайда жиі пайдаланылатын оқиғалардың бірі болып табылады.

Мысал 1:

Procedure TForm1.Edit1Click(Sender:TObject);

begin

Edit1.Color:=ClYellow;

end;

Бұл жерде Edit1 компонентінің редакторлеу өрісінде тышқанды шертсек, онда компонент фонының түсі сары түске боялады.

Тышқанның кез келген батырмасын шерткен кезде тағы да екі оқиға генерацияланады: тышқан батырмасын басқанда пайда болатын OnMouseDown және батырманы жіберген кездегі OnMouseUp оқиғасы. Компонент облысында тышқан батырмасының сол жағын екі рет шерткен кезде OnDblClick оқиғасы генерацияланады. Оқиғалар келесі ретпен пайда болады: OnMouseDown, OnClick, OnMouseUp, OnDblClick, OnMouseDown, OnMouseUp.

Мысал 2:

Label элементiн таңдау оиғасын өңдеу процедурасын қарастырайық:

Procedure TForm1.Label1Click(Sender : TObject);

Begin

//Time функциясы кезектегi уақытты орнатады.

//TimeToStr функциясы уақытты жолды типке бейнелейдi. Label1.Caption:=TimeToStr(Time);

end;

мұнда Label жазбасына тышқан көрсеткішімен шерткен кезде оның тақырыбында кезектегi уақыт шығады.

Тышқан көрсеткішін визуалды компонент үстімен жылжыту кезінде TMouseMoveEvent типті OnMouseMove оқиғасы үздіксіз өңделеді. Тип келесі түрде сипатталады:

Type TMouseMoveEvent= procedure(Sender: TObject; Shift: TShiftState; X,Y: Integer) of object;

Келесі мысалды қарастырайық:

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

Form1.Caption:='Тышкан корсеткішінін координаталары:' +IntToStr(X)+IntToStr(Y)

end;

 

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

Бінеше оқиғалар тышқан доңғалағын айналдырумен байланысты: OnMouseWheel, OnMouseWheelDown және OnMouseWhellUp.

Тышқан доңғалағын алдыға және артқа қарай айналдыру кезінде TMouseWheelUpDownEvent типті OnMouseWheelDown және OnMouseWheelUp оқиғалары генерацияланады.

Пернетақтамен жұмыс жасау кезінде перненi басу кезiнде OnKeyPress және OnKeyDown оқиғалары, сонымен бiрге перненi жiберген кезде OnKeyUp оқиғасы генерацияланады. Перненi басқан кезде оқиғалар келесi ретпен пайда болады: OnKeyDown; OnKeyPress; OnKeyUp.

TKeyPressEvent типті OnKeyPress оқиғасы алфавиттi-цифрлы перненi әр басқан сайын генерацияланады. TKeyPressEvent типi келесi түрде сипатталады:

Type TKeyPressEvent=Procedure(Sender:TObject; var Key:Char) of Object;

Key параметрi басылған перненiң ASCII кодын қамтиды. Егер де Key параметрiне 0 мәнiн берсек, онда ол перненi басуды болдырмауды бiлдiредi.

Ендi редактордың OnKeyPress оқиға өңдеушiсі мысалын қарастырайық:

Procedure TForm1.Edit1KeyPress(Sender:TObject;var key:Char);

Begin

If Key=’!’ then Key :=0;

End;

мұнда Edit1 редакторының мазмұнын өзгерткен кезде пайдаланушыға (!) символын енгiзуге тиым салынады.

ASCII-кодтары жоқ басқарушы пернелерді өңдеу үшін кез келген пернені басу кезінде пайда болатын TKeyEvent типтi OnKeyDown және OnKeyUp оқиғаларын программалық түрде пайдалануға болады. TKeyEvent типi келесi түрде сипатталады:

Type TKeyEvent=Procedure (Sender:TObject; Var Key :Word; Shift:TShiftState) of Object;

Көрсетiлген оқиғалар <Shift>, <Ctrl>, <Alt> және т.б. басқару пернелерiнiң күйін талдау үшiн пайдаланылады.

Drag-and-Drop технологиясы пайдаланушыға әралуан объектiлердi тасымалдауға, мысалы бiр тiзiмдегi элементтерді басқасына тасымалдауға мүмкiндiк жасайды. Сонымен қатар екі басқару элементi пайдаланылады: негiз және қабылдағыш.

Негiз тасымалданатын объектiнi қамтиды, ал қабылдағыш негiз-элементке тасымалданатын басқару элементі. Объектiлердi тасымалдаудың осы технологиясымен байланысқан оқиғалар төменде пайда болу ретімен көрсетілген:

à TStartDragEvent типті OnStartDrag – тасымалдау амалын орындалу басында негiз арқылы генерацияланады;

à TDragOverEvent типтi OnDragOver тасымалданатын объект оның жоғарғы жағында орналасқан кезде қабылдағыш арқылы шақырылады;

à TDragDropEvent типтi OnDragDrop тасымалданатын объект оның үстiнде орналасқанда қабылдағыш арқылы шақырылады.

à TEndDragEvent типтi OnEndDrag тасымалдау амалы аяқталған кезде негiз арқылы генерацияланады.

 

Label1 компоненті Form1 формасы шегiнде орын ауыстыру мысалын қарастырайық:

 

//Label1 жазбасының DragMode қасиетiне

// dmAutomatic мәнiн орнату қажет

Procedure TForm1.FormDragOver(Sender, Source:TObject; x, y:integer; State:TDragState; var Accept:Boolean);

Begin

If Source=Label1 then Accept:=true else Accept:=false;

End;

Procedure TForm1.FormDragDrop(Sender,Source:TObject; x, y:integer);

Begin

Label1.Left:=x;

Label1.Top:=y;

End;

Әдістер

Визуалды компоненттер мен объектілерді құратын және өшіретін, бейнелейтін, жасыратын және т.б. операцияларды орындайтын әдістер байланысқан. Барлық визуалды компоненттерге ортақ әдістерді қарастырайық:

SetFocus процедурасы басқарудың терезелік элементіне енгізу фокусын орнатады. Егер осы уақытта басқару элементі енгізу фокусын қабылдай алмаса, одан қателік туады. Сондықтан алдын-ала компоненттің активтілігін тексеру қажет. Ол үшін CanFocus:Boolean функциясын таңдаймыз.

If Edit1.CanFocus(=True) Then Edit1.SetFocus

Clear әдісі компонент мазмұнын тазалайды. Ол мазмұнда текстік информация болуы мүмкін.

Мысалы:

ListBox1.Clear;

Memo1.Clear;

Refresh әдісі басқару элементін жаңартуға және бейнені қайта салуға арналған. Әдетте бұл әдіс бейнені қайта салу қажеттігі туған кезде автоматты түрде шақыра алады.

Refresh әдісі Invalidate және UpDate әдістерін автоматты түрде шақырады.Invalidate әдісі Windows-қа бейнені қайта салу қажет екендігі жайлы хабар береді де, жүйе алғашқы мүмкін жағдайда-ақ бұл операцияны орындайды. UpDate әдісі көрсетілген объектіні тез арада қайта салуды шақырады. Қажет болған жағдайда бұл әдістерді программа жазу барысында шақыруға болады.

Perform әдісі терезелік басқару элементіне хабар жіберуге арналған. Perform функциясының жазылу түрі:

Perform(Msg:Cardinal,Wparam,Lparam,:Longint):Longint

Perform функцисы тексті Msg параметрімен берілетін хабарларды жібереді. WРaram және LРaram параметрлері хабар туралы қосымша информациядан тұрады.

Мысалы:

Label1.Caption:=IntToStr(ListBox1.Perform(Lb_GetCount,

0,0))

Бұл жерде ListBox тізіміне элементтер санын күштеп қайтаратын Lb_GetCount хабары жіберіледі. Нәтижесі Label1-ге шығады.

Tstring класы жолдық мәліметтермен жұмыстың базалық класы болып табылады.

Визуалды компоненттер жолдар тізімімен жұмыс жасай алады. Олар жолдар массиві болып табылатын қасиетке ие. Мысалы: ListBox,DBListBox тізімдері және тәуелді ауыстырғыштар тобы үшін ондай қасиет Items, көп жолды редактор Memo және DBMemo үшін Lines болып табылады.

Мысалы:

ListBox1.Items.Clear;

Memo1.Lines.Clear;

Тізімнің әрбір элементіне оның номері арқылы баруға болады. Элементтерді санау 0-ден басталады.

Мысалы:

ListBox1.Items[1]:=’топ’;

Count қасиеті тізімдегі элементтер санын береді. Бірінші элементтің номері 0-ге тең болғандықтан, соңғы элементтің номері Count-1-ге тең болады.

Мысалы: ListBox компонентіне String List Editor терезесінің көмегімен енген мәліметтерді өзгертейік.

Procedure Tform1.Button1Click(Sender:TObject);

Var i:integer;

Begin

For i:=0 to ListBox1.Items.Count-1 do

ListBox1.Items[i]:=’informatica’;

End;

End.

Add әдісі тізімнің соңына жол қосатын әдіс.

Мысалы: ListBox1.Items.Add(‘топ2’);

 

Дәріс №3. Мәтінді бейнелеу және біржолды мәтінді енгізу және редактрлеу. Тармақталу алгоритмдерін программалау

ЖоспарМәтіндерді шығару. Мәтіндерді енгізу және редакторлеу. Біржолдық редакторлар. Мәліметтерді енгізу және шығару терезелері

 

Кілттік сөздер: редакторлар, қасиеттер, оқиғалар, әдістер, енгізу, шығару терезелері

Иллюстрациялық материал:слайд

Редактрлеу өрісі (Edit) обьектісі пернетақтадан символдар жолын енгізу және редакторлеу үшін қолданылады. Компонент Standard парақта орналасқан(7.1-суретте таңдалып тұрған компонент)

7.1 сурет. Standard парақ

 

Мұнда жол бойынша курсордан басқа пернелерді пайдаланып ығыстырулар <BS> және<Del> пернелерінің көмегімен символдарды өшіру, текстің бөлігін қиып алу және т.б. операцияларды орындауға болады. Біржолды редактор <Enter> және <Esc> -тен басқа пернелерге әсер етпейді.

MaskEdit- бір жолдық редактор, мәліметтерді енгізу- шығаруда маска қолданылады.

Пайда болған жолды (Text қасиеті) санға немесе санды жолға түрлендіру қажет болған жағдайда Pascal-да Vаr және Str стандартты функциялары немесе Delphi ортасынын функциялары: StrToFloat немесе FloatToStr пайдаланады. Бізге белгілі қасиеттерден басқа Edit редактрлеу өрісі мына қасиеттерге ие:

Қасиет Қасиетті сипаттау Мәндер мысалы
CharCase Редактрлеу өрісіне енгізілетін символдар түрлері ecNormal (қарапайым), ecUpperCase (Бас әріптер), ecLowerCase (жолдық әріптер)
CtI3D Обьектінің көлемді бейнесі True, False
  PasswordChar   Парольді енгізу символы #0 (мәтіннің кәдімгі бейнеленуі), * ( мәтін жұлдызша түрінде бейнеленеді), 0 (мәтін нольдермен бейнеленеді)
  Readonly Мәтінді өзгерту мүмкіндігі (өрістің рұқсаттылығы) True (мәтінді өзгертуге болады), False (мәтінді өзгертуге болмайды)
  Hint Тышқанды алып келгенде шығатын көмек сөз   «Соманы енгізіңіз» (символдар жолы)
ShowHint Көмек сөзді көрсету / көрсетпеу True, False
Text Редактрлеу өрісіндегі мәтін «0,001» (символдардың еркін тізбегі)

Мәліметтерді енгізу және шығару терезелері. Енгізу терезесімен енгізу

Енгізу терезесі – бұл INPUTBOX функциясының нәтижесінде экранда пайда болатын стандартты диалогтық терезе.

Жалпы түрі

Айнымалы: = INPUTBOX (Тақырып,түсініктеме,мән)

Мысалы: x:=Strtoint (INPUTBOX (‘мән енгізу’,’x –қа мән бер ’, ‘5’));

Шығару терезесі

Шығару терезесінің ShowMessage процедурасының немесе MessageDlg функциясының көмегімен шақыруға болады. ShowMessage процедурасы экранға текстен және ОК командалық батырмасынан тұратын терезені шығарады.

Жалпы түрі ShowMessage (хабар)

Мысалы: ShowMessage (‘x1=’+FloatTostr(x1)+#13+ ‘x2’+ FloatTostr (x2));

Тақырыпты Project / Options/ Application командасы арқылы өзгертуге болады.

MessageDlg формасы

Айнымалы:= MessageDlg (хабар,хабар типі, батырма, контекст_ анықтама)

Мысалы: айнымалы қандай да бір айнымалы

Хабар типі

 

Тұрақты Хабар типіне түсініктеме Белгі
mtWаrning   Назар аударыңыз  
mtError   Қате
mtInformation   Информация
mtConfirmation   Дәлелдеу
mtCustom   Әдеттегі түрі   Белгі болмайды

Батырма тұрақтылары

Тұрақты Батырма
mbYes Yes
mbNo No
mbOK OK
mbCancel Cancel
mbHelp Help
mbAbort Abort
mbRetrey Retrey
mbIgnrore Igrore
mbAll All

Контекст анықтамасы –анықтамалық жүйенің бөлімін анықтайтын параметр. Ол экранда қолданушы <F1> батырмасын басса ғана пайда болады. Егер анықтаманы шығару қажет болмаса, онда параметрдің мәні 0-ге тең болу керек.

 

Мысалы: r:= MessageDlg (‘санды 0 –ге бөлуге болмайды' , mtError,[mbOK, mbCancel],ø);

 

 

Дәріс №4 . Тізімдермен жұмыс. Таңдау алгоритмін программалау.

Жоспар:Тізімдердің жалпы сипаттамасы. Қарапайым тізім . Аралас тізім. Тізімдердің жалпы сипаттамалары. Тармақталу алгоритмін программалау.

 

Кілттік сөздер: тізімдер, қасиеттер, әдістер, оқиғалар, LіstBox, ComboBox.

Иллюстрациялық материал:слайд

Тізім өзара байланысқан элементтердің реттелген жиынтығын бередіОл мәтіндік жол бойынша табылады.Тізімінің элементтері алфавит рнтпен немесе оларды тізімге қосқан ретпен орналасуы мүмкін.Тізімдер оардың жеке элементтерін (жолдарын)қосуға ,өшіруге немесе таңдауға мүмкіндік береді.Delphi-де тізімдер қарапайым және аралас болып бөлінеді.Екі тізімде standart тұрақты орналасқан.

Қарапайым тізім онда жолдың элеметтері-онда орналасқан тіктөртбұрышты аймақты білдіреді.Қарапайым тізіммен жұмыс жасау үшін Listbox компаненті қолданылады.Егер тізім аны көп болса,айналдыру жолағын көруге болады.Айналдыру жолағының бағыты немесе бағамдар саны Integer типі columns қасиетінен тәуелді.Үнсіз жағдайда columns:=0.Бұл кезде тізім бір ғана бағанаға жазылады.

Егер columns қасиетінің мәні 1-ге тең немесе үлкен болса,онда тізім аймағында әруақытта көлденең айналыру жолағы болды.Егер тізімде бір уақытта тік және көлденең айналдыру жолы болсын десеңіз ,онда columns қасиетіне нол мәнін беру қажет.Сонда тік айнымалы жолағы қажет кезінде пайда боады.Ал көлденең айнымалы және бейнелеу үшін тізімге LB_SethorizoutulExtent хабарламасын жіберу қажет.Хабардың 3-параметрі пиксельмен берілген айнымалы жолағының максимал мәні .Егер осы мәнді тізім өлшемімен үлкен етіп берсек,Керекті .айналдыру жолағы үнемі бейнеленіп тұрады.4-параметрдің мәні нолге тең болуы керек . егер кқлденең айнымалы және керек емес болса,онда 3- параметрдің мәнін ноге тең деп тағыда бір хабар жіберу қажет.

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

Procedure TForm1.formcreate (sender ;tobject );

Begin

Listbox1. colomns :=0;

Send massage (listbox1.hondle ,LB-SethorizoutulExtent,1000,0); end;

Тізіммен жұмыс істегенде программист жоғар,ы жақтан бірінші болып көрінетін элемент нөмерін басқара алады.Бұл мүмкіндік Integer типі Topindex қасиетімен орындалады.

Мысалы : Procedure TForm1.updown1click (S:tobject;button :TUDbtnType);

Begin

Listbox1.topindex:= updown1.position;

End;

Бұл кезде Listbox 1 тізімінің жоғарғы жағындағы updown1 реверсивті есептеуіші беретін элементтерден тұрады.

Қасиеттері :

o items –тізім элементері (жолдары).Осы қасиет арқылы тізім элементтерін енгіземіз.Тізім элементтері 0-ші жолдан бастап енгізіледі.Ең соңғы жолды енгізгеннен кейін ОКбатырмасын шерту керек .

o ItemsIndex –таңдалған элемент нөмерлерін береді.Егер элемент таңдалынбаса мәні (-1)-ге тең болады.

o ТListВoxStyle типті Style қасиеті қарапайым тізімінде стилігн береді .Ол келесі мәнді қабылдайды.

· Lb Stondard –стандартты стиль(үн,ж)

· Lb OwnerDrawFixed-ItemHeigth қаиеттерімен орнатылатын тұрақты биіктіктегі тізім.

· Lb OwnerDraw Variable-Әр түрлі биіктіктегі тізім элементтері.Егер тізім стилі Lb Stondard мәнін қабылдамаса, онда прграмист өзі тізім элементтерінің суреттелуіне жауап береді. Мұндай мақсатта Delphi-дің графикалық мүмкіндігі қолданылыды.

o TBorderStyle типті BorderStyle қасиеті тізім жиегінің (рамка)бар болуын анықтайды.Ол мына мәндерді қабылдайды :bsNone –жиек жоқ; bsStyle

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

Қасиеттері: Items, ItemIndex.

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

- CsDropDown-редактрлеу жолы бар ашылатын тізім. Қолданушы тізімнен керекті элементі тандауына немесе енгізуіне болады.(үн. жағ)

- CsSimpe – үнемі тізімі ашылып тұратын редактрлеу өрісі. Тізім толық көріну үшін компютердің Height қасиетімен биіктігін үлкеитеміз.

- CsDropDownList- тізімнен элементтерді таңдауды ұйымдастыратын ашылатын тізім.

- CsOwnerDrawFixed - ItemHeight қасиетімен берілетін бекітілген биіктіктегі тізім.

- CsOwnerDrawVariable - әртүрлі биіктікті қабылдайтын элементтер тізімі.

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

o Intger типті DropDownCount қасиетін ашылатын тізімде бір уақытта көрсетілетін жолдар санын анықтаиды. Қасиет үнсіз жағдайда 8 мәнін қабылдайды.

o Boolean типті DroppedDown қасиеті тізімнің ашылған немесе жабық күйде тұрғанын анықтауға мүмкіндік береді. Егер қасиет True мәнін қабылдаса, ол арқылы тізім ашылған түрде көрінеді. DroppedDown қасиеті егер Style қасиеті CsSimple ға тең мән қабылдаса ғана қолданады.

Аралас тізіммен жұмыс жасағанда келесі оқиғаларды қолдануға болады.

- onDropDown (тізімді ашу)

- on CloseUp (тізімді жабу)

- on Select (элементті тандау)

- on Change (редактрлеу өрісіндегі мәтінді өзгерту)

Мысалы: Таңдау командасын пайдаланып арифметикалық төрт амалды орындаитын програма жазу керек.

 

 

Procedure TForm1.Button1Click(S:To);

Var x,y,z:real;

Begin

X:=StrToFloat(Edit1.Text);

Y:=StrToFloat(Edit2.Text);

Cuse ComboBox1.Itemindesp of

0:begin

z:=x+y;

Label1.Capt:=Edit1.Text+ComboBox1.Items[ComboBox1.ItemIndex]+Edit2.Text+’=’+floatlostrf(z,FFFixed,4,2);

End;

------------------------------------------------------------------------------

3:beginz:=x/y;Label1.Capt:=Edit1.Text+ ComboBox1.Items[ComboBox1.ItemIndex]+Edit2.Text+

+’=’+ floatlostrf(z,FFFixed,4,2);

End;

Ebd;

End;

Дәріс №5. Көпжолдық редакторлар. Циклдық алгоритмдерді программалау. Массивтермен жұмыс.

Жоспар:Көпжолдық редакторлар. Көпжолдық редакторлардың қасиеттері, оқиғалары және әдістері.

Memo және RichEdit- компоненттері көпжолдық редакторлар болып табылады. Бұл компоненттер көмегімен бірнеше жолдан тұратын мәліметтер өңделеді.

Көпжолды редактор мәтіндермен жұмыс жасау үшін Delphi-да MEMO компоненті қызмет атқарады. Memo компоненті үлкен көлемді мәтінді енгізуге рұқсат береді, сондықтан оны символдық массивтерді енгізу үшін қолдану тиімді. Memo компоненті формаға басқа компоненттер сияқты қойылады. Memo компонентінің белгішесі Standardпарақшасында орналасқан.

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

String типті Textқасиетін пайдаланамыз.

Бұл жағдайда MEMO – компонентінің барлық мазмұны бір жол түрінде көрсетеді.

MEMO –компонентінің жеке жолдарымен жұмыс жасау үшін Tsring типті Lines қасиетін пайдаланамыз. Жолдық массивтің реті 0-ден басталады

Мысалы:Көп жолды редактормен және оның жолдарымен әрекеттер орындау.

 

MEMO 1. Lines [2]:= “мысал”;

MEMO1.Clear

MEMO1.Lines.Add(‘жол қосу’);- жол қосады.

 

Memo компонентінің қасиеттері

Қасиеті Анықтамасы
Name Компонент атауы. Программада компоненттің кейбір қасиеттеріне рұқсат ретінде пайдаланылады.
Text Memo өрісінде орналасқан мәтін. Бүтін ретінде қарастырылады.
Lines Memo өрісінде орналасқан мәтін. Жолдар жиынтығы ретінде қарастырылады. Жолға өту жолдың номері арқылы жүзеге асады.
Lines.Count Memo өрісіндегі жолдар саны
Left Өрістің сол жақ шетінен форманың сол жақ шетіне дейінгі ара қашықтығы
Top Өрістің жоғарғы жақ шетінен форманың жоғарғы жақ шетіне дейінгі ара қашықтығы
Height Өрістің биіктігі
Width Өрістің ені
Font Енгізілген мәтін мазмұнын көрсету қарібі
ParentFont Форма қарібінің мінездемесін мұрат ету белгісі

 

 

Memo компонентін қолдану кезінде массив элементтерінің мәндерін енгізген кезде әр жолға енгізу қажет және массив элементтерін енгізгеннен кейін <Enter> пернесін басу керек.

Memo өрісінің мәтін жолына өту үшін тік жақшада керек жол нөмірін (нөмірлеу 0-дан басталады) көрсету арқылы Lines қасиеті көмегімен жүзеге асырылады.

Төменде 5.5 листингта көрсетілген программа Memo компоненті көмегімен символдық массивті енгізудің мысалын көрсетеді.

Символдық массивті Memo компоненті көмегімен енгізу процедурасының негізгі циклы мынандай түрде болуы мүмкін:

 

For i:=1 to SIZE do

a[i] := Memo1.Lines[i];

мұндағы:

· SIZE – массив өлшемін көрсететін атаулы тұрақты;

· a – массив;

· Memo1 – Memo компонентінің аты;

· Lines – әр элементі Memo компонентінің бір жолынан тұратын, массив болатын Memo компонентінің қасиеті.

Программа формасы 5.1- суретте көрсетілген. Memo өрісінен басқа онда, шерткен кезде Memo өрісіне массив элементтері мәндері жазылатын, командалық батырма (Button1) орналасқан.

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.