Unit Unitl; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
Type
TForml = class(TForm) Buttonl: TButton;
procedure ButtonlClick(Sender: TObject); private
{ Private declarations } public
{ Public declarations } end;
Var
Forml: TForml; implementation
{$R*.dfm}
procedure TForml.ButtonlClick(Sender: TObject);
Const
bsName: array[1..8] of string = ('bsSolid', ’bsClear’,’bsHorizontal’, 'bsVertical', ’bsFDiagonar,’bsBDiagonal’, 'bsCross', ’bsDiaoCross’);
Var
x,y: Integer; w,h: Integer;
bs: TBrushStyle; k: Integer;
ij: Integer;
Begin Button 1.visible:=false; w:=60; h:=40;
y:=80;
for i:= l to 2 do begin
x:=10;
for j: = l to 4 do begin
k:=j+(i-l)*4; case k of
1: bs:= bsSolid;
2: bs:= bsClear;
3: bs:= bsHorizontal;
4: bs:= bsVertical;
5: bs:= bsFDiagonal;
6: bs:= bsBDiagonal;
7: bs:= bsCross;
8: bs:= bsDiagCross; end; Canvas.Brush.Color := clOreen; Canvas.Brush.Style := bs;
Canvas . Rectangle (x, y, x+w, y-h) ; Canvas.Brush.Style := bsClear; Canvas.TextOut(x, y-55, bsName[k]); x := x+w+30;
end;
y:= y+h+30; end;
end; end.
Matnni chiqarish
Grafik obyekt yuzasiga matn chiqarish uchun TextOut usuli qollaniladi.
Bu usulni chaqirish instruksiyasi quyidagi ko‘rinishga ega:
Obyekt.Canvas.TextOut(x, u, Tekst)
Matn shrifti Font xossasining qiymati bilan aniqlanadi. Font xossasi TFont tipidagi obyektdir. Quyidagi jadvalda TFont obyekti xossalari keltirilgan.
TFont obyektining xossalari:
Xossa Ta’rifi
Name Shrift nomi, masalan Arial
Size Shriftning punktlardan kattaligi
Style Simvollar chiqarish uslubi.
Quyidagi konstantalar orqali beriladi: fsBold (nojiyxnpHtiH), fsltalic
(icypcHB), fsUnderline ( nozim ep khvt bi h ). fsStrikeOut (nepeMepKHVTbiH).
Bu xossa bir necha uslublami kombinatsiyasini olishga imkon beradi.
Masalan: Obyekt. Canvas . Font : = [fsBold, fs Italic] Color Simvollar rangi.
M atn chiqarish sohasi mo‘yqalam joriy rangiga bo‘yaladi. Shuning uchun m atn chiqarishdan oldin Brush. Color xossasiga bsClear qiymatini yoki soha rangiga mos qiymatni berish lozim.
M i s o 1 :
with Forml.Canvas do begin
Font.Name := 'T ahom a '; Font.Size := 20;
FontStyle := [fsltalic, fsBold] ; Brush.Style := bsClear;
Text0ut(0, 10, 'Borland D elp h i6 ');
end;
Textout uslubi orqali matn ekranga chiqarilgandan so‘ng qalam matn chiqarish sohasining yuqori o‘ng burchagiga keltiriladi.
Agar matn uzunligi ma’lum bo’lmasa. chiqarilgan matn o‘ng chegarasi koordinatalarini PenPos xossasiga murojaat qilib aniqlash mumkin.
M i s o 1 :
with Forml.Canvas do begin
Text0ut(0, 10, 'Borland ') ;
TextOut(PenPos.X, PenPos.Y, 'D e lp h i6 ') ;
end;
Grafik primitivlarni chizish usullari Chiziq
To‘g‘ri chiziq LineTo usuli orqali amalga oshiriladi.
Komponent.Canvas.LineTo(x,y)
LineTo usuli qalamning joriy pozitsiyasidan berilgan koordinatali nuqtagacha to‘g‘ri chiziq chizadi. Boshlang‘ich nuqtani kerakli nuqtaga ko‘chirish uchun MoveTo usulidan foydalanish mumkin.
Tutashgan chiziq
0‘zaro tutashgan kesmalardan iborat shaklni chizish uchun polyline usulidan foydalaniladi. Bu usul parametri TPoint tipli massivdan iborat.
Polyline usuliga misol tariqasida ma’lum qiymat o‘zgarishi grafigini chizuvchi protsedurasini keltiramiz:
procedure TForml.ButtonlClick(Sender: TObject);
var
gr: array[1..50] of TPoint; xO,yO: Integer;
dx,dy: Integer; i: Integer; begin
xO := 10; uO := 200; dx :=5; dy := 5;
for i:=l to 50 do begin
gr[i].x := xO + (i-l)*dx;
gr[i].y := yO - Data[i]*dy;
end;
with formLCanvas do begin
MoveTo(x0,y0); LineTo(x0,10); MoveTo(x0,y0); LineTo(200,y0); Polyline(gr);
end; end;
Polyline usuli yordamida yopiq ko‘pburchak chizish uchun massivning birinchi va oxirgi elementi bir nuqtaning koordinatalaridan iborat bolishi kerak.
Aylana va ellips
Aylana yoki ellips chizish uchun Ellipse usuli chaqiriladi. Usulni chaqirish instruksiyasining umumiy ko‘rinishi:
Object.Canvas.Ellipse(xl,yl, x2,u2)
Bu yerda x l, y l, x2, u2 — ellipsni o‘z ichiga olgan minimal to‘rtburchak koordinatalari. Agar to‘rtburchak kvadrat bo‘lsa aylana chiziladi.
Dostları ilə paylaş: |