Графикалық ақпаратты бейнелеуге арналған компоненттер. «Delphi-де графикалық ақпаратты көрсету» тақырыбына презентация. Теориядан қысқаша мәлімет

Графикалық ақпаратты бейнелеу үшін Delphi кітапханасы құрамдас бөліктерді ұсынады, олардың тізімі кестеде берілген. 6.

6-кесте

Графикалық ақпаратты бейнелеуге арналған компоненттер

Құрамдас Бет Сипаттама
Кескін Қосымша Графикалық бейнелерді көрсету үшін қолданылады
PaintBox (сурет салуға арналған терезе) Жүйе Пішінде сурет салуға болатын аумақты жасау үшін қолданылады
DrawGrid (сызбалар кестесі) Қосымша Жолдар мен бағандарда мәтіндік емес деректерді көрсету үшін қолданылады
Диаграмма (диаграммалар мен графиктер) Қосымша Компонент диаграммалар мен графиктерді құру үшін пайдаланылатын компоненттердің TeeChart тобына жатады
Chartfx (диаграммалар мен графиктер) ActiveX Диаграмма және график редакторы
FIBook (Excel беттері) ActiveX Сандық ақпаратты енгізу және өңдеу компоненті
VtChart (диаграммалар) ActiveX Диаграммалау терезесі

Сонымен қатар, қасиетке ие кез келген терезе компонентінің бетіне графикалық ақпаратты көрсетуге және енгізуге болады Кенеп- кенеп.

Кескін кестелері - DrawGrid және StringGrid компоненттері

Құрамдас DrawGridграфикалық кескіндерді қамтитын қолданбада кесте құру үшін қолданылады. Бұл компонент компонентке ұқсас StringGridсоңғысы шыққандықтан DrawGrid.Сондықтан в DrawGridкомпоненттің барлық қасиеттері, әдістері, оқиғалары бар StringGridмәтінге қатыстыларды қоспағанда, яғни. қасиеттерден басқа Жасушалар, Түстер, жолдар, нысандар.Осы тұрғыдан алғанда компонент StringGridқарағанда айтарлықтай үлкен мүмкіндіктерге ие DrawGridөйткені ол ұяшықтарда суреттерді де, мәтіндерді де сақтай алады. Ал кейбір ұяшықтарға мәтін енгізгіңіз келсе DrawGridонда бұл үшін мәтінді контурда көрсету әдістерін қолдану қажет, бұл өте ыңғайлы емес.

Құрамдас бөліктер DrawGrid және StringGridконтуры бар кенеп,суреттерді орналастыруға болады.

Әдісі бар Ұяшық тік,ол берілген ұяшық үшін бөлінген кенеп аймағын қайтарады. Бұл әдіс ретінде анықталады

функциясы CellRect(ACol, ARow: Longint): TRect;

Қайда ACol және ARow- ұяшық қиылысында орналасқан 0-ден басталатын баған және жол индекстері. Бұл функциямен қайтарылатын аумақ қажетті кескінді салуға болатын кенеп аймағы болып табылады. Мысалы, оператор

DrawGridl.Canvas.CopyRect(DrawGridl.CellRect(1,1),

BitMap.Canvas,Rect(0,0, BitMap.Height, BitMap.Width));

көшіру әдісі CopyRectкестенің (1,1) ұяшығына DrawGridlкомпоненттен алынған сурет BitMap.Бұл ұяшық кестеде сол жақтан екінші және жоғарыдан екінші болып табылады, өйткені индекстер 0-ден басталады. Егер ұяшық көшірілген кескіннің өлшемінен кішірек болса, онда кескіннің тек жоғарғы сол жақ бөлігі ғана пайда болатынын ескеріңіз. жасуша.

Құрамдас кенептегі сурет DrawGrid және StringGrid,кез келген құрамдастың кенепіндегі сияқты, қолданба терезесі басқа терезелермен қабаттасқанда немесе, мысалы, қолданба кішірейтілгенде, ол өшірілуге ​​жатады.

Ұяшықтарға кескіндерді енгізудің ыңғайлы жолы DrawGridоқиға өңдеушісін пайдалану болып табылады OnDrawCell.Бұл оқиғалар әрбір кесте ұяшығы үшін қайта сызылған кезде орын алады. Өңдеуші тақырыбы келесідей көрінеді:

procedure TForml.DrawGridlDrawCell(Жіберуші: TObject;

ACol, ARow: бүтін; Rect: TRect; Күй: TGridDrawState)

Параметр Мемлекетұяшықтың күйін көрсетеді. Бұл келесі элементтерді қамтуы мүмкін жиын: gdТаңдалған- таңдалған ұяшық, gdFocused- фокустағы ұяшық, gdFixed- кестенің бекітілген аймағындағы ұяшық. Параметр Мемлекетұяшықтарды әртүрлі күйлерде әртүрлі көрсету үшін пайдалануға болады.

Пішін компоненті

Пішін компонентіграфикалық ақпаратты көрсету құралы ретінде шартты түрде ғана жіктелуі мүмкін, өйткені ол жай ғана сәйкес көлеңкеленген әртүрлі геометриялық фигураларды бейнелейді. Бұл компоненттің негізгі қасиеті Пішін(форма), ол келесі мәндерді қабылдай алады:

StRectangle – төртбұрыш;

StSquare – шаршы;

StRoundRect – бұрыштары дөңгеленген тіктөртбұрыш;

StRouhdSquare - бұрыштары дөңгеленген шаршы;

Stellipse – эллипс;

StCircle - шеңбер.

Компоненттің тағы бір маңызды қасиеті Щетка(щетка). Бұл сипат типті объект болып табылады туберкулез,бірқатар ішкі қасиеттерге, атап айтқанда түске ие (Қылқалам. Түс)және стиль (Қылқалам.Стиль)фигураны толтыру. Кейбір мәнер мәндерінің толтырылуын суретте көруге болады. 3.2. Компоненттің үшінші спецификалық қасиеті Пішін- Қалам(қалам) сызық стилін анықтайтын.

Диаграмма құрамдас бөлігі

Енді компонентті қарастырайық Диаграмма.Бұл компонент өте әсерлі көрінетін әртүрлі диаграммалар мен графиктерді құруға мүмкіндік береді. Құрамдас Диаграммакөптеген қасиеттерге, әдістерге, оқиғаларға ие, сондықтан олардың барлығын қарастыратын болсақ, бұған тұтас бір тарауды арнауға тура келеді. Сондықтан біз тек негізгі сипаттамаларды қарастырумен шектелеміз Диаграмма.Қалғанын Delphi-дің кірістірілген анықтамасынан таба аласыз немесе диаграммалармен тәжірибе жасап көріңіз.

Құрамдас Диаграммаобъектілердің контейнері болып табылады Сериялар- сыныптың мұрагерлері TChartSeries.Әрбір мұндай нысан белгілі бір көрсету стилімен сипатталатын деректер қатарын білдіреді: белгілі бір график немесе диаграмма. Әрбір компонент Диаграммабірнеше эпизодтарды қамтуы мүмкін. Егер сіз графикті көрсеткіңіз келсе, онда әрбір қатар графиктегі бір қисыққа сәйкес болады. Диаграммаларды көрсеткіңіз келсе, диаграммалардың кейбір түрлері үшін бірнеше түрлі серияларды бір-бірінің үстіне қоюға болады, басқалары үшін (дөңгелек диаграммалар сияқты) ол ұсқынсыз болып көрінуі мүмкін. Дегенмен, бұл жағдайда да бір құрамдас үшін орнатуға болады Диаграммаәртүрлі диаграмма түрлерімен бірдей деректердің бірнеше сериясы. Содан кейін олардың біреуін әр уақытта белсенді ету арқылы пайдаланушыға оларды қызықтыратын деректерді көрсететін диаграмма түрін таңдау мүмкіндігін бере аласыз.

Бір немесе екі компонентті орналастырыңыз Диаграммапішінде және нысан инспекторында ашылатын сипаттарды қараңыз. Міне, олардың кейбіреулері туралы кейбір түсініктемелер.

AllowPanning – қолданушының орындау кезінде тінтуірдің оң жақ батырмасын басу арқылы графиктің байқалатын бөлігін айналдыру мүмкіндігін анықтайды. Мүмкін мәндер: pmNone – айналдыруға тыйым салынады, pmHori/ontal, pm Vertical немесе pmBoth – сәйкесінше тек көлденең бағытта, тек тік бағытта немесе екі бағытта да айналдыруға рұқсат етіледі.

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

Тақырып – диаграмма тақырыбын анықтайды.

Аяқ – диаграмманың астындағы жазуды анықтайды. Әдепкі бойынша ешқайсысы. Қолтаңба мәтіні Text ішкі қасиеті арқылы анықталады.

Frame – диаграмманың айналасындағы жақтауды анықтайды.

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

Жоғарғы компонентті екі рет басыңыз Диаграмма.Сіз бірнеше қойындысы бар Диаграмма бетіндегі Диаграмма өңдегішінің терезесіне өтесіз. Ең алдымен, сізді ондағы Сериялар қойындысы қызықтырады. «Қосу» түймесін басыңыз - серияны қосыңыз. Сіз диаграмма немесе график түрін таңдауға болатын терезеге барасыз. Бұл жағдайда Pie - дөңгелек диаграмманы таңдаңыз. «Тақырыптар» қойындысын пайдаланып, диаграмма тақырыбын орнатуға болады, «Мәндік белгілер» қойындысы диаграмманың таңбашасын (таңбалар тізімі) көрсету үшін параметрлерді орнатуға немесе оны экраннан мүлдем алып тастауға мүмкіндік береді, «Панель» қойындысы тақтаның сыртқы түрін анықтайды. 3D қойындысы диаграмманың сыртқы түрін өзгертуге мүмкіндік береді: көлбеу, жылжу, қалыңдық, т.б.

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

Бірнеше қойындылары бар Сериялар беті сериялар үшін қосымша көрсету опцияларын таңдау мүмкіндігін береді. Атап айтқанда, дөңгелек диаграмма үшін «Пішім» қойындысында «Дөңгелектелген дөңгелек» опциясын қосу пайдалы, ол диаграмманың Диаграмма құрамдас бөлігінің кез келген өлшемінде шеңбер түрінде көрсетілетінін қамтамасыз етеді. Белгілер қойындысында Стиль тобының түймелері диаграмманың жеке сегменттеріне қатысты белгілерде не жазылатынын анықтайды: Мән - мән, Пайыз - пайыздар, Белгі - деректер атаулары және т.б.

Қаласаңыз, Диаграмма бетіндегі Сериялар қойындысындағы Клондау түймешігін басу арқылы осы Диаграмма құрамдас бөлігіне басқа бірдей қатарды қосуға болады, содан кейін ол үшін жаңа сериясыӨзгерту түймесін басып, басқа диаграмма түрін таңдаңыз, мысалы, Жолақ.

Диаграмма өңдегішінен шығыңыз, қолданбаңыздың төменгі Диаграмма құрамдас бөлігін таңдап, оның сипаттарын орнатуды Диаграмма өңдегішінің көмегімен қайталаңыз. Бұл жағдайда графикте екі қисықты көрсеткіңіз келсе, екі қатарды көрсету керек және Сызық диаграмма түрін таңдаңыз. Өйткені туралы айтып отырмызграфиктер туралы білсеңіз, осьтердің координаталық сипаттамаларын және графиктің үш өлшемді жиектерін көрсету үшін Ось және Қабырғалар қойындыларын пайдалануға болады.

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

