1

Konu: Fareyi Hapsetmek

Bir formda fareyi  belli bir alana nasıl hapsedebilirim? Yani belirlediğim koordinatların dışına farenin çıkmasını engelleyebilir miyim?

2

Re: Fareyi Hapsetmek

"Bir formda fareyi  belli bir alana nasıl hapsedebilirim? Yani belirlediğim koordinatların dışına farenin çıkmasını engelleyebilir miyim?" diye sormuştum. Hiç cevap veren olmadı maalesef. Galiba gözden kaçtı. Ya da foxproda bunun çözümü yok

3 Son düzenleyen, cetinbasoz (08.01.2007 00:24:10)

Re: Fareyi Hapsetmek

Visual Fox Pro
Declare Integer ClipCursor In WIN32API String @ lpRect

Declare Integer ClientToScreen In WIN32API Integer HWnd, String @ lpPoint
*DECLARE integer ScreenToClient IN WIN32API integer hWnd, string @ lpPoint
 
_Screen.AddObject("myShape","shape") && Just for showing where we lock the cursor
With _Screen.myShape
  .BackColor = 255
  .Left = 200
  .Top = 300
  .Width = 250
  .Height = 500
  .Visible = .T.
Endwith
 
LOCAL TopLeft,BottomRight
TopLeft     = CreatePoint(200,300)
BottomRight = CreatePoint(200+250,300+500)
ClientToScreen(_screen.HWnd, @TopLeft)   && convert shape's coordinates to desktop coordinates
ClientToScreen(_screen.HWnd, @BottomRight)
 
*lcClipTo = CreateRectangle(200,300,400,800) && direct screen coordinates
lcClipTo = m.TopLeft + m.BottomRight && clip area - rect structure
ClipCursor(@lcClipTo)
Wait Window "Any key to release"
ClipCursor(0)
_Screen.RemoveObject("myShape")
 
Function CreatePoint(m.tnX,m.tnY)
  Return ;
    BINTOC(m.tnX,"4RS")+;
    BINTOC(m.tnY,"4RS")
 
Function CreateRectangle(m.tnLeft,m.tnTop,m.tnRight,m.tnBottom)
  Return ;
    CreatePoint(m.tnLeft, m.tnTop)+;
    CreatePoint(m.tnRight,m.tnBottom)

4 Son düzenleyen, cetinbasoz (08.01.2007 00:21:02)

Re: Fareyi Hapsetmek

Kusura bakma metod adlarını, acıklamaları filan İngilizce yazmak işime geliyor. Başka forumlarda benzeri sorularda burayı referans vermek daha kolay oluyor.

5

Re: Fareyi Hapsetmek

cetinbasoz yazdı:

Kusura bakma metod adlarını, acıklamaları filan İngilizce yazmak işime geliyor. Başka forumlarda benzeri sorularda burayı referans vermek daha kolay oluyor.


Önemli olan türkçenin içine ingilizce karıştırmamak. Günlük konuşmalarda veya yazışmalarda görev yerine "task", iş bitimi yerine "deadline", onay yerine "confirm" kullanmamak.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

6

Re: Fareyi Hapsetmek

cetinbasoz yazdı:

Kusura bakma metod adlarını, acıklamaları filan İngilizce yazmak işime geliyor. Başka forumlarda benzeri sorularda burayı referans vermek daha kolay oluyor.


Hocam sen öyle güzel kodlar yolladıktan sonra istersen açıklamalarını rusca yap hiç sorun değil smile
Ben bazen aradığım kodları rusca veya çince sayfalardan bile buluyorum. Kod doğru çalıştıktan sonra sorun çıkmıyor. Tabii bunlar kısa kodlar için geçerli, uzun kodlarda bazen karışıklık yaşanıyor.

7

Re: Fareyi Hapsetmek

Teşekür Ederim. Kodlarınız Sayesinde Problemim Çözüldü.