9.1. –сурет. Файлды қалыптастыруға арналған форма терезесі
Ұсынылатын әдебиеттер: [1-9]
Бекіту сұрақтары:
Файл дегеніміз не?
Файлдық типтің қанша түрі бар?
Тізбекті кіру мүмкіндігі бар файл дегенді қалай түсіндіресіз?
Типтік файл дегеніміз не?
Типтік емес файл дегеніміз не?
Файлдармен орындалатын жұмыс түрлері қандай?
Логикалық және физикалық файл дегеніміз не?
Файлды ашудың түрлері қандай және олар қандай операторлармен орындалады?
Файлдармен жұмыс істеуге арналған қандай процедуралар мен функциялар бар?
Файлдарды бейнелеу тәсілдерін атаңдар және ол қалай жүзеге асырылады?
Файлды құру және ашу процедуралары қалай жазылады?
Бейнелеу объектілерін құру үшін қандай функция пайдаланылады?
Мәліметтерді программаның адрестік кеңістігіне бейнелеу қалай жүзеге асырылады және оны орындайтын функция қандай?
Терезені бейнелеу ресурстарынан босату қандай функцияның көмегімен жүзеге асырылады?
Бейнелеу объектісі мен файлды жабу үшін қандай функция пайдаланылады?
Delphi ортасында файлдар жұмысына негіз болатын класс қалай аталады?
Ол кластың қандай әдістері бар? Сол әдістерге сипаттама беріңдер.
Топта оқитын студенттер мәліметтерінен тұратын файл жазуы бар. Құрылған файлға төмендегідей операцияларды қолдану қажет:
Файлды белгісі бойынша өсу ретімен іріктеу.
Файлды белгісі бойынша кему ретімен іріктеу.
Файлды алфавиттік ретпен реттеу.
Топтағы оқитын студент жігіттерден тұратын файл жазуын қалыптастыру.
Топтағы оқитын студент қыздардан тұратын файл жазуын құру.
1-2 курс студенттерінен файл жазуын құру.
4-5 курс студенттерінің файлын құру.
Файлдан к–шы жазуды өшіру.
Файлға жаңа жазу қосу.
5-курстағы студенттердің санын есептеп, тізімін экранға шығарыңдар.
Жасы 20-дан жоғары студент жігіттердің санын есептеп, экранға шығарыңдар.
5-курс студенттері туралы барлық жазуды өшіріңдер.
К-шы жазуда тұрған студенттің туған жылын өзгерту.
Зертханалық жұмыс №15
Тақырыбы: Delphi – дің графикалық және мультимедиялық мүмкіндіктері
Мақсаты Delphi ортасының жұмысына жалпы сипаттама
Қолданылатын материалдар мен құрал- жабдықтар:
Компьютер, Delphi программалау ортасы
Теориялық түсініктеме:
Delphi ортасында графикалық құралдарды пайдалануды жеңілдететін арнайы кластар қарастырылған: контекст үшін – Tcanvas, шривт үшін – Tfont, қалам үшін – Tpen, қылқалам үшін – Tbrush. Осы кластарға байланысты объектілер барлық көрінетін элементер үшін автаматты түрде құрылып, программада – canvas, font, pen және brush қасиеттері арқылы жүзеге асырылады.
Tfont қаласының көмегімен кез келген графикалық құрылғы (экран, принтер, плоттер және т.б.) үшін шрифт объектісі құрылады.
Tpen қаласының көмегімен ызықтарды сызуға арналған қалам объектісі құрылады.
Tbrush қаласының объектілері тұйық фигуралардың ішін толтыру қызметін атқарады.
Tcanvas класы әртүрлі құралдармен – қалам, қылқалам, шрифт- сурет салынатын кенепті құруға мүмкіндік береді. Tcanvas класының объектілері барлық көрінетін компоненттер үшін автоматты түрде құрылады. Аталған кластардың бірнеше қасиеттері бар.
Canvas қасиеті
Delphi програмистке экранға графикалық бейнелерді шығаратын программаларды жасауға мүмкіндік береді.
Программа графиканы объектінің бетіне (форма немесе Image компоненті) шығарады. Объектінің бетіне Canvas қасиеті сәйкес келеді. Объектінің бетіне графикалық элементті шығару үшін осы объектінің Canvas қасиетіне сәйкес әдісті қой керек. Мысалы, Form1. Canvas.Rectangle (10,10,100,100) инструкциясы программа терезесінде төртбұрыш салады.
Кенеп
Жоғарыда айтылып кеткендей, графиканы программа бетіне шығаратын қасиет – Canvas қасиеті. өз кезегінде Canvas қасиеті – бұл Canvas типті объект. Бұл типтің әдістері графикалық примитивтерді (нүктелер, сызықтар, төртбұрыштар) шығаруды қамтамассыз етеді, ал қасиеті бұл приметивтердің сипаттамасын (түсі, сызықтардың ені және стилі, шрифті, т.б.) бере алады.
Графикалық приметивтерді шығару әдістердің Canvas қасиеті сурет сала алатын абстрактілі бет ретінде қарастыралады. Бет бөлек нүктелерден – пикселдерден тұрады. Пикселдің орны оның горизанталь (Х) және вертикаль (У) осьтері арқылы сипатталынады. Жоғарғы сол жақ пикселдің координатасы (0,0). Координаттар жоғарыдан төмен және солдан онға қарай өседі. Беттің өлшемін Height және Width қасиеттері арқылы өзгертуге болады.
Қалам және қылқалам. Суретші өз жұмысында қаламды және қылқаламды қолданады. Бетте осы примитивтерді салу әдістерін қамтамассыз ететін Pen (қалам) және Brush (қылқалам) қасиеттері қолданылады. Қалам сызықтарды, ал қылқалам контурмен шектелген облыстарды салу үшін пайдаланылады.
Қалам
Қалам нүктелерді, сызықтарды, геометриялық фигураларды: шеңбер, төрбұрыш, элипс, және т.б. суреттерді салу үшін қолданылады. Томенгі кестеде Треn объектінің қасиеттері көрсетілген.
-
Қасиет
|
Анықтамасы
|
Color
|
Сызық түсі
|
Width
|
Сызық ені
|
Style
|
Сызық түрі
|
Mode
|
Тәртіп бейнесі
|
Color қасиеті қаламмен салынған сызықтың түсін анықтайды. Келесі кестеде Color қасиетінің мәні ретінде пайдалануға болатын белгілі тұрақтылар берілген.
Тұрақты
|
Түсі
|
Тұрақты
|
Түсі
|
ClBlack
|
Қара
|
ClSilver
|
Жалтыр сұр
|
ClMaroon
|
Каштан
|
ClRed
|
Қызыл
|
ClGreen
|
Жасыл
|
Clime
|
Салат
|
ClOlive
|
Олив
|
ClBlue
|
Көк
|
ClNavy
|
Көк қара
|
ClFutshia
|
Ақшыл қызыл
|
ClPurple
|
Ақшыл қызыл
|
ClAqua
|
Көкшіл
|
ClTeal
|
Көк жасыл
|
ClWhite
|
Ақ
|
ClGray
|
Сұр
|
|
|
Width қасиеті сызықтың енін береді. Мысалы, Canvas.Pen.Width:=2 операторы ені 2 пиксель болатын қызыл түсті сызықты сызады.
Style қасиетті сызықтың стилін көрсетеді. Ол түзу, шрихталған немесе ирек болуы мүмкін. Төменгі кестеде сызықтың стилін көрсететін тұрақтылар келтірілген. Жартылай пунктир сызықтың ені 1 – ден көп болуы мүмкін емес. Pen.Width қасиетіне бірден үлкен мән берсек, онда жартылай пунктир сызығы жай сызық болып шығады.
-
Тұрақты
|
Сызық түрі
|
PsSolid
|
Жай сызық
|
PsDush
|
Пунктир ұзын штрих
|
PsDot
|
Пунктир, қысқа штрих
|
PsDush
Dot
|
Пунктир, ұзын және қысқа штрихпен аралас
|
PsDush
DotDot
|
Пнуктир, бір ұзын бір қысқа штрих аралас
|
PsClear
|
Сызық көрінбейді
|
Mode қасиеті нүкте түсі мен бет түсінің үйлесімділігін анықтайды. Келісім бойынша сызық Pen.Color қасиетінің мәнімен сызылады.
Бірақ, программист фон түсіне байланысты сызық түсін өзгерте алады. Төменгі кестеде Pen.Mode қасиетінің мәні ретінде қолданылатын тұрақтылар сипатталған.
Тұрақты
|
Сызық түсі
|
MpBlask
|
Қара, Pen.Color қасиетінің мәнінен тәуелсіз
|
MpWhite
|
Ақ, Pen.Color қасиетінің мәнінен тәуелсіз
|
MpCopy
|
Сызық түсі Pen.Color қасиетінің мәніне тәуелді
|
MpNotCopy
|
Сызық түсі Pen.Color қасиетінің мәніне инверсиялы
|
MpNot
|
Сызық түсі бет нүктелерінің түсіне инверсті
|
Қылқалам
Қылқалам тұйықталған бөліктерді салу әдісімен, мысалы геометриялық фигураларды салумен сипатталады. Қылқалам, объект ретінде төменде келтірілген екі қасиетке ие.
-
Қасиет
|
Сипаттама
|
Color
|
Тұйықталған бөлікті салу түсі
|
Style
|
Бөлікті толтыру стилі
|
Контур ішіндегі бөлік боялған немесе штрихталған болуы мүмкін. Бөлікті штрихтаудың төменгі кестеде сипаттаған мынадай түрлері бар:
Тұрақты
|
Бөлікті толтыру типі
|
BsSolid
|
Жай
|
BsClear
|
Бөлік боялмайды
|
BsHorisontal
|
Горизонталь штрих
|
BsVertical
|
Вертикаль штрих
|
BsFDiagonal
|
Сызықтары алға бағытталған диагональды штрих
|
BsBDiagonal
|
Сызықтары төмен бағытталған диагональды штрих
|
BsCross
|
Торлы горизонталь
|
|
Вертикаль бағыттағы штрих
|
BsDiagCross
|
Торлы диагональды штрих
|
Мәтінді шығару
Графикалық объектінің бетіне мәтінді шығару үшін TexOut командасы олданылады. Оның жалпы түрі:
Объект.Canvas.TextOut(x,y,Мәтін)
X
Y
Мәтінді шығару
облысы.
10.1 – сурет. Canvas – форманың немесе компоненттің беті.
Мұндағы
Объект – мәтін шығаратын объект аты;
х,у – мәтін шығаратын графикалық беттің координатасы;
Мәтін – символ типті айнымалы немесе тұрақты.
Мәтінді шығару үшін қоланылатын шрифт Canvas объектісіне сәйкес Font қасиеті арқылы анықталады. Төменгі кестеде Tfont объектісінің қасиеттері келтірілген.
Қасиет Сипаттамасы
Name Қоланылатын шрифт мәні ретінде
шрифтің атын көрсеткен жөн.
Size Шрифт өлшемі.
Style Символдардың стилі. Ол әртүрлі
болуы мүмкін (fsbold,fsItalic, fsUderlinhe,
fsStrikeOut).
Color Символ түсі.
Програманың келесі фрагменті TexOut функциясының қолданылуын көрсетеді.
With From1.Canvas do
Begin
Font.Name:=’Tahoma’;
Font.Size:=20;
Font.Style:=[fsItalic,fsBold];
Brush.Stile:=bsClear;
TextOut(10,10,’Borland Delphi 7’);
End;
Графикалық примитивтерді салу әдістері
Түзу. Түзу сызықты салу әдісі LineTo командасы арқылы орындалады. Оның жалпы түрі:
Компонент.Canvas.LineTo(x,y)
LineTo әдісі түзу сызықты қаламның ағымдағы орнынан координатасы көрсетілген нүктеге дейін салады. Түзудің бастапқы нүктесін қаламды графикалық беттің керекті нүктесіне жылжыту арқылы орындауға болады. Оны MoveTo параметр арқылы беруге болады.
Графикалық беттегі түзудің түсі Pen объектісінің қасиеті арқылы беріледі.
Сынық сызық. Poliline әдісі сынық, кесінділер сызады. Параметр ретінде бұл әдіс Tpoint типті массивті алады. Массивтің әр элементі жазу ретінде қарастырылады, x және y өрістері иілу нүктелерінің координаталары.
Шеңбер және эллипс. Ellips әдісі берілген параметрге байланысты эллипс немесе шеңбер сызады. Оның жалпы түрі:
Объект.canvas.Ellips(x1,y1,y2,y2);
Мұндағы:
Объект – сызу орындалатын беттің объектісі; x1,y1,y2,y2 – ішіне шеңбер салынатын тіктөртбұрыштың координаталары.
X1,Y1 x1,y1
X2,Y2 x2,y2
10.3-сурет. Объектілердің беттегі орналасуы
Доға. Доғаны салу Arc әдісі арққылы орындалады. Оның жалпы түрі:
Объект. canvas.Arc(x1,y1,y2,y2,x3,y3,x4,y4)
Мұндағы,
x1,y1,y2,y2 - эллипсті анықтайтын параметрлер;
x3,y3 – доғаның бастапқы нүктесін анықтайтын параметр;
x4,y4 – доғаның соңғы нүктесін параметр;
Бастапқы нүкте – бұл эллипс және түзу шекараларының қиылысу нүктесі. Бұл шекара эллипс центрінен (x3,y3) нүктесіне дейінгі кесінді.
Доғаның түсі, ені, түзу стилі беттегі Pen қасиетімен анықталады.
X1,y1 x3,y3
X4,y4
x2,y2
10.4-сурет.Доға
Тіктөртбұрыш. Тіктөртбұрыш Rectangle әдісі арқылы салынады. Оның жалпы түрі:
Объект.Canvas. Rectangle(x1,y1,x2,y2)
x1,y1
y3
x2,y2
10.5-сурет. Тіктөртбұрыш
Мұндағы:
Объект – объект немесе компонент аты;
X1,y1 және x2,y2 – тіктөртбұрыштың жоғарғы сол жақ және төменгі оң жақ коорданаталары.
Кейде Объект.Canvas.rectangle(x1,y1,x2,y2,x3,y3) болады. Параметр ретінде әдіс Tpoint типті массив алынады. Массивтің әр элементі жазба ретінде қарастырылады. Poligon әдісі координаталары массивте орналасқан нүктелерді түзу арқылы қосады. Мұнда бірінші нүкте мен екінші нүкте, екінші мен үшінші т.с.с. соңында біріншісі мен соңғысы қосылады.
Төменде Poligon әлісін қолданған процедура жазылған.
Procedure TForm1.Button2Click(sender:TObject);
Var
Pol:array:[1..3] of Tpoint;
Begin
Pol[1].x:=10;
Pol[2].x:=20;
Pol[3].x:=30;
Pol[4].x:=40;
Pol[5].x:=50;
Pol[6].x:=60;
Pol[7].x:=70;
Form1.canvas.Poligon(pol);
Сектор. Ріе әдісі арқылы эллипс немесе шеңбердің секторы саланады. Оның жалпы түрі:
Объект.Pie(x1,y1,y2,y2,x3,y3,x4,y4)
x1,y1 x3,y3 x1,y1 x4,y4
x4,y4 x3,y3
x2,y2 x2,y2
10.6-сурет. Сектор
Мұндағы
x1,y1,y2,y2 – эллипстіңі бөлшегі болатын сектордың параметрлері;
x3,y3,x4,y4 – сектордың шекаралары болатын түзулердің соңғы координата нүктелері. Түзулердің бастапқы нүктелері эллипс центрімен сәйкес келеді. Сектор сағат тіліне қарсы қиылады.
Мультипликация.
Мультипликация дегеніміз қозғалыстағы сурет. Суретті қозғалысқа келтіру үшін суретті экранға шығарып, біраз уақытқа өшіру керек. Содан кейін оны тағы экранға басқа орынға шығару қажет.
Мультипликация мүмкіндігі демонстрациялайтын төмендегі программаны қарастырайық.
5-мысал.
10.11-сурет. Форма терезесі
unit Unit1;
interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
Timer1:TTimer;
procedure Timer1 Timer (Sender: TObject);
procedure FormActivate (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form I :TForm I;
x, y ,byte;
dx :byte;
implementation
{$R.*dfm}
procedure ris;
begin
form I .Canvas .Pen .Color :=form I .Color;
form I . Canvas .EIIipse (x ,y, x+10 ,y+10 ):
x: =x+dx;
formI .Canvas. Pen .Coior :=cl Black;
form I .Canvas.EIIipse (x, y, x +10, y +10);
end;
procedure TForm1.Timer1 Timer (Sender: TObject);
begin
ris;
end;
procedure TForm1.FormActivate (Sender: TObject);
begin
x:=0;
y:=10;
dx:=5;
timer1.Interval:=50;
form1.Canvas.Brush.Color:=form1.Color;
end;
end.
Мұнда негізгі жұмысты ris процедурасы орындайды. Осы процедураның периодты түрде шақырылуын System бетіндегі timer компоненті қамтамасыз етеді.
timer
10.12-сурет. System беті
Delphi – дің мультимедиялық мүмкіндіктері
Delphi ортасында мультимедиялық программалар жасау үшін екі компоненттің қызметтін пайдалануға болады:
Animate – жай анимацияны шығаруға мүмкіндік бкркді.
MediaPlayer – аса қиын есептерді шешүге мүмкіндік береді.
Мысалы, дыбысты, видеороликтерді, дыбысты бар анимацияны шығару және т.б.
Animate компоненті
Animate компоненті Win32 бетінде орналасқан№ ол кадрлары A VI – файлдарында орналасқан анимациямен жұмыс істеуге мүмкіндік береді.
Animate
10.13-Win32 беті
Animate компоненті формаға әдеттегідей орнатылады. Қосқаннан кейін оның сәйкес қасиеттерін тағайындау керек. Animate компонентінің қасиеттері төмендегі кестеде келтірілген.
-
Қасиет
|
Анықтамасы
|
Name
|
Компонент аты
|
FileName
|
Анимация орналасқан A VI – файлының аты
|
StartFrame
|
Анимация басталатын кадр номері
|
StopFrame
|
Анимация бітетін кадр номері
|
Activate
|
Анимация кадрларын активизациялау белгісі
|
Color
|
Анимация жасалынатын фон түсі
|
Transpanent
|
Мөлдір түс тәртібі
|
Repetitions
|
Анимацияның қайталану саны
|
Animate компоненті тек қана A VI – файлдарын ұйымдастыру үшін ғана қолданылады. FileName қасиетіне дыбыс шығаратын файл атын енгізсеңіз, онда Delphi сізге қате туралы хабар береді. A VI – файлының ішіндегісін көргініз келсе, онда Windows – де керекті A VI – файлын белгілеп, қасиет командасын орындаңыз. Нәтижесінде Қасиет терезесі ашылады, осы терезеде файл туралы толық ақпарат берілген.
Media Player компоненті
System бетінде орналасқан Media Player компоненті ыидеороликтерді, дыбыстарды және дыбысы бар анимацияларды орындауға мүмкіндік береді.
Media Player
10.14-сурет. System беті
Компонентті формаға қосу нәтижесінде формада батырмалар тобы пайда болады. Бұл батырмалардың мәні төменгі кестеде келтірілген.
10.15-сурет. Media Player компоненті
-
Батырма
|
Белгілеуі
|
Жұмысы
|
Шығару
|
BtPlay
|
Видео немесе дыбысты шығару
|
Пауза
|
BtPause
|
Тоқтату
|
Стоп
|
BtStop
|
Тоқтату
|
Келесі
|
BtNext
|
Келесі кадрға көшу
|
Алдыңғы
|
BtPrev
|
Алдынғы кадрға көшу
|
Қадам
|
BtStep
|
Келесі дыбыстық файлға көшу
|
Артқа
|
BtBack
|
Өткен дыбыстық файлға көшу
|
Жазу
|
BtRecord
|
Жазу
|
Ашу/жабу
|
BtEject
|
Компьютер дисководын ашу немесе жабу
|
Media Player компонентінің қасиеттері
Қасиет
|
Анықтамасы
|
Name
|
Компонент аты
|
DeviceType
|
Тип
|
FileName
|
Видеоролик немесе дыбыстық фрагменті бар файл аты
|
AutoPen
|
Программаны жүктеген соң автоматты ашылу белгісі
|
Display
|
Видеоролик орналасқан компонентті анықтайды
|
VisibleButtons
|
Компоненттің көрінетін батырмаларын анықтайды
|
Дыбысты шығару
Дыбыстық фрагментер заты. WAV болып келген файлдарда орналасқан. Delphi-де дыбысты шығару үшін де Media Player комоненті қолданылады
Видеороликтерді және анимацияларды көру
Видеороликтерді және анимацияларды көру үшін Media Player компоненті қолданылады. Бұл процесті бақылау үшін келесімысалды қарастырайық: төмендегі суретте көрсетілгендей Pane компоненті анимацияны көрсететін экран ретінде пайдаланылады.
ТАПСЫРМА:
Тапсырма №1
Стилдердің түрлерін көрсететін программа құр.
Тапсырма №2
Жұлдызша сызатын программа құр
Тапсырма №3
10.3 Суретті шығараратын программа құрыңыз
Тапсырма №4
F (x) =2sin функциясының графигін [0:25] аралығында түрғызатын программа құрайық.
Тапсырма №5
Программа тізімдегі таңдалған файлға сәйкес дыбысты шығару керек.
Достарыңызбен бөлісу: |