صفحه اول سایت arrow کامپیوتر و فناوری اطلاعات arrow آموزش محیط گرافیکی در توربو پاسکال 7 (قسمت دوم)

- برای مشاهده تمام مقالات موجود در سایت و استفاده از تالار گفتمان لطفا با نام کاربری خود وارد شوید در صورتی که عضو نیستید < اینجا > کلیک کنید.


آموزش محیط گرافیکی در توربو پاسکال 7 (قسمت دوم) چاپ ارسال برای دوستان
(7 :مجموع راي ها)
فرستادن :
Mohand.es
Balatarin
Donbale
نوشته شده توسط مهندس عبدالجوادی   

استفاده از Mouse در محيط گرافيك :

براي استفاده از Mouse در محيط گرافيكي بايد وقفه مربوط به فعالسازي Mouse را فراخواني كنيم . اين وقفه 33Hex (هگزادسيمال) نام دارد و شامل يكسري توابع است كه هر تابع با يك شماره مشخص شده و كاربرد خاصي دارد . هركدام از توابع مذكور داراي ثباتهاي ورودي و خروجي هستند . ثباتهاي ورودي بايد قبل از فراخواني وقفه مقدار دهي شوند تا وقفه عمل مورد نظر ما را انجام دهد و ثباتهاي خروجي نتايج اجراي وقفه را برمي گردانند .

 تابع 00Hex از وقفه 33Hex :

اين تابع اعمال زير را انجام مي دهد :

1- پارامترهاي Mouse را با مقادير پيش فرض Set مي كند .

2- اشاره گر Mouse را به مركز صفحه منتقل مي كند .

ثبات ورودي :

Ax := 0 ;

ثبات خروجي :

درايور Mouse نصب شده است .                                                                   Ax = ffff Hex

درايور Mouse نصب نشده است .                                                               Ax = 0000 Hex 

تعداد كليد هاي Mouse را مشخص مي كند .                                                                Bx = 3

function mreset:integer;

var i:integer;

begin

  asm;{ اين دستور براي نوشتن دستورات اسمبلي بكار مي رود . }

    mov ax,0;

    int 33h; {فراخواني وقفه }

    mov i,ax;

  end;

end;

نكته : اين تابع فقط Mouse را فعاي مي كند ولي اشاره گر Mouse را آشكار نمي كند . براي نمايان شدن اشاره گر Mouse بايد از تابع بعدي استفاده كنيم .

تابع 01Hex از وقفه 33Hex :

اين تابع اشاره گر Mouse را در صفحه نشان مي دهد . قبل از اجراي اين تابع بايد تابع Mreset اجرا شده باشد .

ثبات ورودي :

Ax := 01 ;

ثبات خروجي : ندارد .

procedure mshow;

begin

  asm;

    mov ax,01h;

    int 33h;

  end;

end;

تابع 02Hex از وقفه 33Hex :

اين تابع اشاره گر Mouse را پنهان مي كند .

ثبات ورودي :

Ax := 02 ;

ثبات خروجي : ندارد .

procedure mhide;

begin

  asm;

    mov ax,02h;

    int 33h;

  end;

end;

تابع 03Hex از وقفه 33Hex :

اين تابع براي تشخيص مكان اشاره گر Mouse در هر لحظه و تعيين كليد فشره شده بكار مي رود .

ثبات ورودي :

Ax := 03 ;

ثبات خروجي :

مختصات اشاره گر Mouse روي محور Xها :Cx

مختصات اشاره گر Mouse روي محور Yها :Dx

تعيين كليد فشرده شده : Bx

کلید چپ : 0      کلید راست : 1     کلید وسط : 2

 

ساختار ثبات Bx بصورت شكل بالا است پس به ازاي فشرده شدن هر كليد مقادير زير را خواهيم داشت .

كليد چپ Bx = 1 :

كليد راست Bx = 2 :

كليد وسط Bx = 4 :

procedure mbutton(var x1:integer;var y1:integer;var k1:integer);

var x,y,k:integer;

begin

  asm

   mov ax,03;

   int 33h;

   mov x,cx;

   mov y,dx;

   mov k,bx;

  end;

  x1:=x;

  y1:=y;

  k1:=k;

end;

تابع 04Hex از وقفه 33Hex :

با استفاده از اين تابع مي توانيد اشاره گر Mouse را بصورت نرم افزاري در مكان دلخواه قرار دهيد .

ثبات ورودي :

Ax := 04 ;

مختصات اشاره گر Mouse روي محور Xها :    Cx

مختصات اشاره گر Mouse روي محور Yها :     Dx

 

ثبات خروجي : ندارد .

procedure move(x,y:integer);

begin

  asm

    mov ax,04;

    mov cx,x;

    mov dx,y;

    int 33h;

  end;

end;

تابع 10Hex از وقفه 33Hex :

اين تابع ناحيه حركت Mouse را مشخص مي كند . هنگام استفاده از اين تابع Mouse در
محدوده اي كه اين تابع تعيين مي كند ، غير فعال است و فقط در بقيه مناطق حركت مي كند .


Ax := 10 ;

Cx := x1;

Dx := y1;

Si := x2;

Di := y2;

 

ثبات خروجي : ندارد .

procedure mexclusion(x1,y1,x2,y2:integer);

begin

  asm

    mov ax,10h;

    mov cx,x1;

    mov dx,y1;

    mov si,x2;

    mov di,y2;

    int 33h;

  end;

end;

تابع 0f Hex از وقفه 33Hex :

اين تابع براي تغيير سرعت حركت Mouse استفاده مي شود . هرچه مقدار وردي اين تابع بزرگتر باشد سرعن Mouse كمتر مي شود . در يك برنامه معمولي با مقادير (10,10) سرعتي مناسب براي Mouse تعيين مي شود .

ثبات ورودي :

Ax := 0f ;

سرعت Mouse روي محور Xها :   Cx

سرعت Mouse روي محور Yها :   Dx

ثبات خروجي : ندارد .

procedure mspeed(x,y:integer);

begin

  asm

    mov ax,0fh;

    mov cx,x;

    mov dx,y;

    int 33h;

  end;

end;

 

نظرات
افزودنجستجو
بهار (213.207.248.230) ۲۱ مهر ۱۳۸۶ , ۱۲:۵۱

لطفا آموزش گرافیک در c را یاد دهید.
salar (85.185.70.38) ۲۲ آذر ۱۳۸۶ , ۰۵:۵۰

khoda BOoD eyVaLlllll
mehran (217.219.175.131) ۲۶ آذر ۱۳۸۶ , ۲۱:۴۸

eyval
محبوبه (87.107.38.49) ۲۰ دي ۱۳۸۶ , ۱۴:۰۵

مي خوام برنهمه ساعت رو تو محيط پاسكال بنويسم ولي نمي دونم چطور بايد ساعت سيستم رو بخونم وعقربه ها رو تكون بدم. ممنون ميشم اگه كمكم كنيد.
hassan (89.165.66.147) ۲۲ دي ۱۳۸۶ , ۰۹:۳۴

عالی
ممنون
محمد علی (82.115.29.113) ۱۴ فروردين ۱۳۸۷ , ۱۴:۰۳

از شما ممنون خواهیم شدند.
خداحافظ ما می خواهند به دانشگاه رفته بوده شدید.
دستتون درد نکنه.
تنها کاربران عضو توانايي ارسال نظر را دارند.

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.

 
فرستادن :
Mohand.es
Balatarin
Donbale
Advertisement

Creative Commons License

Template Designed by : Template Design Workshop
Template name : Hamkelasy Template
Designed by : Template Design Workshop

Template Design Workshop offers professional web templates, flash templates and other web design products available for immediate download.

PictoFX Multimedia Design Group Medium Blog Template Design Workshop
pictofxt