saeed7007
03-06-2011, 11:19 AM
- نوع نقطه (TPoint)
از این نوع برای تعریف مختصات یک نقطه با دو مولفه به نامهای x و y از نوع صحیح استفاده می شود.
Var
; A:TPoint
هنگامی که یک متغیر از نوع TPoint تعریف می شود می توانیم به دو مولفه آن به طور جداگانه مقدار دهیم:
;A.x:=100
;A.y:=200
ولی روش دیگری هم برای مقداردهی این مولفه ها هست که استفاده از تابع Point است. که به صورت زیر است:
;(A:=Point(100,200
- نوع مستطیل (TRect)
از نوع TRect برای تعریف مختصات دو گوشه مقابل یک مستطیل استفاده می شود.
Var
;R:TRect
اگر مختصات دو گوشه مقابل مستطیل را در دست داشته باشیم می توان با روش زیر متغیر مورد نظر را مقدار دهیم:
;R.Left:=x1
;R.Top:=y1
;R.Right:=x2
;R.Bottom:=y2
ولی روش بهتر این است که از تابع Rect برای مقداردهی استفاده کنیم:
;(R:Rect(x1,y1,x2,y2
- نوع رنگ (TColor)
از نوع Tcolor برای تعریف یک رنگ استفاده می شود.
Var
;AColor:TColor
هنگامی که یک متغیر از نوع TColor تعریف می شود می تواند یکی از ثابت های رنگ از پیش تعریف شده را به آن واگذار کند. این ثابت با دو کاراکتر cl شروع می شوند.
;AColor:=clRed
اما با استفاده از این ثابت ها فقط می توان تعداد محدودی رنگ را انتخاب کرد. برای اینکه از همه رنگ ها استفاده کنیم کافی است سه رنگ اصلی قرمز ، سبز، آبی را با هم ترکیب کنیم. مقدار یا کد این سه رنگ می تواند بین 0 تا 255 (یا 00 تا FF در مبنای 16 ) انتخاب شود. با این روش می توان بیش از 16 میلیون رنگ تولید کرد. اگر کد این سه رنگ اصلی را داشته باشیم می توان از یک عدد 4 بایتی هگزدسیمال استفاده کنید به طوری که 3 بایت کم ارزش تر آن سه رنگ اصلی قرمز، سبز و آبی را مشخص می کند. هر مقدار هگزدسیمال با نماد$ شروع می شود و بعد ارقام 0 تا 9 یا کاراکترهای A تا F قرار می گیرند.
برای مثال: اگر کد قرمز 2C ، کد سبز 5F و کد آبی E4 باشد می توان به صورت زیر رنگ ترکیبی را تولید کرد:
;AColor:=$00E45F2C
از انجایی که بایت چهارم کمتر استفاده می شود می توان آنرا به کار نگرفت.
اگر کد سه رنگ اصلی در متغیر های فرضی R، G، B که از نوع Byte هستند قرار داشته باشد میتوان از تابع RGB رنگ ترکیبی را تولید کرد.
;(AColor:=RGB(R, G, B
برای اینکه کد رنگ تصادفی تولید کنیم از تابع Random به صورت زیر استفاده می کنیم:
;(AColor:=Random($FFFFFF
برای ساختن رنگ قرمز تصادفی می توان با صفر دادن قسمتهای سبز وآبی و نسبت دادن یک مقدار تصادفی دلخواه به قسمت قرمز تولید کرد:
برای این منظور ابتدا متغیر A که مقدار تصادفی دارد را تعریف کرده:
Var
;A:Byte
....
;(A:=Random($FF
بعد هم از تابع RGB استفاده می کنیم و مقدار ها را می نویسیم:
;(AColor:=RGB(A,0,0
به همین ترتیب است برای رنگ های ابی و سبز . اما اگر بخواهیم رنگ زرد را تولید کنیم لازم است قرمز و سبز را به یک اندازه با هم ترکیب کنیم:
;(AColor:=RGB(A, A, 0
هنگامی که یک کد رنگ داخل AColor ذخیره شده باشد می توان با استفاده از تابع های زیر این سه رنگ را از هم جدا کرد:
;(R:=GetRValue(AColor
;(G:=GetGValue(AColor
;(B:=GetBValue(AColor
تغییر مشخصات پس زمینه
برای انتخاب مشخصات پس زمینه از قبیل رنگ و روش پر کردن از خاصیت Brush استفاده می شود.
اگر بخواهید مستطیلی با رنگ دلخواه ترسیم کنید باید مقدار رنگ موردنظر را به خاصیت Color بدهید:
;Canvas.Brush.Color:=clYellow
;(Canvas.Rectangle(x1, y1, x2, y2
اگر بخواهید مستطیلی تو خالی رسم کنید باید مقدار bsClear را به خاصیت Style بدهید
;Canvas.Brush.Style:=bsClear
دستورهای ترسیم بیضی (دایره)
اگر مختصات دو گوشه مقابل یک مستطیل را در دست داشته باشیم می توانید به کمک دستور Ellipse یک بیضی محاط شونده در آن مستطیل به صورت تو خالی، توپر یا الگودار ترسیم کنید. اگر مستطیل در برگیرنده یک مربع باشد دستور Ellipse یک دایره ترسیم می کند.
;(Canvas.Ellipse(x1,y1,x2,y2
دستور Ellipse همانند دستور Rectangle پارامترهایی از نوع مستطیل را نیز می پذیرد.
;(Canvas.Ellipse(R
;((Canvas.Ellipse(Rect(A,B
اگر مختصات مرکز بیضی (xo,yo) و پهنا (W) و ارتفاع (h) آن را در دست داشته باشید باید با انجام یک محاسبه دو گوشه مقابل مستطیل دربر گیرنده بیضی را به دست آورید.
;(Canvas.Ellipse(xo-w div 2, xo+w div 2, yo+h div 2
و
;(Canvas.Ellipse(xo-r, yo-r, xo+r, yo+r
از این نوع برای تعریف مختصات یک نقطه با دو مولفه به نامهای x و y از نوع صحیح استفاده می شود.
Var
; A:TPoint
هنگامی که یک متغیر از نوع TPoint تعریف می شود می توانیم به دو مولفه آن به طور جداگانه مقدار دهیم:
;A.x:=100
;A.y:=200
ولی روش دیگری هم برای مقداردهی این مولفه ها هست که استفاده از تابع Point است. که به صورت زیر است:
;(A:=Point(100,200
- نوع مستطیل (TRect)
از نوع TRect برای تعریف مختصات دو گوشه مقابل یک مستطیل استفاده می شود.
Var
;R:TRect
اگر مختصات دو گوشه مقابل مستطیل را در دست داشته باشیم می توان با روش زیر متغیر مورد نظر را مقدار دهیم:
;R.Left:=x1
;R.Top:=y1
;R.Right:=x2
;R.Bottom:=y2
ولی روش بهتر این است که از تابع Rect برای مقداردهی استفاده کنیم:
;(R:Rect(x1,y1,x2,y2
- نوع رنگ (TColor)
از نوع Tcolor برای تعریف یک رنگ استفاده می شود.
Var
;AColor:TColor
هنگامی که یک متغیر از نوع TColor تعریف می شود می تواند یکی از ثابت های رنگ از پیش تعریف شده را به آن واگذار کند. این ثابت با دو کاراکتر cl شروع می شوند.
;AColor:=clRed
اما با استفاده از این ثابت ها فقط می توان تعداد محدودی رنگ را انتخاب کرد. برای اینکه از همه رنگ ها استفاده کنیم کافی است سه رنگ اصلی قرمز ، سبز، آبی را با هم ترکیب کنیم. مقدار یا کد این سه رنگ می تواند بین 0 تا 255 (یا 00 تا FF در مبنای 16 ) انتخاب شود. با این روش می توان بیش از 16 میلیون رنگ تولید کرد. اگر کد این سه رنگ اصلی را داشته باشیم می توان از یک عدد 4 بایتی هگزدسیمال استفاده کنید به طوری که 3 بایت کم ارزش تر آن سه رنگ اصلی قرمز، سبز و آبی را مشخص می کند. هر مقدار هگزدسیمال با نماد$ شروع می شود و بعد ارقام 0 تا 9 یا کاراکترهای A تا F قرار می گیرند.
برای مثال: اگر کد قرمز 2C ، کد سبز 5F و کد آبی E4 باشد می توان به صورت زیر رنگ ترکیبی را تولید کرد:
;AColor:=$00E45F2C
از انجایی که بایت چهارم کمتر استفاده می شود می توان آنرا به کار نگرفت.
اگر کد سه رنگ اصلی در متغیر های فرضی R، G، B که از نوع Byte هستند قرار داشته باشد میتوان از تابع RGB رنگ ترکیبی را تولید کرد.
;(AColor:=RGB(R, G, B
برای اینکه کد رنگ تصادفی تولید کنیم از تابع Random به صورت زیر استفاده می کنیم:
;(AColor:=Random($FFFFFF
برای ساختن رنگ قرمز تصادفی می توان با صفر دادن قسمتهای سبز وآبی و نسبت دادن یک مقدار تصادفی دلخواه به قسمت قرمز تولید کرد:
برای این منظور ابتدا متغیر A که مقدار تصادفی دارد را تعریف کرده:
Var
;A:Byte
....
;(A:=Random($FF
بعد هم از تابع RGB استفاده می کنیم و مقدار ها را می نویسیم:
;(AColor:=RGB(A,0,0
به همین ترتیب است برای رنگ های ابی و سبز . اما اگر بخواهیم رنگ زرد را تولید کنیم لازم است قرمز و سبز را به یک اندازه با هم ترکیب کنیم:
;(AColor:=RGB(A, A, 0
هنگامی که یک کد رنگ داخل AColor ذخیره شده باشد می توان با استفاده از تابع های زیر این سه رنگ را از هم جدا کرد:
;(R:=GetRValue(AColor
;(G:=GetGValue(AColor
;(B:=GetBValue(AColor
تغییر مشخصات پس زمینه
برای انتخاب مشخصات پس زمینه از قبیل رنگ و روش پر کردن از خاصیت Brush استفاده می شود.
اگر بخواهید مستطیلی با رنگ دلخواه ترسیم کنید باید مقدار رنگ موردنظر را به خاصیت Color بدهید:
;Canvas.Brush.Color:=clYellow
;(Canvas.Rectangle(x1, y1, x2, y2
اگر بخواهید مستطیلی تو خالی رسم کنید باید مقدار bsClear را به خاصیت Style بدهید
;Canvas.Brush.Style:=bsClear
دستورهای ترسیم بیضی (دایره)
اگر مختصات دو گوشه مقابل یک مستطیل را در دست داشته باشیم می توانید به کمک دستور Ellipse یک بیضی محاط شونده در آن مستطیل به صورت تو خالی، توپر یا الگودار ترسیم کنید. اگر مستطیل در برگیرنده یک مربع باشد دستور Ellipse یک دایره ترسیم می کند.
;(Canvas.Ellipse(x1,y1,x2,y2
دستور Ellipse همانند دستور Rectangle پارامترهایی از نوع مستطیل را نیز می پذیرد.
;(Canvas.Ellipse(R
;((Canvas.Ellipse(Rect(A,B
اگر مختصات مرکز بیضی (xo,yo) و پهنا (W) و ارتفاع (h) آن را در دست داشته باشید باید با انجام یک محاسبه دو گوشه مقابل مستطیل دربر گیرنده بیضی را به دست آورید.
;(Canvas.Ellipse(xo-w div 2, xo+w div 2, yo+h div 2
و
;(Canvas.Ellipse(xo-r, yo-r, xo+r, yo+r