Көрсетілген мәндерді орнату үшін Series әдістерін пайдалану керек. Негізгі үш әдіске ғана тоқталайық.

Әдіс Тазабұрын енгізілген деректер қатарын тазартады.

Әдіс Қосу:

Қосу(Const AValue:Double; Const ALabel:String; AColor:TColor) ,

диаграммаға жаңа нүкте қосуға мүмкіндік береді. Параметр AV мәнқосылған мәнге, параметрге сәйкес келеді ALabel- диаграммада және легендада көрсетілетін белгі, AColor- түсті. Параметр ALabel- міндетті емес, оны бос орнатуға болады: ' '. Әдіс AddXY:

AddXY(Const AXValue, AYValue: Қос; Const ALabel: Жол; AColor: TColor)

функция графигіне жаңа нүкте қосуға мүмкіндік береді. Опциялар AXValueЖәне AYМәнаргумент пен функцияға сәйкес келеді. Опциялар ALabel және AColorәдістегідей қосу.

Осылайша, біздің мысалдағы деректерді жүктеу процедурасы келесідей болуы мүмкін:

const Al=155; A2=251; A3=203; A4=404; var i:word; БАСТА

Сериядан басталады

Add(Al,"Workshop l",clYellow);

Add(A2,"Workshop 2",clBlue);

Add(A3,"Workshop 3",clRed);

Add(A4,"Workshop 4",clPurple); Соңы;

Series2.Clear; SeriesS.Clear; i:=0-ден 100-ге дейін басталады

Series2.AddXY(0,02*Pi*i,sin(0,02*Pi*i)

SeriesS.AddXY(0,02*Pi*i,cos(0,02*Pi*i) соңы;

ClRed); ,clBlue);

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

Осымен біздің компонентке кіріспе аяқталады Диаграмма.Рас, біз оның мүмкіндіктерінің аз ғана бөлігін қарастырдық.

Графикамен жұмыс Delphi-де бұл тек сызықтар мен сызбалар ғана емес, сонымен қатар басып шығару мәтіндік құжаттар. Сондықтан в Delphi жұмыстаграфикаменаз уақыт жұмсау керек. -мен жұмыс істеу Delphi-дегі графикакенепке қол жеткізуді қамтиды - компоненттердің Canvas қасиеті. Canvas Delphiбұл бағдарламашыға оның әрбір нүктесіне (пикселіне) қол жеткізуге және суретші сияқты қажетті нәрсені көрсетуге мүмкіндік беретін кенеп. Әрине, үшін пикселді пиксельмен сызыңыз графикамен жұмыс Delphi-де қажет емес, Delphi жүйесі қуатты қамтамасыз етеді графикалық құралдар, бағдарламашы тапсырмасын жеңілдету.

Delphi-де графикамен жұмыс істегенде программист өз қарамағында контур (кенет, кенеп - қасиет) болады. Кенеп Delphi компоненттері), қарындаш (қасиет Қалам), бояу керек құрамдастың немесе нысанның қылқаламы (Қылқалам сипаты). Қарындашта Қаламжәне щеткалар Щеткатүсін (Түс сипаты) және стильді (Стиль қасиеті) өзгертуге болады. Қаріптерге қол жеткізу canvas сипаты арқылы қамтамасыз етіледі Қаріп. Бұл құралдар мәтінді де, математикалық және инженерлік мазмұнның жеткілікті күрделі графиктерін де, сызбаларды да көрсетуге мүмкіндік береді. Бұдан басқа, графикамен жұмысмұндай ресурстарды Delphi-де пайдалануға мүмкіндік береді Windowsграфикалық және бейне файлдар сияқты.

Әрине, Delphi-дегі барлық компоненттер мұндай қасиеттерге ие емес. Қойындыда Қосымшаарнайы құрамдас бөлігі орналасқан TIME кескіні, сурет салу үшін арнайы жасалған, сонымен қатар қасиет Кенепмысалы, ListBox, ComboBox, StringGrid сияқты компоненттер, сондай-ақ біздің құрамдастарды орналастыратын пішіннің өзі бар! Сонымен қатар, құжаттарды басып шығару үшін Delphi принтер сияқты нысанның Canvas қасиетіне қатынасады.

Canvas Delphi сияқты объектінің негізгі қасиеті болып табылады Пиксельдертүрі TColor, яғни бұл олардың түсі бойынша көрсетілген нүктелердің (пиксельдердің) екі өлшемді массиві. Кенепте сурет салу кенептің кез келген нүктесіне берілген түсті тағайындау сәтінде орын алады. Әрбір пиксельге Windows үшін қол жетімді кез келген түсті тағайындауға болады. Мысалы, операторды орындау

Image1.Canvas.Pixels:=clRed;

Нәтижесінде координаталары бар қызыл нүкте сызылады. Сіз пикселдің түсін кері тағайындау арқылы біле аласыз:

Түс:=Image1.Canvas.Pixels;

Түр TColorұзын бүтін сан (LongInt) ретінде анықталады. Оның төрт байты көк (B), жасыл (G) және қызыл (R) түстердің пропорциялары туралы ақпаратты қамтиды. Он алтылық жүйеде ол келесідей көрінеді: $00BBGGRR. Әрбір түстің үлесі 0-ден 255-ке дейін өзгеруі мүмкін. Сондықтан максималды қызыл нүктені көрсету үшін оны тағайындау керек. түс $000000FF.
Delphi-де стандартты түстер үшін мәтіндік тұрақтылар жиыны анықталған. Оны Түс қасиетін ашу арқылы көруге болады, мысалы, Объектілер инспекторында бір пішіннің.

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

TextOut(X, Y: Integer) процедурасы; constМәтін: WideString);
Жолдың шығысын шығарады Мәтін(X, Y) бастап – мәтіннің сол жақ жоғарғы пикселі.
Сипат TextWidth( varМәтін: Жол): Integer;
Жолдың ұзындығын қамтиды Мәтінпикселдерде.
Сипат TextHeight( varМәтін: Жол): Integer;
Сызық биіктігін қамтиды Мәтінпикселдерде.
Procedure MoveTo(X, Y: Integer);
Орынды мекенжайы бар пикселге жылжытады (X, Y).
Procedure LineTo(X, Y: Integer);
Ағымдағы орынның нүктесінен адресі (X, Y) бар пикселге түзу сызық салады. Мекенжай (X, Y) ағымдағы позицияның нүктесі болады.
FillRect процедурасы( const Rect: TRect);
Тіктөртбұрышты толтырады Ректағымдағы щетканы пайдаланып кенепте. Басқа нәрселермен қатар кенептегі кескіннің бір бөлігін өшіру үшін пайдалануға болады.

Тек осы кенеп әдістерін қолдана отырып, құрамдас кенепте кескінге арналған қосымшаны жазайық Кескінкомпонентке енгізілген мәтін Жаднама:

Біз жасайтын бірінші нәрсе - бағдарлама іске қосылғанда айнымалыларды инициализациялау. Сызба аймағының өлшемін анықтау керек (бұл үшін TRect типті Rect жаһандық айнымалысын жасаймыз) және фон түсін орнату керек. Кескінақ:

процедура TForm1.FormCreate(Жіберуші: TObject);
БАСТА
Rect.Left:=0;
Rect.Top:=0;
Rect.Right:=Image1.Width;
Rect.Bottom:=Image1.Height;
Image1.Canvas.Brush.Color:=clWhite;
Соңы;

Содан кейін кескіннің бүйірлеріне жақтауды салыңыз:

процедура TForm1.page;
БАСТА
біргеКескін 1.Кенвас істеу
БАСТА
MoveTo(0, 0);
LineTo(Image1.Width-1, 0);
LineTo(Image1.Width-1, Image1.Height-1);
LineTo(0, Image1.Height-1);
LineTo(0, 0);
Соңы;
Соңы;

Не болғанын байқап көрейік. Барлығы жұмыс істейді, бірақ кадр әлі көрсетілмеген. Сондықтан процедураны қосайық бетпроцедурада FormCreate. Қазір әдемі. Содан кейін біз Кескінді өшірудің және тазалаудың қарапайым процедурасын жазамыз. Оны кез келген кескінді жаңарту алдында шақыру керек, әйтпесе алдыңғы және кейінгі кескіндер қабаттасады.

процедура TForm1.clearing;
БАСТА
Image1.Canvas.FillRect(Rect); //Тіктөртбұрыш Ректақ түспен толтырылады және сурет өшіріледі.
Соңы;

Енді мәтінді шығару процедурасының өз кезегі. Мәтінді сызуды (3, 3) нүктеден бастайық - парақтың жоғарғы сол жақ бұрышы, 3 пиксель аздап шегініспен. Әрбір келесі жол сызық биіктігі бойынша ығыстырылады:

процедура TForm1.prn;
var i: бүтін;
БАСТА
біргеКескін 1.Кенвас істеу
үшін i:=1 дейін Memo1.Lines.Count істеу
TextOut(3, 3+(i-1)*TextHeight("A"), Memo1.Lines);
Соңы;

Енді барлығы мәтінді шығаруға дайын. Біз мұны OnChange оқиғасы арқылы орындаймыз:

процедура TForm1.Memo1Change(Жіберуші: TObject);
БАСТА
тазарту;
prn;
бет;
Соңы;

Соңында, қаріп өлшемін өзгерту процедурасы:

процедура TForm1.Edit1Change(Жіберуші: TObject);
БАСТА
Memo1.Font.Size:=UpDown1.Position;
Image1.Canvas.Font.Size:=UpDown1.Position;
Memo1Change(Жіберуші);
Соңы;

Бұл бағдарламаны мәтінді басып шығару үшін өзгертуге болады. Принтермен жұмыс істеу үшін модульді қосу керек Принтерлер:

бірлік 1 бірлік;

Интерфейс

пайдаланады
Windows, хабарлар, SysUtils, нұсқалар, сыныптар, графика, басқару элементтері, пішіндер,
Диалогтар, StdCtrls, Принтерлер ;

Принтермен кенеп ретінде жұмыс істегенде, басып шығаруды бастау үшін әдіс шақырылады BeginDoc, содан кейін құжат шығарылады, әдісті шақыру арқылы басып шығару аяқталады EndDoc:

Printer.BeginDoc;
біргеПринтер.Кенвас істеу
БАСТА
...Құжатты басып шығару...
Соңы;
Printer.EndDoc;

Принтер торының ені мен биіктігі сипаттар арқылы қол жетімді Printer.PageWidthЖәне Printer.PageHeight. Әдістің көмегімен бір бетке басып шығаруды аяқтап, екіншісіне басып шығаруды бастауға болады Printer.NewPage.

ЛАБОРАТОРИЯЛЫҚ ЖҰМЫС

ТАҚЫРЫП: « Графика ішіндегіDelphi– ең қарапайым құрылыс
геометриялық пішіндер»

Теориядан қысқаша мәлімет

