You are on page 1of 3

‫ﺩﺭﻭﺱ ﰲ ﺍﻟﱪﳎﺔ ﺑﻠﻐﺔ ﺩﻟﻔﻲ‬

(A.1) ‫ﺍﻟﻔﺼﻞ‬

:‫إﻋﺪاد‬

O. M. Fares

Tripoli-Libya

September 2009
O. M. Fares (A.1) ‫دروس ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ دﻟﻔﻲ‬

A.1
‫ﺩﺭﻭﺱ ﰲ ﺍﻟﱪﳎﺔ ﺑﻠﻐﺔ ﺩﻟﻔﻲ‬

.‫( ﻋﻠﻰ ھﯿﺌﺔ داﺋﺮة‬Form) ‫ إﻧﺸﺎء‬:‫ﻣﺜﺎل‬

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Forms, StdCtrls, Controls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);


var
FormRgn: hRgn;
begin
GetWindowRgn(Form1.Handle, FormRgn);
FormRgn := CreateRoundRectRgn(1, 1, 500, 500, 500, 500);
SetWindowRgn(Form1.Handle, FormRgn, TRUE);
end;

procedure TForm1.Button1Click(Sender: TObject);


begin
Close;
end;

end.

2
‫‪O. M. Fares‬‬ ‫دروس ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ دﻟﻔﻲ )‪(A.1‬‬

‫ﺷﺮح‪:‬‬
‫ﻓﻲ اﻟﺤﺪث )‪(On Create‬‬
‫اﻟﺪاﻟﺔ )‪ (GetWindowRgn‬ﺗﺴﺘﺨﺪم ﻟﻠﺤﺼﻮل ﻋﻠﻰ )‪ (Handle‬ﻣﺴﺎﺣﺔ اﻟﻨﺎﻓﺬة )‪ (Form1‬اﻟﺤﺎﻟﯿﺔ‪ .‬و)‪(Handle‬‬
‫ﻋﺒﺎرة ﻋﻦ ﺧﺎﺻﯿﺔ ﺗﺴﺘﺨﺪم ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ دوال )‪ (API‬وھﻲ اﺧﺘﺼﺎر ﻟـ)‪.(Application Program Interface‬‬
‫ودوال )‪ (API‬ﺗﺴﺘﺨﺪم ﻓﻲ ﺑﺮﻣﺠﺔ ﺗﻄﺒﯿﻘﺎت وﯾﻨﺪوز‪.‬‬

‫;)‪GetWindowRgn(Form1.Handle, FormRgn‬‬

‫ﺛﻢ ﻧﻘﻮم ﺑﺈﻧﺸﺎء ﻣﺴﺎﺣﺔ ﺟﺪﯾﺪة ﻟﻠﻔﻮرم ﻋﻠﻰ ھﯿﺌﺔ داﺋﺮة ﺑﻮاﺳﻄﺔ اﻟﺪاﻟﺔ )‪ (CreateRoundRectRgn‬ﻣﻊ ﺗﺤﺪﯾﺪ‬
‫إﺣﺪاﺛﯿﺎت وأﺑﻌﺎد اﻟﺪاﺋﺮة‪.‬‬
‫)‪CreateRoundRectRgn(a, b, c, d, e, f‬‬
‫ﺣﯿﺚ‪:‬‬
‫)‪ (a,b‬ھﻲ إﺣﺪاﺛﻲ اﻟﺮﻛﻦ اﻟﻌﻠﻮي اﻷﯾﺴﺮ ﻟﻠﻔﻮرم‪.‬‬
‫)‪ (c,d‬ھﻲ إﺣﺪاﺛﻲ اﻟﺮﻛﻦ اﻟﺴﻔﻠﻲ اﻷﯾﻤﻦ ﻟﻠﻔﻮرم‪.‬‬
‫)‪ (e‬اﻟﻘﻄﺮ اﻟﺮأﺳﻲ ﻟﻠﺪاﺋﺮة‪.‬‬
‫)‪ (f‬اﻟﻘﻄﺮ اﻷﻓﻘﻲ ﻟﻠﺪاﺋﺮة‪.‬‬
‫ﻓﻲ ﺣﺎﻟﺔ )‪ (e ≠ f‬ﻓﺈن اﻟﺸﻜﻞ ﯾﻜﻮن ﺑﯿﻀﺎوي‪.‬‬

‫;)‪FormRgn := CreateRoundRectRgn(1, 1, 500, 500, 500, 500‬‬

‫اﻟﺪاﻟﺔ )‪ (SetWindowRgn‬ﺗﺴﺘﺨﺪم ﻟﺘﮭﯿﺌﺔ اﻟﻔﻮرم اﻟﺠﺪﯾﺪة ﻟـ)‪.(Form1‬‬

‫;)‪SetWindowRgn(Form1.Handle, FormRgn, TRUE‬‬

‫ﻻ ﺗﻨﺴﻰ إﺿﺎﻓﺔ )‪ (Button‬وﻛﺘﺎﺑﺔ اﻷﻣﺮ )‪ (Close‬ﻓﻲ اﻟﺤﺪث )‪.(OnClick‬‬

‫‪3‬‬

You might also like