Када желимо да у Delphi-ју да нацртамо нешто ми у ствари цртамо преко одређеног платна (Canvas) које се простире преко наше апликације или објекта на коме цртамо. Ово платно, или мрежа се састоји из низа пиксела, односно мрежа је подељена хоризонталним и вертикалним линијама.

Тако сваки пиксел има своје X и Y координате.

Координатни почетак овог платна је у горњем левом углу. Тачка у горњем левом углу има координате X=0 и Y=0, док тачка у доњем десном углу прозора има координате X=ClientWidth-1 и Y=ClientHeight-1, где ClientWidth и ClиentHeиght представљају ширину и висину клијентске области.

Canvas поседују компоненте : Форм, Image, Printer, StringGrid, PaintBox.


 

Својства класе Canvas (нека важнија)

Својство Pen – перо за бојење, одређује начин цртања линија око затворених површина. Pen има своја својства : Color – боја, Style – стил (psSolid (пуна), psDot (тачкаста), psClear (невидљива)…), Mode – режим рада и Width – ширина

Својство Brush – четка за бојење, одређује начин попуњавања унутрашњости затворених површина. Brush има своја својства : Color – боја и Style – стил (bsSolid (попуњено), bsDiagonal (косе црте), bsHorizontal (водоравне линије)…)

Својство Font – фонт, одређује врсту и величину слова која се исцртавају. Фонт има своја својства : Color – боја, Style – стил, Size – величина и Name – име

Својство Pixels – Пиксели који чине мрежу, сваки пиксел је дефинисан индексима [x,y], где први индекс представља водоравну координату, а други индекс усправну координату


 

Методе класе Canvas (нека важнија)

LineTo (X, Y: integer); – линија до

(црта праву линију од тренутног положаја пера до тачке са координатама X,Y)

MoveTo (X, Y: integer); – помери се до

(помера се перо до тачке са координатама X,Y, на екрану се не оставља траг)

Polyline (Тачке : array of Tpoint) – отворена изломљена линија

Polyline([Point(x1,y1), Point(x2,y2), … Point(xn,yn)]), где се наводе координате свих тачака

Polygon (Тачке : array of Tpoint) – затворена изломљена линија

Пример: canvas.polygon([Point(10,10), Point(30,30), Point(10,50), Point(60,80)]);

Rectangle(x1,y1, x2,y2 : integer) – правоугаоник

Црта правоугаоник којем је горњи леви угао у тачки (x1,y1), а доњи десни угао у тачки (x2,y2), ако су вредности координата (x1,y1) мања од (x2,y2). Ако су вредности првог пара координата веће од вредности другог пара координата, онда се обрћу и темена правоугаоника. Исти правоугаоник, на истом месту на форми биће исцртан са обе наредбе: canvas.Rectangle(200,300,50,50); canvas.Rectangle(50,50,200,300);

RoundRect(x1,y1, x2,y2,x3,y3 : integer) – заобљени правоугаоник

Ellipse(x1,y1,x2,y2: integer) – елипса

Црта и попуњава елипсу коју ограђује правоугаоник са датим координатама (елипса уцртана у правоугаоник)

Arc(x1,y1,x2,y2,x3,y3,x4,y4:integer) – лук

Црта лук као део елипсе коју ограђује правоугаоник са координатама (x1,y1,x2,y2). Почетна тачка лука је у пресеку елипсе и праве која пролази кроз центар елипсе и кроз тачку (x3,y3). Крајња тачка лука је у пресеку елипсе и праве која пролази кроз центар елипсе и кроз тачку (x4,y4).

Chord(x1,y1,x2,y2,x3,y3,x4,y4:integer) – одсечак

Црта одсечак елипсе (затворена површина) која се добија спајањем крајњих тачака лука, који би цртала прва метода, правом линијом

Pie(x1,y1,x2,y2,x3,y3,x4,y4:integer) – исечак

Црта исечак елипсе (затворена површина) која се добија спајањем крајњих тачака лука, који би цртала прва метода, са центром елипсе


 

ИСПИСИВАЊЕ ТЕКСТА

Такође, у Delphi-ју можемо да испишемо одређени текст на неким координатама а то се постиже методом TextOut која је у облику : TextOut(x,y,Текст) где су x и y координате текста а аргумент Текст је текст који се исписује. Тако би наредба TextOut (50,100,’Текст који се исписује’) исписала на позицији 50,100 одговарајући текст.

Још неке Методе (процедуре без аргумената)

Invalidate; (учини неважећим) означава да компонента за коју је позвана треба поново да се ицрта чим то буде могуће

Update; (ажурирај) налаже да се захтев за поновним исцртавањем компоненте задовољи одмах. Нема ефекта ако се прво не позове метода Invalidate;

Refresh; (обнови) прво учини неважећом слику која је у компоненти и онда је поново исртава

Advertisements