- •1 Delphi ортасымен танысу
- •1.1 Негізгі ұғымдар. Бағдарлама құру кезінде шешілетін тапсырмалар
- •Зертханалық жұмыс № 1 «Delphi интерфейсінің элементтері»
- •Зертханалық жұмыс № 2 «Негізгі пішіннің жобасы мен модульінің бағдарламалық коды»
- •Interface
- •Implementation
- •Initialization
- •Зертханалық жұмыс № 3 ««Тест» қосымшасын құру»
- •Mainform модулінің соңғы бағдарламалық коды
- •2 Object pascal тіліндегі объектілі – бағытталған бағдарламалау
- •2.1 Класс және объект туралы түсінік
- •2.2 Инкапсуляция, туындау және полиморфизм
- •2.3 Кластың синтаксисі
- •Interface
- •Implementation
- •2.4 Кластың өрістері
- •2.5 Кластың әдістері
- •Implementation
- •2.6 Кластың қасиеттері
- •2.7 Кластың құрылымы. Кластың элементтерінің көріну аймағы
- •2.8 Кластарға операциялар қолдану. Is және as кілттік сөздері
- •2.9 Оқиға және меншіктеу
- •Бақылау сұрақтары:
- •Зертханалық жұмыс №4 «Полиморфизм және көрнекілік әдістер»
- •Interface
- •Implementation
- •Зертханалық жұмыс №5 "Қаситтер мен әдістер"
- •Өз бетінше орындауға арналған тапсырма
- •Зертханалық жұмыс №6 "Оқиғалар"
- •Interface
- •Implementation
- •Өз бетінше орындауға тапсырма
- •3 Терезелік қосымшаларды құру
- •3.1 Label, Edit, Memo мәтіндік құрауыштары. Button батырмасы
- •Зертханалық жұмыс №7 "Қарапайым Windows-қосымшасын құру"
- •3.2 Пернетақта арқылы берілген хабарламаны өңдеу
- •3.3 Тышқан арқылы берілген хабарламаны өңдеу
- •Зертханалық жұмыс №8 “tForm объектісі”
- •3.4 Басқару элементтерінің тасуын қамтамасыз ететін сипаттамалар (Drag & Drop тетігі)
- •Зертханалық жұмыс №9 "Экрандық объектілерді сүйреу"
- •3.5 Диалог терезелері. Dialogs парағындағы Delphi құрауыштары (Open Dialog, Save Dialog, Font Dialog және т.Б.)
- •Тәжірибелік жұмыс №10 «Мәтіндік редактор»
- •3.6 Delphi - дің кескінді құруға тағайындалған кластары мен құрауыштары. Timer – таймер құрауышы
- •Image құрауышы.
- •Зертханалық жұмыс №10 «Бейнелерді құру»
- •Interface
- •Implementation
- •Қарандаш және қылқалам
- •Қарапайым графиктерді сызу әдістері
- •Функциялардың графиктері мен диаграммаларын сызу
- •Interface
- •Implementation
- •5. Мультимедиалық мүмкіндіктер
- •5.1. Animate компоненті
- •Interface
- •5.2. MediaPlayer компоненті
- •5.3. Дыбысты шығару
- •Implementation
- •5.4. Видеороликтер мен анимацияны қарап шығу
- •Implementation
- •5.5 Анимацияны құру
- •Әдебиеттер тізімі
3.3 Тышқан арқылы берілген хабарламаны өңдеу
TControl класында тышқанды басқарғанда өрбитін оқиғалар анықталған.
property OnClick:TNotifyEvent;
Басқару элементін тышқан арқылы таңдағанда өрбитін оқиға (тышқанның көрсеткіші басқару элементінің үстінде орналасқанда тышқанның сол жақ пернесі басылады және босатылады).
property OnDblClick:TNotifyEvent;
Басқару элементіне тышқанның сол жақ пернесімен екі рет шерткенде өрбитін оқиға.
property OnMouseDown:TMouseEvent;
Тышқанның көрсеткіші басқару элементінің үстінде тұрғанда, тышқанның пернесі басылғанда өрбитін оқиға. Оқиғаны өңдеу типі TMouseEvent:
type
TMouseEvent = procedure(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X,Y:Integer) of object;
мұндағы Sender – оқиға болған құрауышқа нұсқайтын параметр;
type
TMouseButton = (mbLeft, mbRight, mbMiddle);
Button параметірінің мәні тышқанның қай батырмасы басылғанын анықтайды (mbLeft – сол жақ, mbRidht – оң жақ , mbMiddle - ортаңғы); Shift – пернетақтаның Alt, Ctrl және Shift пернелерінің және тышқанның пернесінің күйін қадағалайды (жоғарыдағы OnKeyDown оқиғасын қараңыздар); X,Y – Sender құрауышының клиенттік аймағындағы тышқанның көрсеткішінің жергілікті координаталары (пиксельмен беріледі).
property OnMouseMove:TMouseMoveEvent;
Тышқанның көрсеткіші басқару элементінің үстінде орналасқан кезде, оны жылжытқанда өрбитін оқиға. Оқиғаны өңдеу типі TMouseMoveEvent:
type
TMouseMoveEvent = procedure(Sender: TObject; Shift: TShiftState; X,Y:Integer) of object;
Параметлері OnMouseDown оқиғасындағы сияқты мағынаны береді.
property OnMouseUp:TMouseEvent;
Тышқанның көрсеткіші басқару элементінің үстінде орналасқан кезде, тышқанның пернесін босатқанда өрбитін оқиға. Оқиғаны өңдеу типі TMouseEvent (жоғарыдағы OnMouseDown оқиғасын қараңыздар).
Мысал 3.3.1 Бұл мысал пішінде төрт панелі бар StatusBar1 (Win32 парағы) қалып – күй жолының болуын талап етеді. . Панельді қосу үшін қалып – күй жолының Panels қасиетінің мәндер өрісінің үш батырмасына шерту арқылы Editing StatusBar1.Panels терезесін шақырыңыздар. Редактірлеу терезесінің басқару панельінің Add New батырмасына төрт рет шертіңіздер. (Мысалды орындамас бұрын әрбір панельдің Width қасиетіне 150 мәнін орнатыңыздар). Қолданушы тышқанның батырмасына басқанда, тышқанды жылжытқанда және тышқанның батырмасын босатқанда пішінде тіктөртбұрыш тартылады. Тышқанның батырмасы босатылғанда тіктөртбұрыш пішіннің канвасында пайда болады. Оның сол жақ жоғарғы және оң жақ төменгі бұрыштары тышқанды басқан және босатқан уақыттағы тышқанның көрсеткішінің орналасуымен анықталады. Қолданушы тышқанды жылжытқанда тіктөртбұрыштың сол жақ жоғарғы (Left, Тор) және оң жақ төменгі (Right, Bottom) бұрыштарының координаталары қалып –күй жолында бейнеленеді. Горизонталь осьі солдан оңға қарай жүреді. Вертикаль ось – жоғарыдан төмен қарай бағытталады. Осьтер тек қана оң мәндерден тұрады.
var
StartX, StartY: Integer; {Пішіннің модульінің интерфейс бөлімінде жариялайды}
{Бұл кодты пішіннің OnMouseDown оқиғасының өңдеуіші ретінде қолданыңыздар: }
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: Integer);
begin
StartX := X;
StartY := Y;
end;
{ Бұл кодты пішіннің OnMouseUp оқиғасының өңдеуіші ретінде қолданыңыздар: }
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: Integer);
begin
Form1.Canvas.Rectangle(StartX, StartY, X, Y);
StatusBar1.Panels[0].Text := '';
StatusBar1.Panels[1].Text := '';
StatusBar1.Panels[2].Text := '';
StatusBar1.Panels[3].Text := '';
end;
{ Бұл кодты пішіннің OnMouseMove оқиғасының өңдеуіші ретінде қолданыңыздар: }
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
if ssLeft in Shift then { батырманың басылғанын тексеріңіздер }
begin
if Y > StartY then
begin
StatusBar1.Panels[0].Text := 'Top: ' + IntToStr(StartY);
StatusBar1.Panels[2].Text := 'Bottom: ' + IntToStr(Y);
end
else
begin
StatusBar1.Panels[0].Text := 'Top: ' + IntToStr(Y);
StatusBar1.Panels[2].Text := 'Bottom: ' + IntToStr(StartY);
end;
if X > StartX then
begin
StatusBar1.Panels[1].Text := 'Left: ' + IntToStr(StartX);
StatusBar1.Panels[3].Text := 'Right: ' + IntToStr(X);
end
else
begin
StatusBar1.Panels[1].Text := 'Left: ' + IntToStr(X);
StatusBar1.Panels[3].Text := 'Right: ' + IntToStr(StartX);
end;
end;
end;