Delphi әзірлеушіге графиканы көрсетудің үш әдісін ұсынады:

    бағдарлама жұмыс істеп тұрған кезде сызба құру

    алдын ала жасалған графиканы пайдалану

    графикалық құрамдастарды пайдаланып кескіндерді жасау

Графиктерді тұрғызу үшін сызу құралдары мен әдістерін беретін арнайы кластар құрылды: құралдар үш класста сипатталған – Tfont, Tpen, Tbrush; Сурет салу аймағы мен әдістерін Tcanvas сыныбы қамтамасыз етеді.

СыныпTфонт– кенепте мәтінді көрсету үшін қолданылатын қаріптің сипаттамаларын көрсетеді. Кластың сипаттары «Көптеген құрамдастарға қолжетімді негізгі сипаттар» бөлімінде сипатталған.

СыныпTpen– сызықтар сызылатын қаламның (қарындаштың) сипаттамасын көрсетеді.

Қасиеттерсынып Tpen:

Түс:Tcolor – сызық түсі (әдепкі – қара)

Ені:integer – пиксельдегі сызық қалыңдығы;

Стиль = (psSolid, psDash, psDot, psdashDot, psClear) – сызық стилін анықтайды (тұтас, үзік, нүктелі, сызықша нүктелі, көрінбейтін)

СыныпҚылқалам– кескіннің бетін бояйтын қылқаламның сипаттамаларын белгілейді.

Қасиеттерсынып Қылқалам:

Түс:Tcolor – қылқалам түсі (әдепкі – ақ)

Стиль– қылқалам үлгісі, келесі мәндерді қабылдай алады:

BsSolid – қатты бояу

BsClear – көлеңкенің болмауы

BsVertical – тік сызықтар

BsBdiagonal – оң қиғаш сызықтар

BsDiagCross – қиғаш ұяшық

Bs Горизонталь – көлденең сызықтар

BsFdiagonal – сол жақ қиғаш сызықтар

BsCross – тор

СыныпTcanvas– құрылатын кескіннің қай бетке орналасатынын және кескіннің жасалатын құралдарын анықтайды: шрифт, қарындаш, қылқалам.

Әдепкі бойынша, пішіннің бүкіл клиент аймағы жұмыс аймағы (кенеп) ретінде пайдаланылады (тақырыпсыз, негізгі мәзірсіз және пішіннің айналдыру сызықтарысыз), бірақ құрамдастарды пайдаланып пішін ішінде кішірек жұмыс аймақтарын бөлуге болады. PaintBoxнемесе Кескін. Кенеп координатасының бастауы жұмыс аймағының сол жақ жоғарғы бұрышы болып табылады, жұмыс аймағының ені сипатпен анықталады ClientWidth, биіктігі – қасиет ClientHeight.

Қасиеттерсынып Tcanvas:

Кенеп:Tcanvas – сызба аймағын анықтайды

Щетка:Tbrush – жабық пішіндерді толтыруға арналған щетка

Қаріп:Tfont – кенепте мәтінді көрсетуге арналған шрифт

Қалам:Tpen – сурет салуға арналған қарындаш (қалам).

PenPos:Tpoint – кенептегі көрінбейтін курсордың ағымдағы орны

Түсініктеме : Tpoint түрі – келесідей анықталады:

Нүкте = жазба теріңіз

Пиксельдер: Tcolor – кенеп пикселдерінің түстерін, X, Y – пиксель координаталарын орнатады. Pixels қасиеті таңдалған түстің нүктелерін пайдаланып графиктерді салу үшін пайдалануға ыңғайлы.

TCanvas класының негізгі әдістері

    процедура Жылжыту(x,y:бүтін); - қаламды координаталары (х, у) нүктеге түзусіз жылжытады.

    Процедура LineTo(x,y:бүтін); - ағымдағы нүктеден координаталары (х, у) нүктеге дейін түзу жүргізеді.

Мысал : Кескіннің жоғарғы сол жақ бұрышынан төменгі оң жақ бұрышына дейін кескінге диагональды көк сызық сызыңыз.

Pen.color:= clblue;

MoveTo(0,0); LineTo(ClientWidth, ClientHeight);

    процедура Төртбұрыш(x1,y1,x2,y2:бүтін сан); - тіктөртбұрыш салады: x1,y1 – сол жақ жоғарғы бұрыштың координаталары; x2, y2 - төменгі оң жақ бұрыштың координаталары.

Мысал : Пішіннің ортасында жағы 60 пиксель болатын сары реңкті шаршы сызыңыз.

var Xc,Yc: бүтін; //

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.color:=clyellow;

Canvas.rectangle(xc-30,Yc-30,xc+30,Yc+30);

    процедура Эллипс(x1,y1,x2,y2:бүтін сан); - координаталары көрсетілген тіктөртбұрышқа іштей сызылған эллипс салады.

Мысал : PaintBox компонентіне іші сызылған эллипс салу.

PaintBox1.Canvas.Pen.Width:=4; //жолдың ені = 4 пиксель

PaintBox1.Canvas.Ellipse(0,0, PaintBox1. ClientWidth, PaintBox1. ClientHeight);

    процедура Көпбұрыш(); - координаталар массивімен көрсетілген тұйық көпбұрышты салады.

Мысал : пішіннің жақтарының ортаңғы нүктелерін қосатын толтырылған гауһар тасты салыңыз

Var Xc,Yc:бүтін; // пішіннің клиенттік аймағының орталығының координаттары

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.Color:=Rgb(275,140,70); // апельсин түс көлеңкелеу

Canvas.Polygon();

Соңы;

    Процедура Арк(x1,y1,x2,y2,x3,y3,x4,y4:бүтін сан); - тіктөртбұрышпен шектелген эллипс доғасын көрсетеді (x1, y1, x2, y2). Доға координаталары (x3,y3) нүктеден координаталары (x4,y4) нүктеге дейін көрсетіледі. қарсысағат тілімен.

Мысал : компоненттің жоғарғы жағының ортасын қосатын эллипс доғасын салыңыз
Оң жағының ортасы бар PaintBox.

Процедура Tform1.Button1Click(Sender:Tobject);

Var X3,y3,x4,y4: бүтін сан;

PaintBox1 көмегімен жасаңыз

Canvas.Pen.Color:= clWhite;

Canvas.Pen.Width:= 3;

Canvas.rectangle(0, 0, PaintBox1.ClientWidth, PaintBox1.ClientHeight);

X3:= ClientWidth div 2;

X4:= ClientWidth;

Y4:= ClientHeight div 2;

Canvas.Pen.Color:= clMaroon;

Canvas.ARC(0, 0, PaintBox1.ClientWidth, PaintBox1.ClientHeight, x3, y3, x4, y4);

Соңы;

    процедура Аккорд(x1,y1,x2,y2,x3,y3,x4,y4:бүтін сан); - хорда салады – эллипстің 2 нүктесін қосатын түзу: координаталары (х3, у3) нүктемен (х4, у4) нүкте.

Мысал : ARC әдісі үшін келтірілген мысалдағы Chord әдісін ауыстырыңыз және келесі нәтижені алыңыз.

    процедура Пирог(x1,y1,x2,y2,x3,y3,x4,y4:бүтін сан); - (x3,y3) және (x4,y4) координаталары бар эллипстің центрін қосатын эллипс кесіндісін салады.

Мысал : ARC әдісі үшін берілген мысалда PIE әдісін елестетіп, осы нәтижені алыңыз.

    процедура TextOut(x,y:integer;Мәтін:жол); - Text параметрінде берілген жолды жоғарғы сол жақ бұрышы көрсетілген тіктөртбұрышқа шығарады x,y координаталары. Қаріп сипаттамалары Қаріп құралы арқылы орнатылады.

Мысал : пішіннің төменгі жағына сызылған графиктің атын жазыңыз.

Canvas.Font.Height:=20 ; //таңба биіктігі 20 пиксель

Canvas.Font.Color:=clblue;

Canvas.TextOut(10, ClientHeight-24, ‘SIN(X) функциясының графигі’);

Графикалық компоненттер

Delphi жақсартуға мүмкіндік беретін бірқатар дайын компоненттерді ұсынады пайдаланушы интерфейсі. Бұл компоненттер бетте орналасқан ҚосымшаЖәне Жүйеқұрамдас палитралар.

ҚұрамдасКескін(сыныпУақыт) – кеңейтімі бар сыртқы файлдарда сақталған графикалық кескіндерді көрсету үшін жасалған:

    Ico(белгіше, пиктограмма);

    Bmp (разрядтық кескін, нүктелік кескін);

    Wmf, .emf (метафайл);

    Jpg, .jpeg (JPEG қысылған кескін).

Негізгі қасиеттері :

Автоматты өлшем:boolean – шын мәніне орнатылғанда, компонент өзінің өлшемдерін жүктелген кескіннің өлшеміне қарай реттейді; әдепкі - жалған.

Созу:boolean – егер шын болса, жүктелген мән құрамдастың бүкіл аумағын алады; әдепкі - жалған.

Кенеп:Tcanvas – программаны орындау кезінде компоненттің ішіне сурет салу үшін қолданылады.

Сурет:Tpicture - компонентте орналастырылған кескінді анықтайды.

Негізгі әдістерісынып Сурет:

Процедура LoadFromFile(Файл аты:жол); - компонентке Filename атты файлдан суретті жүктейді.

Процедура SaveToFile(Файл аты:жол); -компоненттегі суретті Filename атты файлға сақтайды.

ҚұрамдасPaintBox - тікбұрышты сызба аймағын анықтайды. Негізгі қасиет Кенеп, Tcanvas класының барлық әдістері қол жетімді, оның тәуелсіз қасиеттері жоқ.

Мысал : PaintBox1 компонентіне жазылған сары эллипсті салыңыз.

Процедура Tform1Button1Click(жіберуші:Тобъект);

PaintBox1.Canvas көмегімен орындаңыз

Brush.Color:=clyellow;

Эллипс(0,0,PaintBox1.ClientWidth, PaintBox1.ClientHeight);

Соңы;

ҚұрамдасBitBtnрастрлық түйме

BitBtn түймесі стандарттыдан айырмашылығы, тақырыпқа (Тақырып) қосымша сипатпен көрсетілген суретті қамтуы мүмкін. Глиф. Стандартты BitBtn түймелерінің жиынтығы бар, алдын ала анықталған қасиеттері бар (белгілі бір суреті, жазуы және мақсаты бар) - стандартты түйменің түрі сипат арқылы таңдалады. Мейірімді. Түр=(bkCustom, bkAbort,bkCancel, bkClose …)

№1 тапсырма

Негізгі пішінде екі Image компоненті мен 4 түймесі бар қолданбаны құрыңыз («Кескінді жүктеу», «Геометриялық фигураны құрастыру», «Түсті өзгерту», ​​«Шығу») және сізге:

a) пайдаланушы таңдаған Image1 компонентіне жүктеңіз графикалық кескінкескін Image компонентінің бүкіл аумағын алып тұруы үшін.

б) Image1 компонентінің астында «Бұл файлдан алынған сурет.

(компоненттің өлшемі мен орнын кез келген өлшеу үшінКескін1 жазу керек
қатаң түрде құрамдас астында орналасқан).

в) Image2 компонентінің ішіне геометриялық фигураны салу: Image компонентінің ортасын Image компонентінің төменгі және оң жақтарының орталарымен қосатын толтырылған эллипс сегменті.

(компоненттің өлшемі мен орнындағы кез келген өзгеріс үшінКескін2 фигураны дұрыс құрастыру керек, яғни. компонентке қатысты спецификацияға сәйкесКескін2)

d) ColorDialog компоненті арқылы пайдаланушының сұрауы бойынша Image2-де сызылған фигураның сызығының түсін өзгерту.

№2 тапсырма

Image компонентінде кездейсоқ бірнеше белгілерді (мысалы, «Ура!» сөзі) орналастыруға мүмкіндік беретін қолданба жасаңыз. Іске асыру үшін генераторды пайдаланыңыз кездейсоқ сандар Randomize және Random функциясы.

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

№3 тапсырма

ListBox ішінен геометриялық фигураның атын таңдауға және Image компонентінде таңдалған пішінді салуға мүмкіндік беретін қосымшаны жасаңыз. Фигураның түсі RadioGroup компонентінен таңдалады.

№4 тапсырма

PaintBox1 компонентін 4 тең бөлікке бөліңіз, әр бөлікті басқа түске бояңыз, мысалы: көк, сары, жасыл, қызыл.

PaintBox1 бағдарламасының әрбір бұрышының жанына сол бұрыштың координаталарын жазыңыз (PaintBox1 компоненті орналасқан пішіннің бастапқы нүктесіне қатысты).

№5 тапсырма

МЕН

Radiogroup1 компонентінен сызылатын пішін түрін, Radiogroup2 компонентінен бояу түсін таңдап, Image компонентінде таңдалған пішінді салыңыз.

№6 тапсырма

Пайдаланушыға PaintBox1 компонентінің өлшемдерін орнатуға мүмкіндік беретін қолданбаны жасаңыз (пиксельде).

PaintBox1 компонентін 2 тең бөлікке бөліңіз, әрбір бөліктің ішіне ColorDialog ішінде пайдаланушы таңдаған түспен толтырылған эллипс сызыңыз.

№7 тапсырма

МЕН Сізге мүмкіндік беретін қолданба жасаңыз:

ListBox ішінен геометриялық фигураның атын таңдап, Image компонентінде таңдалған фигураны сал. RadioGroup компонентінде Иә таңдалған болса, пішінді ColorDialog компонентінде пайдаланушы таңдаған түспен толтыру керек.

№8 тапсырма

Пайдаланушыға PaintBox1 компонентінің өлшемдерін орнатуға мүмкіндік беретін қолданбаны жасаңыз (пиксельде).

PaintBox1 компонентін 4 тең бөлікке бөліңіз, әр бөліктің ішіне әртүрлі геометриялық фигураны (эллипс, ромб, үшбұрыш және тіктөртбұрыш) салыңыз. Әрбір пішіннің түсін ColorGrid ішіндегі пайдаланушы таңдайды.

№9 тапсырма

ListBox ішінен геометриялық фигураның атын таңдаңыз
фигуралар (эллипс, ромб, тіктөртбұрыш) және сурет салу
Image компонентіндегі таңдалған пішін. Орналасқан жері
Image компонентіндегі пішіндер (I тоқсан, II тоқсан,

III немесе IV тоқсан) және фигураның түсі таңдалады
RadioGroup құрамдастарынан.

№10 тапсырма

Пайдаланушыға PaintBox1 компонентінің өлшемдерін орнатуға мүмкіндік беретін қолданбаны жасаңыз (пиксельде).

Бүйірлік өлшем мәтін болуы мүмкін емес, теріс сан болмауы және кіші пішін өлшемінен аспауын қамтамасыз етіңіз.

PaintBox1 компонентін 4 тең бөлікке бөліңіз, әрбір бөліктің ішіне Combobox-та пайдаланушы таңдаған геометриялық фигураны салыңыз (эллипс, ромб, үшбұрыш және тіктөртбұрыш). Суреттің түсін ColorBox ішіндегі пайдаланушы таңдайды.

№11 тапсырма

Сізге мүмкіндік беретін қолданба жасаңыз:

Radiogroup компонентінен сызбаның орнын таңдаңыз

тікбұрышты үшбұрыштың Image компонентінде орнатыңыз
фигураның көлеңкесінің түсі немесе контур түсі, байланысты
құсбелгі түймелерін қосу. арқылы түсті таңдаңыз
ColorGrid компоненті.

№12 тапсырма

Пайдаланушыға PaintBox1 компонентінің өлшемдерін орнатуға мүмкіндік беретін қолданбаны жасаңыз (пиксельде).

Бүйірлік өлшем мәтін болуы мүмкін емес, теріс сан болмауы және кіші пішін өлшемінен аспауын қамтамасыз етіңіз.

PaintBox1 компонентін 2 тең бөлікке бөліңіз, бөліктердің бірінің ішіне Combobox-та пайдаланушы таңдаған геометриялық фигураны салыңыз (эллипс, ромб, үшбұрыш және тіктөртбұрыш). Суреттің түсін ColorBox ішіндегі пайдаланушы таңдайды.

Мысалы, пішіннің түсін келесідей өзгертуге болады:

form1.Color:= ColorBox1.Colors;

№13 тапсырма

Сізге мүмкіндік беретін қолданба жасаңыз:

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

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

№14 тапсырма

Пайдаланушыға PaintBox1 компонентінің өлшемдерін орнатуға мүмкіндік беретін қолданбаны жасаңыз (пиксельде).

Бүйірлік өлшем мәтін болуы мүмкін емес, теріс сан болмауы және кіші пішін өлшемінен аспауын қамтамасыз етіңіз.

PaintBox1 компонентін 2 тең бөлікке бөліп, бір бөлігінің ішіне ромб, ал екінші бөлігінің ішіне кез келген үшбұрыш сызыңыз. Суреттің түсін ColorBox ішіндегі пайдаланушы таңдайды.

Мысалы, пішіннің түсін келесідей өзгертуге болады:

form1.Color:= ColorBox1.Colors;

№15 тапсырма

Сізге мүмкіндік беретін қолданба жасаңыз:

а) Image компонентінің өлшемдерін көлденең және тігінен пайдаланушы пернетақтадан енгізген санмен бірдей және тең етіп орнату;

(бүйірлік өлшем мәтін болуы мүмкін емес, теріс сан болмауы керек және пішіннің кішірек өлшемінен аспауы керек)

б) Image компонентін екі көк сызықпен 4 бірдей шаршыға бөлу;

в) әрбір алынған шаршының ішіне оған жазылған шеңберді сызыңыз (пайдаланушыға түстерді таңдау диалогтық терезесі арқылы шеңберлердің түсін таңдауға мүмкіндік беріңіз).

№16 тапсырма

Пайдаланушыға PaintBox1 компонентінің өлшемдерін орнатуға мүмкіндік беретін қолданбаны жасаңыз (пиксельде).

Бүйірлік өлшем мәтін болуы мүмкін емес, теріс сан болмауы және кіші пішін өлшемінен аспауын қамтамасыз етіңіз.

PaintBox1 компонентін 9 тең бөлікке бөліп, әрбір алынған шахмат тақтасының төртбұрышын бояңыз. Бояу түсін ColorBox ішіндегі пайдаланушы таңдайды.

Мысалы, пішіннің түсін келесідей өзгертуге болады:

form1.Color:= ColorBox1.Colors;

№17 тапсырма

Пішінге екі Image компонентін және төрт түймені орналастырыңыз: Сызық түсі, Бояу түсі, Ok және Шығу; және Edit компоненті.

OK түймешігін басқан кезде Image1-те X жағы бар шаршы, ал Image2-де әрқайсысының ұзындығы X болатын катеттері бірдей тікбұрышты үшбұрыш сызылады.

Үшбұрыштың төбесі Image2 бастауымен сәйкес келеді. Шаршы төбелерінің бірі Image1 бастауымен сәйкес келеді.

OK түймесі кескінді салу үшін сызық түсін және бояу түсін таңдаған кезде ғана қолжетімді болады.

X – Random функциясын пайдаланып кездейсоқ таңдайды және X мәні Edit компонентінде көрсетілуі керек.

№18 тапсырма

Пайдаланушыға PaintBox1 компонентінің өлшемдерін орнатуға мүмкіндік беретін қолданбаны жасаңыз (пиксельде).

PaintBox1 компонентін 4 тең бөлікке бөліңіз; пайдаланушы таңдаған бөліктің ішінде толтырылған шеңберді салу керек, оның өлшемін пайдаланушы белгілейді. Пайдаланушы ColorBox ішіндегі бояу түсін таңдайды.

Мысалы, пішіннің түсін келесідей өзгертуге болады:

form1.Color:= ColorBox1.Colors;

Графикалық ақпаратты бейнелеуге арналған компоненттер тізімі

Графикалық ақпаратты бейнелеу үшін Delphi кітапханасы компоненттерді ұсынады, олардың тізімі 4.1-кестеде келтірілген.

Кесте 4.1 Графикалық ақпаратты көрсету компоненттері Пиктограмма

Құрамдас

Бет

Сипаттама

Кескін

Графиктерді көрсету үшін қолданылады: белгішелер, нүктелік кескіндер және метафайлдар.


PaintBox (сурет салуға арналған терезе)

Пішінде сурет салуға болатын аумақты жасау үшін қолданылады.


DrawGrid (сызбалар кестесі)

Жолдар мен бағандарда мәтіндік емес деректерді көрсету үшін қолданылады.


Диаграмма (диаграммалар мен графиктер)

Компонент диаграммалар мен графиктерді құру үшін қолданылатын TChart компоненттер тобына жатады.


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

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

Кенеп - дайын кескіндерді салуға немесе көрсетуге болатын құрамдас бөлігінің аймағы. Ол Delphi графикасын айтарлықтай жеңілдететін қасиеттер мен әдістерді қамтиды. Жүйемен барлық күрделі өзара әрекеттесу пайдаланушы үшін жасырылған, сондықтан компьютерлік графикада мүлдем тәжірибесі жоқ адам Delphi-де сурет сала алады.

Контурдың әрбір нүктесінің координаттары бар XЖәне Ы. Кенеп координаттар жүйесі, Delphi-дің басқа жеріндегі сияқты, кенептің сол жақ жоғарғы бұрышында бастау алады. Координат Xсолдан оңға қарай жылжу кезінде артады және координат Ы- жоғарыдан төменге жылжытқанда. Координаталар пикселдермен өлшенеді. Пиксель - дизайн бетінің өңдеуге болатын ең кіші элементі. Пиксельдің ең маңызды қасиеті оның түсі.

Кенептің қасиеті бар Пиксельдер. Бұл сипат кенептің түстеріне жауап беретін екі өлшемді массив болып табылады. Мысалы, Кенеп. Пиксельдерсол жақтан 10-шы және жоғарыдан 20-шы пиксельдің түсіне сәйкес келеді. Сіз пикселдер жиымын кез келген сипат сияқты өңдей аласыз: пикселге жаңа мән беру арқылы түсін өзгертіңіз немесе оның түсін онда сақталған мәннен анықтаңыз. Мысалы, Кенеп. Пиксельдер:=0немесе Кенеп. Пикселдер:=clҚара- бұл пикселді қара түске орнату.

