آخرين پست هاي ارسالي انجمن ايران دلفي

تماشای رایگان فیلم ایرانی ، خارجی و کودک آکادمی دلفی
نمایش نتایج: از 1 به 5 از 5

موضوع: توابع کار با موس

Hybrid View

  1. #1
    کاربر سایت adanayi آواتار ها
    تاریخ عضویت
    June 2013
    سن
    11
    نوشته ها
    2
    تشکر ها
    0
    تشکر شده 0 بار در 0 ارسال.

    توابع کار با موس

    سلام به همه.می دونم که دلفی 7 اختیارات کاملی روی کار با موس در اختیار کاربر قرار می ده.*
    مشکل من اینه که نمی دونم با چه تابعی میشه، روی جا یا پبکسل خاصی از صفحه کلیک کرد؟
    اگر کسی می دونه راهنمایی کنه.
    اگر هرچیزی درباره ی کار با موس می دونید بنویسید تا استفاده کنیم.
    با تشکر.

  2. #2
    مدیرکل سایت admin آواتار ها
    تاریخ عضویت
    September 2008
    محل سکونت
    تهران ، آیسک
    سن
    39
    نوشته ها
    522
    تشکر ها
    247
    تشکر شده 250 بار در 160 ارسال.
    Blog Entries
    1
    سلام.
    در مورد کار با موس ما* Event های مختلفی داریم.
    یکی از آنها OnMouseDown است که همان رویداد کلیک کردن می باشد، شما می توانید در این رویداد از آرگومانهای خودش استفاده کنید مثلا با این کد نشان دهید که در کدام نقطه کلیک کرده اید :
    کد:

    کد:
    ShowMessage("X="+IntToStr(X) + "...Y="+IntToStr(Y));
    و همچنین با این کد شرط می گذارید که اگر فلان نقطه بود فلان کار را انجام بده :
    کد:

    کد:
    if (X=100) and (Y=100) then
    ShowMessage("Goal");
    رویدادهای دیگه ای هم موس دارد که به شرح زیر می باشد :
    ابتدا براي انتخاب يك رويداد از پنجره Object Inspector قسمت Events را انتخاب كنيد تا ليستي از رويدادها ظاهر شوند .
    OnMouseDown : وقتي يكي از كليدهاي ماوس فشار داده شود اين رويداد فراخواني مي شود .
    OnMouseMove: هنگامي كه اشاره‎گر ماوس روي فرم حركت مي كند ، اين رويداد فراخواني مي گردد .
    OnMouseUp : زماني كه كاربر كليد فشرده شدة ماوس را رها مي كند اين رويداد فراخواني مي شود .
    OnMouseWheel :زمانی که دکمه ی چرخان موس در حال چرخاندن است فراخوانی می شود.
    OnMouseWheelDown : زمانی که دکمه ی چرخان موس را در حالت Down(در واقع به سمت عقب) قرار بدهیم فراخوانی می شود.
    OnMouseWheelUp : زمانی که دکمه ی چرخان موس را که در حالت Up (در واقع رو به جلو ) قرار بدهیم فراخوانی می شود.
    دلفی ،*جذاب ترین زبان طراحی نرم افزار ...

  3. #3
    مدیرکل سایت admin آواتار ها
    تاریخ عضویت
    September 2008
    محل سکونت
    تهران ، آیسک
    سن
    39
    نوشته ها
    522
    تشکر ها
    247
    تشکر شده 250 بار در 160 ارسال.
    Blog Entries
    1
    این هم کد یونیت مورد نظر :
    کد:

    کد:
    unit Unit1;
    interfaceuses
    * Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,* Dialogs, StdCtrls;
    type*
     TForm1 = class(TForm)**
    * procedure FormMouseDown(Sender: TObject; Button: TMouseButton;***** Shift: TShiftState; X, Y: Integer);*
    ** procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;*
    **** WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
    *** procedure FormMouseWheelDown(Sender: TObject; Shift: TShiftState;**
    *** MousePos: TPoint; var Handled: Boolean);
    *** procedure FormMouseWheelUp(Sender: TObject; Shift: TShiftState;**
    *** MousePos: TPoint; var Handled: Boolean);*
    ** procedure FormMouseUp(Sender: TObject; Button: TMouseButton;***
    ** Shift: TShiftState; X, Y: Integer);*
    * procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,***** Y: Integer);*
    ** procedure FormCreate(Sender: TObject);*
     private*
    ** { Private declarations }*
     public*** 
    { Public declarations }* 
    end;
    var
    * Form1: TForm1;
    implementation
    uses
     Math;{$R *.dfm}
    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
    * Shift: TShiftState; X, Y: Integer);
    begin
    ShowMessage("X="+IntToStr(X) + "...Y="+IntToStr(Y));
    if (X=100) and (Y=100) then
    ShowMessage("Goal");
    end;
    procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
    * WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
    begin
    * ShowMessage("FormMouseWheel");
    end;
    procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
    * MousePos: TPoint; var Handled: Boolean);
    begin*
     ShowMessage("FormMouseWheelDown");
    end;
    procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
    * MousePos: TPoint; var Handled: Boolean);
    begin
    *ShowMessage("FormMouseWheelUp");
    end;
    procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;*
     Shift: TShiftState; X, Y: Integer);
    begin
    ShowMessage("FormMouseUp");
    end;
    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState;
     X,* Y: Integer);
    begin
    *if (X=100) and (Y=100) then
    ShowMessage("FormMouseMove");
    end;
    
    end.

    البته شما می تونید هر کاری رو که مد نظرتون هست در این مابین begin* و* end ها انجام بدید ...
    دلفی ،*جذاب ترین زبان طراحی نرم افزار ...

  4. #4
    کاربر سایت adanayi آواتار ها
    تاریخ عضویت
    June 2013
    سن
    11
    نوشته ها
    2
    تشکر ها
    0
    تشکر شده 0 بار در 0 ارسال.
    خیلی ممنونم دوست عزیز.ولی منظورم رو بد رسوندم. و وقت شما رو گرفتم.
    ببینین من دارم برنامه ای می نویسم که لازمه روی پیکسل خاصی از صفحه کلیک کنه. یعنی در واقع خود اون برنامه ای که نوشتم عمل کلیک کردن رو شبیه سازی کنه.
    ممنون میشم راهنمایی کنید.
    البته از event هایی که نوشتید، استفاده بردم ها!
    راستی یک سوال دیگه هم دارم:
    برنامه می تونه موقعیت موس تو صفحه ی ویندوز رو تشخیص بده؟ حتا اگه خارج از فرم اصلی باشه؟

  5. #5
    مدیرکل سایت admin آواتار ها
    تاریخ عضویت
    September 2008
    محل سکونت
    تهران ، آیسک
    سن
    39
    نوشته ها
    522
    تشکر ها
    247
    تشکر شده 250 بار در 160 ارسال.
    Blog Entries
    1
    این کار رو تو جاوا با Robot انجام میدیم.
    تو هر فرمی میتونه این کار رو بکنه .کد زیر رو امتحان کنید :
    کد:

    کد:
    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,* Y: Integer);
    *var
    * sc,new,scr:tpoint;
    begin*
     scr.x:=Mouse.CursorPos.x;
    * scr.y:=Mouse.CursorPos.y;*
     new:=form1.ScreenToClient(scr);
    * sc:=form1.ClientToScreen(new);*
     Label1.Caption:="Original Form position : "+inttostr(X)+","+inttostr(Y);*
     Label2.Caption:="calculated form position : "+inttostr(new.X)+","+inttostr(new.Y);*
     Label3.Caption:="Screen position : "+inttostr(scr.X)+","+inttostr(scr.Y);
    * Label4.Caption:="calculated screen position : "+inttostr(sc.X)+","+inttostr(sc.Y);
    *if ((X>100) and (x<150)) and ((Y>100) and (y<150)) then
    Form1.Button1Click(Button1);
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    beginShowMessage(&quot;Hi IranDelphi ...&quot;);
    end;
    البته قبلش یک Button و چهار* lable رو روی صفحه قرار بدید.
    دلفی ،*جذاب ترین زبان طراحی نرم افزار ...

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •