mouse'u bir obje içerisine kilitleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

mouse'u bir obje içerisine kilitleme

Mesaj gönderen true_false »

herkse merhablar sorum şu;
mouse'u bir obje içerisine (panel olabilir) kilitleme yani o objenin height ve width alanları arasında sınırlama yapmak

bunun için bir algoritma veya senaryo olabilir direk program istemiyorum çünkü bu iş için nerden başlıcam onu öğrenmem lazım nesnelerin hangi özelliklerini neyi kullancam (apımi dll'mi...!)
delphi bu iş için hangi nesneleri nesnelerin hangi özellikleribi kullancak onları öğrenmem lazım..


buttonların leftini belirterek formun width ve height alanları arsında rastgele dolatırmıştık galiba bu işin mouse la hiç bir alakası yok....

not sadece bir uğraş içindir hiçbir acelesi yoktur şimdiden vermiş olduğunuz güzel cevaplarınız için teşekkür ederim
type
Tform1 = class(Tform)
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

bu olay için ilgili nesnenin onmousemove() eventını kullanabilirsiniz.
Onmousemove eventında imlecin hangi koordinatlarda olduğunu bulabilirsiniz.buna göre de gerekli kontrolleri yapabilirsiniz.
misalen

Kod: Tümünü seç

procedure TForm_StokHareketleri.FormMouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
if x>=10 then x:=10;//x koordinat kontrolü
if y>=50 then y:=50;//y koordinat kontrolü
if x<=5 then x:=5;//x koordinat kontrolü
if y<=10 then y:=10;//y koordinat kontrolü
label4.Caption:='x==>'+inttostr(x)+'y==>'+inttostr(y);//x ve y 'nin koordinatlarını gözlemliyoruz
Mouse.CursorPos:=Point(x,y);//istediğimiz yere mouse kursorünü getiriyoruz
end;
gibi.
Saygılar;
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

bi denicem

Mesaj gönderen true_false »

bi denicem teşk. ederim
type
Tform1 = class(Tform)
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

ReleaseCapture olabilir tam olarak hatırlamıyorum ama böyle bir api vardı galiba. İmleci belirlediğiniz bir nesnenin sınırları içierisine hapsediyordu. Çizim programlarında fare çizim alanından çıkmasın diye kullanıldığı yerler vardı. Çizim alanı dışına çıkmaya çalıştığınızda imleç sanki görünmez bir bariyere çarpıp duruyordu :)
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

ClipCursor(r:PRect) winapi si bu iş icin.

Kod: Tümünü seç

procedure TFrmMain.Button1Click(Sender: TObject);
var
  r: TRect;
begin
   r.Top:=10;
   r.Left:=100;
   r.Bottom:=20;
   r.Right:=150;
   ClipCursor(@r);
end;
mouse tıklanınca sınırlardan kurtuluyor
yada ClipCursor(nil) kullanılıyor.

kolay gelsin
ÜŞENME,ERTELEME,VAZGEÇME
Cevapla