Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Оқиғалар



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

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

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

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

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

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

-объектілерді 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 редактрлеу өрісі мына қасиеттерге ие:





Дата публикования: 2015-10-09; Прочитано: 866 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.012 с)...