Меншік Пиксельдеркенепте сурет салу үшін пайдалануға болады. Пішіннің контурына синусоидтың пиксель бойынша графигін салуға тырысайық. Мұны істеу үшін пішін оқиғасының өңдегішінде OnPaint(сызба) келесі кодты енгізуге болады:

TForm1. FormPaint(Жіберуші: TObject);

var,Y:нақты; // функция координаталары,PY: longint; // пиксель координаттары

БАСТА:=clWhite;

үшін PX:=0 дейін ClientWidth істеу

(X – график аргументі,

:=PX*4*Pi/ClientWidth;:=Sin(X);

(PY - пиксель координаты,

: =trunc (ClientHeight - (Y+1) *ClientHeight/2);

(Таңдалғанның түсін орнатады

пиксел (жарықтық туралы). Пиксельдер: = 0;

Соңы;

Осы сынақ қолданбасын іске қосыңыз және сіз 4.1 а суретте көрсетілген нәтижені көресіз. Синус толқынының графигі өте жақсы болмаса да, шықты, өйткені жеке нүктелерге – пикселдерге бөлінеді.

Кенеп – класс объектісі TCanvasқасиетін пайдаланып графиктерді, сызықтарды, фигураларды салуға мүмкіндік беретін көптеген әдістері бар Қалам- қауырсын. Бұл қасиет объект болып табылады, ол өз кезегінде бірқатар қасиеттерге ие. Олардың бірі - сіз бұрыннан білетін мүлік Түс- сызба қолданылатын түс. Екінші қасиет - Ені(сызық ені). Ені пикселдерде көрсетілген. Әдепкі ені 1.

Меншік Стильсызықтың түрін анықтайды. Бұл сипат келесі мәндерді қабылдай алады:

Кенептің қасиеті бар PenPosтүрі TPoint(см .). Бұл сипат қаламның кенеп координаттарындағы ағымдағы орнын анықтайды. Қаламды сызықсыз жылжыту, т.б. өзгерту PenPos, кенеп әдісімен өндірілген Жылжыту(X,Y).Мұнда ( X, Y) -қалам қозғалатын нүктенің координаталары. Бұл ағымдағы нүкте бастапқы нүктеге айналады, одан әдіс LineTo(X,Y)координаттары бар нүктеге түзу жүргізуге болады ( X,Y).Бұл жағдайда ағымдағы нүкте жолдың соңғы нүктесіне және жаңа қоңырауға жылжиды LineToосы жаңа ағымдағы нүктеден нүкте салады.

Алдыңғы мысалдағы синус графигін қаламмен салып көрейік. Бұл жағдайда пішін оқиғасының өңдегіші OnPaintсияқты көрінуі мүмкін:

процедура TForm1. FormPaint(Жіберуші: TObject);

var,Y:нақты; // функция координаталары,PY: longint; // пиксель координаттары

БАСТА: =clWhite;. MoveTo(0,ClientHeight div 2);

үшін PX: =0 дейін ClientWidth істеу

(X – график аргументі,

РХ координатасы бар пикселге сәйкес келеді):=PX*4*Pi/ClientWidth;:=Sin(X);

(PY - пиксель координаты,

Y координатасына сәйкес):=trunc(ClientHeight - (Y+1) *ClientHeight/2);

(Графикте сызық сызылған). LineTo(PX,PY);

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

Қалам тек түзу сызықтарды ғана емес, фигураларды да сала алады. Қаламды пайдаланатын кенеп әдістерінің толық тізімін Delphi кірістірілген анықтамасынан қараңыз. Әзірге мысал ретінде олардың біреуін ғана келтіреміз - Эллипс, ол эллипс немесе шеңбер салады. ретінде жарияланады

процедураЭллипс(X1, Y1, X2, Y2: бүтін сан);

параметрлері қайда X1, X2, Y1, Y2эллипсті немесе шеңберді сипаттайтын тіктөртбұрыштың координаталарын анықтау. Мысалы, оператор

Эллипс(10, 40, 20, 50);

диаметрі 10 және центрі координаталары (15, 45) болатын шеңбер сызады.

Жалпы жағдайда фигуралар бос емес, canvas қасиеті арқылы толтырылады Щетка- щетка. Меншік Щеткаөз кезегінде бірқатар қасиеттерге ие объект болып табылады. Меншік Түстолтыру түсін анықтайды. Меншік Стильтолтыру үлгісін (көлеңкелеуді) анықтайды. Әдепкі мән Стильтең bsSolid, бұл тұтас бояуды білдіреді Түс.

Қаламда ҚаламБіз әлі қарастырмаған тағы бір мүлік бар. Бұл қасиет Режим(режим). Әдепкі мән Режим = pmCopy. Бұл сызықтар сипаттамада көрсетілген түспен сызылғанын білдіреді Түс. Бірақ басқа режимдер де мүмкін, оларда тек түс ескерілмейді Түс, сонымен қатар сәйкес фон пикселдерінің түсі. Бұл режимдердің ең қызықтысы pmNotXor- кері эксклюзивті НЕМЕСЕ арқылы фондық қосу. Егер бұл режим орнатылса, кенептің сол жерінде сол фигураны қайтадан салу бұрын салынған кескінді жояды және фигураның бірінші кескініне дейін болған пиксельдік түстерді қалпына келтіреді.

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

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

X,Y: бүтін;

Бұл жаһандық айнымалыларды енгізеді XЖәне Ы- ағымдағы кескін координаталары.

Пішін оқиғасында OnPaintмәлімдемелерді енгізу

Щетка. Түс:=clWhite;:=clWhite;. Қалам. Режим:=pmNotXor;

Осы операторлардың біріншісі қылқалам түсін ақ етіп орнатады Щетка. Бұл сіздің шеңберіңіздің іші ақ түске боялатынын білдіреді. Екінші оператор пішін бетінің өң түсін ақ етіп орнатады.

Үшінші оператор қалам режимін орнатады pmNotXor, бұл жаңа сурет салмас бұрын ескі суретті өшіруге мүмкіндік береді.

Тіпті ең қарапайым анимация синхрондауды қажет етеді. Әйтпесе, қозғалыс жылдамдығы компьютердің жылдамдығымен анықталады. Сондықтан компонентті пішінге көшіріңіз Таймер- Жүйе бетінен таймер. Бұл компонент 5.7 бөлімінде сипатталған .

Сіз оны сол жерден көре аласыз толық сипаттама. Әзірге оның сипатын орнатыңыз Интервалтең, мысалы, 30 (бұл миллисекундтағы экспозиция уақыты, бірақ шынайы уақытысырма жылдамдығы ұзағырақ болады - 5.7 бөлімін қараңыз) және сипатты орнатыңыз Қосылғантең жалған(бұл қолданба іске қосылған кезде таймер автоматты түрде қосылмайды дегенді білдіреді).

Осы компоненттің оқиға өңдегішінде OnTimerмәлімдемелерді енгізу

// Алдыңғы суретті өшіру. Эллипс (X-5, Y, X+5, Y-1Q);(X);

// Жаңа сурет салу. Эллипс (X-5, Y, X+5, Y-10);

// Пішіннің соңына жеткенде тоқтатыңыз

егер(X >= ClientWidth-20) содан кейін. Қосылған: = жалған;

Осы операторлардың біріншісі бұрын сызылған жерде шеңбер сызады, яғни. алдыңғы суретті өшіреді.

Соңғы оператор кескінді пішіннің шетінде тоқтатады.

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

X: =10;: =100;. Эллипс (X-5, Y, X+5, Y-10); Қосылған: =true;

Алғашқы екі оператор шеңбердің бастапқы координаталарын көрсетеді. Үшінші оператор шеңберді бастапқы орнында салады, ал төртінші оператор таймерді іске қосады.

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

Кенеп тек программалық түрде жасалған кескіндерді ғана емес, сонымен қатар графикалық файлдарда сақталған кескіндерді де көрсете алады. Тек кенептің өзінде файлдан суретті жүктеу әдісі жоқ. Сондықтан файлды графикалық файлдардан ақпаратты қабылдай алатын басқа графикалық объектіге жүктеу керек. Содан кейін кенеп әдісі арқылы осы нысандағы кескінді кенепке қайта жазыңыз Сурет салу. Оның сипаттамасы:

Draw(X, Y: Integer; Graphic: TGraphic);

Міне, параметрлер XЖәне Ыкенепте суретті орналастырудың жоғарғы сол жақ бұрышының координаталарын анықтау, а Графика- ақпаратты сақтайтын объект. Мұндай объект, мысалы, типті объект болуы мүмкін TBitMap, бит матрицаларын сақтауға арналған. Мұның бәрі іс жүзінде қалай көрінетінін көрейік.

Жаңа қолданбаны ашыңыз, компонентті пішінге сүйреңіз OpenPictureDialogДиалогтар бетінен (бұл графикалық файлдарды ашуға арналған диалогтың құрамдас бөлігі – 8.2. бөлімін қараңыз ) және түймешігін басыңыз Түйме. Орын OpenPictureDialogпішіннің кез келген жерінде, себебі бұл компонент визуалды емес және түймені пішіннің төменгі жағына қойыңыз. Түймені басу өңдегішіне келесі кодты қосыңыз:

процедура TForm1. Button1Click(Жіберуші: TObject);

var: TBitMap;

// Пайдаланушы таңдауы графикалық файл

егер OpenPictureDialog1. Орындау содан кейін

// TBitMap типті BitMap нысанын жасаңыз: =TBitMap. Жасау;

// Кескінді пішін кенепіне тасымалдау. Draw(10, 10, BitMap);

// BitMap нысанын жою. Тегін;

Соңы;

Бұл код түрдегі уақытша нысанды жасайды TBitMapАтымен BitMap. Содан кейін графикалық файлды ашу диалогы шақырылады OpenPictureDialog1және, егер пайдаланушы файлды таңдаған болса, ол жүктеледі BitMapәдіс LoadFromFile. Содан кейін әдісті қолданыңыз Сурет салужүктелген сурет сол жақ жоғарғы бұрыштың координаталары бар аймақтағы кенепке көшіріледі (10,10). Осыдан кейін уақытша нысан BitMapжойылады.

Қолданбаны іске қосыңыз және оның түймесін басыңыз. Сіз графикалық файлдың кез келген түрін жүктей алатыныңызды көресіз. bmpжәне ол пішіннің контурында көрсетіледі (4.2 а-суретті қараңыз). Графикалық файлдарды Images каталогынан табуға болады. Delphi 5 және 4-те ол әдетте каталогта орналасады. \бағдарлама файлдары\Common Files\Borland Shared. Delphi 3-те ол каталогта орналасқан. \program files\Borland\Delphi 3, ал Delphi 1-де - Delphi 16 каталогында. Images каталогында, атап айтқанда, суреттегі мысалда жүктелген файлды сақтайтын \Images\Splash\16Color\ ішкі каталогы бар. 4.2

Сіз графикалық файлдарды көру үшін жақсы қосымшаны жасадыңыз. Бірақ енді оның басты кемшілігін көруге тырысайық. Қолданбаңызды жаппай, басқа бағдарламаға өтіңіз, мысалы, Delphi-ге оралыңыз. Содан кейін ештеңе жасамай, іске қосылған қолданбаға оралыңыз. Егер сіз кірген бағдарлама терезесі қолданбаңыздың терезесін толығымен жауып тастаса, оған оралған кезде терезедегі суреттің жоғалып кеткенін көресіз. Қолданба терезесі тек ішінара қабаттасса, қолданбаға қайтып оралғанда, 4.2 b-суретте көрсетілгенге ұқсас нәтижені көре аласыз.

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

Терезе бітеліп, кескін бүлінген болса, операциялық жүйе қолданбаға ортада бірдеңе өзгергенін және қолданба тиісті әрекетті орындауы керектігін хабарлайды. Терезе жаңартуы қажет болған кезде ол үшін оқиға жасалады OnPaint. Осы оқиғаны өңдеушіде (біздің жағдайда пішін оқиғасы) кескінді қайта салу керек.

Қайта сызуға болады әртүрлі жолдарқолданбаға байланысты. Біздің мысалда айнымалыны жариялауға болады BitMap(оператор var BitMap: TBitMap) жоғарыдағы процедурадан тыс, яғни. бұл айнымалыны тікелей бөлімге орналастыру арқылы жаһандық етіңіз жүзеге асыру. Оператор BitMap. Тегінпішін оқиғасының өңдеушісіне жылжытуға болады OnDestroy, ол қолданба жабылған кезде пайда болады. Содан кейін қолданбаңыздың бүкіл орындалуы кезінде сізде компоненттегі кескіннің көшірмесі болады BitMapжәне сіз жай ғана оқиға өңдегішіне кіруіңіз керек OnPaintформада бір ғана оператор бар:

Draw(10, 10, BitMap);

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

Қарастырылған әдіске қосымша Сурет салуконтурда көшіру әдісі де бар CopyRect:

CopyRect(Dest: TRect; Кенеп: TCanvas; Дереккөз: TRect);

Әдіс көрсетілген параметрді көшіреді Дереккөзкескін көзінің кенептегі кескін аймағы Кенепкөрсетілген параметрге Тағайындаубұл кенептің ауданы. Түр TRect, тікбұрышты аумақтарды сипаттайтын ДереккөзЖәне Тағайындау, 3.2 бөлімінде сипатталған .

Мысалы, оператор

CopyRect(MyRect2, Растрлық кескін. Canvas, MyRect1);

аймақтағы пішін контурына көшіреді MyRect2аймақтан алынған сурет MyRect1құрамдас кенеп Растрлық кескін.

Көшіру әдісі CopyRectқасиетімен көрсетілген режимде орындалады Көшіру режимі. Әдепкі бойынша бұл сипаттың мәні бар cmSrcCopy, бұл жай ғана аумақта бұрын қамтылған кескінді ауыстыруды білдіреді Тағайындау, көшірілген кескінге. Басқа мүмкін мәндер Көшіру режимісуреттерді біріктіруге мүмкіндік береді, бірақ оларды қарастыру бұл кітаптың ауқымынан тыс.

Біз кенепте графикалық ақпаратты көрсету туралы осы негізгі ақпаратпен шектелеміз. 3.2 бөлімінде мәтінді контурға шығару туралы ақпарат берілді. Жалпы алғанда, кенеп - бұл күрделі объект, оның көптеген қасиеттері мен әдістері бар. Бірақ бұл кітаптың ауқымынан тыс кеңейтілген талқылауды қажет етеді. Delphi туралы барлығы сериясының келесі кітабы осы мәселелерді толығырақ қарастырады.

Сипатқа ие терезе құрамдас бөлігі Кенеп- кенеп.

Image және PaintBox компоненттері

Құрамдас бөліктер КескінЖәне PaintBox 4.2 бөлімінде сипатталғандай кескіндерді жазуға болатын кенеппен кейбір шектеулі бетті білдіреді . Бұл жағдайда компонент PaintBox, қатаң айтқанда, кенепте пішінді салумен салыстырғанда жаңа ештеңе бермейді. Сурет салу PaintBoxпішіннің орнына оның ешқандай артықшылығы жоқ, мүмкін, терезе аймағында бір немесе бірнеше сызбаларды орналастырудағы кейбір рельефтерден басқа.

Бірақ бұл мүмкіндіктерге қосымша құрамдас КескінЖұмыс істеуге мүмкіндік беретін қасиеттер бар әртүрлі түрлеріграфикалық файлдар.Файлдардың үш түрін қолдайды – биттік матрицалар, белгішелер және метафайлдар. Барлық үш файл түрі кескіндерді сақтайды; айырмашылық тек файлдардың ішінде сақталу тәсілінде және оларға қол жеткізу құралдарында. Бит матрицасы (кеңейтімі бар файл . bmp) кескіндегі әрбір пикселдің түсін көрсетеді. Бұл жағдайда ақпарат кез келген компьютер оның конфигурациясына сәйкес келетін ажыратымдылығы мен түстер саны бар кескінді көрсете алатындай етіп сақталады.

Пиктограммалар (кеңейтімі бар файлдар . ico) кіші разрядты матрицалар. Олар әдетте қолданба белгішелерін жылдам түймелерде, мәзір элементтерінде, ішінде көрсету үшін қолданылады әртүрлі тізімдер. Белгішелерде кескіндерді сақтау әдісі ақпаратты биттік матрицаларда сақтауға ұқсас, бірақ айырмашылықтары да бар. Атап айтқанда, белгішені масштабтау мүмкін емес, ол жасалған өлшемде қалады.

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

Құрамдас Кескінбарлық көрсетілген түрдегі графикалық файлдардағы ақпаратты көрсетуге мүмкіндік береді. Бұған оның қасиеті арқылы қол жеткізіледі Сурет- нысанды теріңіз Сурет.

4.3-суретСурет редакторының терезесі


Бұл сипатпен танысу үшін жаңа қолданбаны ашып, пішінге компонентті сүйреңіз Кескін. Оны созыңыз немесе оның қасиетін орнатыңыз Туралаутең alClientол пішіннің бүкіл клиенттік аймағын алады. Сипаттың жанындағы эллипсі бар түймені басыңыз СуретОбъект инспекторы терезесінде немесе жай ғана екі рет басыңыз Кескін. Сіздің алдыңызда «Сурет редакторы» терезесі ашылады (4.3-сурет), сипатқа жүктеуге мүмкіндік береді. Суреткейбір графикалық файлды (Жүктеу түймесі), сонымен қатар сақтаңыз файлды ашыңызжаңа атпен немесе жаңа каталогта. Графикалық файлды жүктеу үшін Жүктеу түймесін басыңыз. Сіз графикалық файлды ашуға арналған терезені көресіз, 4.4-суретте көрсетілген. Графикалық файлдар тізімінде курсорды жылжытқанда оң жақ терезеде олардағы суреттер көрсетіледі, ал олардың үстінде суреттің өлшемін сипаттайтын сандар орналасқан. . Қажетті графикалық файлдың кез келген түрін таңдауға болады. Естеріңізге сала кетейік, Delphi-мен қамтамасыз етілген графикалық файлдарды Images каталогынан табуға болады. Delphi 5 және 4-те ол әдетте каталогта орналасады. \бағдарлама файлдары\Common Files\Borland Shared. Delphi 3-те ол каталогта орналасқан. \program files\Borland\Delphi 3, ал Delphi 1-де - Delphi 16 каталогында.Файл жүктелгеннен кейін Picture Editor терезесінде және өз компонентіңізде OK түймесін басыңыз. КескінСіз таңдаған сурет көрсетіледі. Сіз өзіңіздің қолданбаңызды іске қосып, оны таңдай аласыз. Дегенмен, сіз тіпті қолданбаны іске қоспай-ақ суретті көресіз.

Дизайн процесінде файлдан суретті құрамдас бөлікке жүктегенде Кескін, ол оны көрсетіп қана қоймай, қолданбада сақтайды. Бұл қолданбаны бөлек графикалық файлсыз жеткізу мүмкіндігін береді. Алайда, кейінірек көретініміздей, в КескінСондай-ақ, қолданба жұмыс істеп тұрған кезде сыртқы графикалық файлдарды жүктеуге болады.

Компонент қасиеттерін қарастыруға оралайық Кескін.

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

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

Мүлік - Орталық, күйіне орнатыңыз рас, кескінді аймақтың ортасына қояды Кескін, құрамдас өлшемі сурет өлшемінен үлкенірек болса.

Тағы бір мүлікті қарастырайық - Мөлдір(мөлдірлік). Егер Мөлдіртең рас, содан кейін ішіндегі сурет Кескінмөлдір болады. Бұл кескіндерді бір-бірінің үстіне қою үшін пайдаланылуы мүмкін. Екінші компонентті пішінге орналастырыңыз Кескінжәне оған басқа суретті жүктеңіз. Тек аз толтырылған, контурлы суретті түсіріп көріңіз. Мысалы, әдетте түймелерде орналастырылғандардың ішінен суретке түсіруге болады, мысалы, көрсеткі (file.\program files\common files\borland shared\images\buttons\arrow1l. bmp). Өзіңізді жылжытыңыз Кескінолар бір-бірімен қабаттасатындай және жоғарғы құрамдас жиынтықта Мөлдіртең рас. Жоғарғы сурет енді астыңғы суретті жасырмайтынын көресіз. Бұл сипатты қолданудың мүмкін түрлерінің бірі биттік матрица түрінде жасалған суреттегі жазуларды қабаттастыру болып табылады. Бұл жазуларды Delphi-ге енгізілген Image Editor бағдарламасы арқылы жасауға болады.

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

Біз дизайн процесінде файлдан суретті жүктеуді қарастырдық. Бірақ мүлік СуретОл сонымен қатар қолданбаны орындау кезінде кез келген түрдегі графикалық файлдармен алмасуды ұйымдастыруды жеңілдетеді. Мұндай алмасудың техникасын түсіндіру үшін алдымен мүлікті толығырақ қарастыру керек Сурет.

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

Объект Суретжәне оның қасиеттері Растрлық кескін, Белгіше, МетафайлЖәне Графикафайлды оқу және жазу әдістері бар LoadFromFileЖәне SaveToFile:

процедура LoadFromFile( constФайл атауы: жол);

процедура SaveToFile( constФайл атауы: жол);

Меншіктер үшін Сурет. Растрлық кескін, Сурет. БелгішеЖәне Сурет. МетафайлФайл пішімі объект класына сәйкес болуы керек: разрядтық матрица, белгіше, метафайл. Сипатқа файлды оқу кезінде Сурет. Графикафайл метафайл пішімінде болуы керек. Ал объектінің өзі үшін СуретОқу және жазу әдістері файл түріне автоматты түрде реттеледі. Мұны мысалмен түсіндірейік.

4.2 бөлімінде қарастырылған графикалық файлдарды қарау мысалына ұқсас қосымшаны құрастырайық. Әртүрлілік үшін оны түймеден басқа нәрсе арқылы басқаруға болады Түйме, және мәзір. Пішінге компонентті орналастырыңыз Кескін. Оны созыңыз немесе оның қасиетін орнатыңыз Туралаутең alClientол пішіннің бүкіл клиенттік аймағын алады. Графикалық файлды ашу диалогының құрамдас бөлігін пішінге апарыңыз OpenPictureDialog(8.2 бөлімін қараңыз ). Пішінге негізгі мәзір компонентін де орналастырыңыз Негізгі мәзір(6.1 бөлімін қараңыз ) және оған бір бөлімді орнатыңыз - Файл. Осы бөлімнің өңдегішінде мәлімдемені жазыңыз

(OpenPictureDialog1.Execute) содан кейін. Сурет. LoadFromFile(.FileName);

Бұл оператор графикалық файлды ашу үшін диалогты шақырады (4.4-суретті қараңыз) және оны компонентке жүктейді. Кескін 1пайдаланушы таңдаған файлдан сурет (4.5-суретті қараңыз). Сонымен қатар, файл кез келген типті болуы мүмкін: разрядтық матрица, белгіше немесе метафайл.

4.5-суретКомпоненттегі кескін Кескінбит матрицасы (a) және пиктограмма (6)



Бұл қолданбада әдіс LoadFromFileқолданылады Кескін 1. Сурет. Егер тек разрядтық матрицалық файлдар ашылатын болса, онда файлды жүктеу операторын ауыстыруға болады

Сурет. Растрлық кескін LoadFromFile(.FileName);

Пиктограммалар үшін операторды пайдалануға болады. Сурет. Белгіше. LoadFromFile(.FileName);

ал метафайлдар үшін – оператор. Сурет. Метафайл. LoadFromFile(.FileName);

немесе. Сурет. Графика. LoadFromFile(.FileName);

Бірақ барлық осы жағдайларда, егер файл пішімі жоспарланғанға сәйкес келмесе, қате пайда болады. Әдіс ұқсас жұмыс істейді SaveToFileқолданылатын айырмашылықпен Суретнемесе Сурет. Графикаол файлда кез келген форматтағы кескінді сақтайды. Мысалы, қолданбаңызды диалогтық терезе арқылы кеңейтсеңіз SavePictureDialog(8.2 бөлімін қараңыз ), мәзірдегі Басқаша сақтау бөлімін енгізіңіз және операторды оның өңдегішіне орналастырыңыз

SavePictureDialog1. Орындау содан кейін. Сурет. SaveToFile(SavePictureDialog1. FileName);

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

Сақтау операторын ауыстырсаңыз, бағдарлама кез келген форматтағы кескіндер үшін мүлдем бірдей жұмыс істейді

Сурет. Графика. SaveToFile(.FileName);

мүлікті пайдалану Сурет. Графика. Ал құрамдас бөлікте сақталғанның пішімін білсеңіз Кескінкескіндер, содан кейін әдісті қолдануға болады SaveToFileқасиеттерге Сурет. Растрлық кескін, Сурет. БелгішеЖәне Сурет. Метафайл.

Барлық қарастырылатын объектілер үшін Сурет, Сурет. Растрлық кескін, Сурет. БелгішеЖәне Сурет. Метафайлобъект мәндерін тағайындау әдістері анықталған:

Assign(Дереккөз: TPersistent);

Дегенмен, үшін BitMap, БелгішеЖәне МетафайлСіз тек біртекті нысандардың мәндерін тағайындай аласыз: сәйкесінше, биттік матрицалар, белгішелер, метафайлдар. Біртекті емес нысандарға мәндерді тағайындау әрекеті кезінде ерекшелік тасталады EConvertError. Объект Сурет- әмбебап, оған қалған үш класстың кез келгенінің объектілерінің мәндерін беруге болады. Және мағынасы Суреттүрі онда сақталған нысанның түріне сәйкес келетін нысанға ғана тағайындалуы мүмкін.

Әдіс Тағайындауаралық сақтағыш буферімен кескіндерді алмасу үшін де пайдалануға болады. Мысалы, оператор

Assign(Image1.Picture);

алмасу буферінде сақталған кескінді алмасу буферіне сақтайды Кескін 1. Ұқсас оператор

графикалық delphi кескін қолданбасы

Кескін 1. Сурет. Тағайындау (айырбастың буфері);

ішінде оқыңыз Кескін 1алмасу буферіндегі сурет. Сонымен қатар, бұл кез келген сурет және тіпті мәтін болуы мүмкін.

Операторға қою үшін алмасу буферімен жұмыс істегенде есте сақтау қажет пайдаланадымодульдің модульге сілтемесі Clipbrd. Delphi бұл сілтемені автоматты түрде енгізбейді.

Компонент қасиеттеріне оралу Кескін, біз 4.5-суретте көрсетілген сынақ қолданбасына тән бір кемшілікті атап өтуге болады. Әртүрлі кескіндерді жүктеген кезде қолданба терезесінің өлшемі не тым кішкентай болуы мүмкін, содан кейін суреттің бір бөлігін ғана көресіз немесе тым үлкен, және содан кейін кескін пішіннің жоғарғы сол жақ бұрышына тартымсыз орналастырылады және көп бос орын қалдырады. Бұл кемшілік қасиеттерді пайдалану арқылы жойылуы мүмкін Биіктігі(биіктігі) және Ені(ені) компоненті Кескін. Меншікпен Автоөлшеморнатылған расөлшемдері Кескінжүктеп салынған кескінмен бірдей өлшемге автоматты түрде орнатылады. Және бұл өлшемдерді сәйкес пішіннің өлшемін өзгерту үшін пайдалануға болады. Мысалы, файлдан суретті жүктеуге арналған бұрынғы кодты келесімен ауыстыруға болады:

OpenPictureDialog1. Орындау содан кейін

БАСТА. Сурет. LoadFromFile(.FileName); ClientHeight: = Image1. Биіктігі+10;. Жоғарғы:=1-форма. ClientRect. Жоғарғы

+ (Form1. ClientHeight - Image1. Height) div 2;. ClientWidth:=Image1. Ені+10;. Сол жақ: = Пішін1. ClientRect. Сол

+ (Form1. ClientWidth - Image1. Width) div 2;

Соңы;

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

Пішін компоненті

Құрамдас Пішінграфикалық ақпаратты көрсету құралы ретінде шартты түрде ғана жіктелуі мүмкін, өйткені ол жай ғана сәйкес көлеңкеленген әртүрлі геометриялық фигураларды бейнелейді. Бұл компоненттің негізгі қасиеті Пішін(форма), ол келесі мәндерді қабылдай алады:

Бұл формалардың мысалдары 4.7-суретте көрсетілген

4.7-суретҚұрамдас мысалдар Пішін


Компоненттің тағы бір маңызды қасиеті Щетка(щетка). Бұл сипат типті объект болып табылады Туберкулез, оның бірқатар ішкі қасиеттері бар, атап айтқанда: түсті ( Щетка. Түс) және стиль ( Щетка. Стиль) пішінді толтырыңыз. Кейбір мәндерде толтыру Стиль 4.7-суретте компоненттің нақты қасиеттерінің үшінші бөлігін көруге болады Пішін - Қалам(қалам) сызық стилін анықтайтын. Бұл мүлік меншік сияқты Щетка, 4.2 бөлімінде талқыланған . Осы сипаттар туралы анықтамалық деректерді 10* тараудан таба аласыз.

Диаграмма құрамдас бөлігі

Енді компонентті қарастырайық Диаграмма. Бұл компонент өте әсерлі көрінетін әртүрлі диаграммалар мен графиктерді құруға мүмкіндік береді (4.8-сурет). Құрамдас Диаграммакөптеген қасиеттерге, әдістерге, оқиғаларға ие, сондықтан олардың барлығын қарастыратын болсақ, бұған тұтас бір тарауды арнауға тура келеді. Сондықтан біз тек негізгі сипаттамаларды қарастырумен шектелеміз Диаграмма. Қалғанын Delphi-дің кірістірілген анықтамасынан таба аласыз немесе диаграммалармен тәжірибе жасап көріңіз.

Құрамдас Диаграммаобъектілердің контейнері болып табылады Сериялартүрі TChartSeries- әртүрлі көрсету мәнерлерімен сипатталатын деректер қатары. Әрбір компонент бірнеше серияны қамтуы мүмкін. Егер сіз графикті көрсеткіңіз келсе, онда әрбір қатар графиктегі бір қисыққа сәйкес болады. Диаграммаларды көрсеткіңіз келсе, диаграммалардың кейбір түрлері үшін сізде бір-бірінің үстіне бірнеше түрлі сериялар болуы мүмкін, басқалары үшін (дөңгелек диаграммалар сияқты) ол ұсқынсыз болып көрінуі мүмкін. Дегенмен, бұл жағдайда да бір құрамдас үшін орнатуға болады Диаграммаәртүрлі диаграмма түрлерімен бірдей деректердің бірнеше сериясы. Содан кейін олардың біреуін әр уақытта белсенді ету арқылы пайдаланушыға оларды қызықтыратын деректерді көрсететін диаграмма түрін таңдау мүмкіндігін бере аласыз.

Бір немесе екі құрамдас бөлікті (егер сіз 4.8-суретті қайта жасағыңыз келсе) орналастырыңыз Диаграммапішінде және нысан инспекторында ашылатын сипаттарды қараңыз. Міне, олардың кейбіреулері туралы кейбір түсініктемелер.

Пайдаланушы тінтуірдің оң жақ түймешігін басу арқылы орындау кезінде графиктің байқалған бөлігін айналдыра алатынын анықтайды. Мүмкін мәндер: pmNone – айналдыруға тыйым салынады, pmКөлденең, pmVertical немесе pmBoth – сәйкесінше тек көлденең бағытта, тек тік бағытта немесе екі бағытта да айналдыруға рұқсат етіледі.

Пайдаланушыға орындау кезінде кескін масштабын өзгертуге, тінтуір курсорымен диаграмманың немесе графиктің фрагменттерін кесуге мүмкіндік береді (төмендегі 4.8 б-суретте толығымен 4.8 а-суретте берілген графиктің фрагментін қарау сәті көрсетілген).

Диаграмманың тақырыбын анықтайды.

Диаграмма үшін белгіні анықтайды. Әдепкі бойынша ешқайсысы. Қолтаңба мәтіні Text ішкі қасиеті арқылы анықталады.

Диаграмманың айналасындағы шекараны анықтайды.

Диаграмманың легендасы - символдар тізімі.

MarginLeft, MarginRight, MarginTop, MarginBottom

Сол, оң, жоғарғы және төменгі жиектер мәндері.

Төменгі ось, сол жақ ось, оң ось

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

Сол жақ қабырға, төменгі қабырға, артқы қабырға

Бұл қасиеттер сәйкесінше графиктің үш өлшемді дисплей аймағының сол жақ, төменгі және артқы жиектерінің сипаттамаларын анықтайды (4.8 а-суретті қараңыз, төменгі график).

Компонентте көрсетілген деректер қатарларының тізімі.

3D диаграмма дисплейін қосады немесе өшіреді.

Үш өлшемді дисплейдің сипаттамалары.

Үш өлшемді масштаб (4.8-сурет үшін бұл диаграмманың қалыңдығы және график жолақтарының ені).


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

4.8-суретте көрсетілген қолданбаны көшіріп көргіңіз келсе, жоғарғы компонентті екі рет басыңыз Диаграмма. Сіз Диаграмма редакторының терезесіне (4.9-сурет) бірнеше қойындысы бар Диаграмма бетіне өтесіз. Ең алдымен, сізді ондағы Сериялар қойындысы қызықтырады. «Қосу» түймесін басыңыз - серияны қосыңыз. Сіз диаграмма немесе график түрін таңдауға болатын терезеге өтесіз (4.10-сурет). Бұл жағдайда Pie - дөңгелек диаграмманы таңдаңыз. «Тақырыптар» қойындысын пайдаланып, диаграмма тақырыбын орнатуға болады, «Мәндік белгілер» қойындысы диаграмманың таңбашасын (таңбалар тізімі) көрсету үшін параметрлерді орнатуға немесе оны экраннан мүлдем алып тастауға мүмкіндік береді, «Панель» қойындысы тақтаның сыртқы түрін анықтайды. 3D қойындысы диаграмманың сыртқы түрін өзгертуге мүмкіндік береді: көлбеу, жылжу, қалыңдық, т.б.

Диаграмма өңдегішінде жұмыс істеп, диаграмма түрін таңдаған кезде, құрамдас бөліктер ДиаграммаСіздің пішініңіз оның сыртқы түрін оған енгізілген шартты деректермен көрсетеді (4.11-суретті қараңыз).

4.10-суретДиаграмма өңдегішінде диаграмма түрін таңдау


Сондықтан, сіз өзіңіздің қолданбаңызға әртүрлі опцияларды қолданудың нәтижесін бірден көре аласыз, бұл өте ыңғайлы.

Бірнеше қойындылары бар Сериялар беті сериялар үшін қосымша көрсету опцияларын таңдау мүмкіндігін береді. Атап айтқанда, «Пішім» қойындысындағы дөңгелек диаграмма үшін «Дөңгелектелген дөңгелек» опциясын қосу пайдалы, ол компоненттің кез келген өлшемінде, Диаграммадиаграмманы шеңбер түрінде көрсетіңіз. Белгілер қойындысында Стиль тобының түймелері диаграмманың жеке сегменттеріне қатысты белгілерде не жазылатынын анықтайды: Мән - мән, Пайыз - пайыздар, Белгі - деректер атаулары және т.б. 4.8-суреттегі мысалда «Пайыз» түймесі қосылған, ал «Жалпы» қойындысында тек бүтін мәндер көрсетілетінін қамтамасыз ету үшін пайыз үлгісі орнатылған.

Қаласаңыз, осы компонентке қосуға болады ДиаграммаДиаграмма бетіндегі Сериялар қойындысындағы Клондау түймешігін басу арқылы басқа бірдей қатарды таңдаңыз, содан кейін осы жаңа серия үшін Өзгерту түймесін басып, басқа диаграмма түрін, мысалы, Жолақты таңдау арқылы. Әрине екі әртүрлі түрлерібір суреттегі диаграммалар нашар көрінеді. Бірақ сіз Сериялар қойындысында осы жаңа серияның индикаторын өшіре аласыз, содан кейін пайдаланушыға диаграмма дисплейінің бір немесе басқа түрін таңдауға рұқсат етіңіз (бұл қалай жасалатынын төменде көрсетеміз).

Диаграмма өңдегішінен шығыңыз, қолданбаңыздағы төменгі компонентті таңдаңыз Диаграммажәне Диаграмма өңдегіші арқылы ол үшін орнату сипаттарын қайталаңыз. Бұл жағдайда графикте екі қисықты көрсеткіңіз келсе, екі қатарды көрсету керек және Сызық диаграмма түрін таңдаңыз. Біз графиктер туралы айтып отырғандықтан, осьтердің координаталық сипаттамаларын және графиктің үш өлшемді жиектерін көрсету үшін Ось және Қабырғалар қойындыларын пайдалануға болады.

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

Көрсетілген мәндерді орнату үшін сериялық әдістерді пайдалану керек Сериялар. Негізгі үш әдіске ғана тоқталайық.

Әдіс Тазабұрын енгізілген деректер қатарын тазартады.

Әдіс қосу:

(Const AValue: Double; Const ALabel: String;: TColor)

диаграммаға жаңа нүкте қосуға мүмкіндік береді. Параметр AV мәнқосылған мәнге, параметрге сәйкес келеді ALabel- диаграммада және легендада көрсетілетін атау, AColor- түсті. Параметр ALabel- міндетті емес, оны бос орнатуға болады: "".

Әдіс AddXY:(Const AXValue, AYValue: Double;ALabel: String; AColor: TColor)

функция графигіне жаңа нүкте қосуға мүмкіндік береді. Опциялар AXValueЖәне AYМәнаргумент пен функцияға сәйкес келеді. Опциялар ALabelЖәне AColorәдістегідей қосу.

Осылайша, біздің мысалдағы деректерді жүктеу процедурасы келесідей болуы мүмкін:

155;=251;=203;=404;

var: сөз;

БАСТАСерия 1 істеу

БАСТА;(A1, "Цех 1", clYellow);(A2, "2-цех", clBlue);(A3, "Цех 3", clRed);(A4, "Цех 4", clPurple);

Соңы;. Таза;. Таза;

үшін i: =0 дейін 100 істеу

БАСТА. AddXY (0,02*Pi*i, sin (0,02*Pi*i), «», clRed);. AddXY (0,02*Pi*i, cos (0,02*Pi*i), «», clBlue);

Егер сізде, мысалы, диаграммада көрсетілген деректер болса, екі қатар Серия 1Және Серия 4әртүрлі түрлері - ПирогЖәне Бар, содан кейін пайдаланушы сұрауына сәйкес диаграмма түрін өзгертетін процедураны енгізуге болады. Бұл процедураны оқиғаға енгізуге болады OnClickкейбір түймелер, мәзір пәрмені немесе, мысалы, құрамдасқа жай ғана шертуді өңдеу Диаграмма. Деректерді жүктеу үшін Серия 4және бұл диаграмманы бірінші сәтте көрінбейтін етіп жасаңыз, сіз бұрын берілген процедураның соңына операторларды кірістіре аласыз

Тағайындау (1-серия); Белсенді: =жалған;

Осы операторлардың біріншісі орналастырылған деректерді қайта жазады Серия 1, қатарда Серия 4. Ал екінші оператор қатарды көрінбейтін етеді Серия 4. Диаграмма түрін өзгерту процедурамен жүзеге асырылады

Белсенді: = емесСерия 1. Белсенді;. Белсенді: = емесСерия 4. Белсенді;

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

«Delphi-де графикалық ақпаратты көрсету»
Тақырып жоспары:
1. Графикалық шығару әдістері
Delphi-де ақпарат.
2. Суреттерді көрсету.
3. Геометриялық дисплей
сандар.

1. Графикалық ақпаратты бейнелеу әдістері.
Delphi-де бірнеше әдіс бар
графикалық ақпаратты шығару:
Алдын ала дайындалған шығыс
кескіндер (сурет құрамдастары,
Пішін);
Графиктер мен диаграммаларды құру
(диаграмма компоненті және т.б.);
Бейнелеу
бағдарламалық түрде (нысан
кенеп).

2. Суреттерді көрсету.
Қолдану арқылы суреттерді көрсету
Біз Image компонентін қарастырдық
алдыңғы тақырыптардың бірі.
Мұнда біз мысалды қарастырамыз
қарапайым анимацияны жүзеге асыру
мерзімді өзгерту арқылы
ішінде суретті көрсетеді
Кескін құрамдастары.
Мысалға өтіңіз.


Қарапайымдылардың көрінісі
пішіндегі геометриялық фигуралар
Shape компонентін қамтамасыз етеді.

3. Геометриялық фигураларды көрсету.
Shape компонентінің негізгі қасиеттері:
Щетка
Қалам
Пішін
Түс (.Түс) және стиль (.Стиль) үшін
фигураны толтыру.
Түс (.Түс), стиль (.Стиль), ені
(.Width) және жолдардың шығару әдісі (.Mode).
сандар.
Геометриялық фигураның түрі.

3. Геометриялық фигураларды көрсету.
Бірнеше Shape құрамдастарынан
Сіз қарапайым сызбаларды жасай аласыз.
Бағдарламалық түрде позицияны өзгерту
(.Сол, .Жоғарғы) өлшемі (.Ені, .Биіктігі) және
Shape компоненттерінің түсі (Brush.Color).
сызбада жүзеге асыруға болады
қарапайым анимация элементтері.
Мысал қарастырайық.

4. Графиктер мен диаграммаларды құру.
Диаграммалар арналған
көбірек көрнекі бейнелеу
сандық мәліметтер массивтері, олардың
визуалды көрсету және талдау.
Мысал.
Delphi-де диаграммалар құру
бірнеше құрамдас бөліктер бар
олардың бірі Диаграмма компоненті (бөлім
TeeChart Std).

4. Графиктер мен диаграммаларды құру.
Одан кейінгі Chart компонентінің көрінісі
Пішіндегі параметрлер:

4. Графиктер мен диаграммаларды құру.
Объект инспекторынан басқа, қол жеткізу
Chart компонентінің қасиеттері болуы мүмкін
арнайы терезені ашу арқылы алыңыз
диалогтық терезе (компоненттегі оң жақ түйме \
Диаграмманы өңдеу...)
қосу
деректер қатары
Түрін өзгерту
диаграммалар

4. Графиктер мен диаграммаларды құру.
Диаграмма түрін таңдау:

4. Графиктер мен диаграммаларды құру.
Координат осьтерінің қасиеттерін орнату
(ось):

4. Графиктер мен диаграммаларды құру.
Деректерді көрсету әдетте
Бағдарламалық түрде диаграммаға ауыстырылды,
мысал:
Series1.Clear; (айқын қатар)
i:=1 үшін N істеу
Series1.addxy(i, A[i], '', clGreen);
Мәні бойынша
X осі
Мәні бойынша
Y осі
Қол қою
X осі
Деректер түсі
диаграммада
Құрылыстың мысалын қарастырайық
у = Sin(x) функциясының графигі

Әрі қарай:
Зертханалық жұмыс № 13.1.
«Суреттерді көрсету және геометриялық
фигуралар, олардың анимациясы».
Жаттығу:
1) Іске асыру үшін қосымшаны әзірлеу
кезеңдік ең қарапайым анимация
көрсетілген суретті өзгертеді
Кескін құрамдастары. (Суреттердің саны жоқ
үштен аз болса, суреттерді таңдаңыз
өз бетінше).

Жаттығу:
2) Суретті ойлап тауып, суретін сал
Пішін компоненттері. Бағдарламалық түрде
орнын, өлшемін немесе түсін өзгерту
Сызбадағы құрамдас бөліктерді кескіндеу
қарапайым элементтерін жүзеге асыру
анимация.

Әрі қарай:
Зертханалық жұмыс № 13.2.
«Графиктер мен диаграммаларды құрастыру».
Жаттығу:
1) Қолданбаны келесіден өзгертіңіз
№9 зертханалық жұмыс (Дисп
кестедегі деректер). Мүмкіндік қосыңыз
кестедегі кейбір деректерді көрсету
гистограммада немесе дөңгелек диаграммада.
2) Берілген функцияның графигін тұрғыз.


Жоғарғы