Merhaba;
Mesela Buton gibi bir componentlerin mouse move olayı sadece mousenin butonun üzerine gelmesi ile tetikleniyor. Fakat şeklimiz tam dikdörtgen veya kare olmasaydı ne olacaktı ?
TGraphicControl veya TCustomControl nesnelerini devralarak bazır görsel componentler yapmaya çalışıyorum fakat boyutlar ya kare yada dikdörtgen olmak zorunda oluyor. Arka planı saydam yapsam dahi componentin alanı dikdörtgen oluyor. Bu sorunu nasıl halledebilirim. Mouse move içinde çizdiğim şeklin koordinatlarını kontrol etmek istemiyorum. Bir component var elimde onu gözledim ve böyle bir olay kullanmamış (en azından ben göremedim) ama çok güzel bir şekilde çalışıyor....
Örnek
"L" harfimiz olsun. Mouse sadece çizgiler üzerine gelince event tetiklenecek ama nasıl ?
Yardımlarınız için şimdiden teşekkürler...
Kare, Dikdörtgen gibi olmayan şekillerin Mouse Event ları...
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 15
- Kayıt: 03 Eki 2008 12:45
-
- Üye
- Mesajlar: 163
- Kayıt: 11 Eki 2005 10:44
- İletişim:
Re: Kare, Dikdörtgen gibi olmayan şekillerin Mouse Event ları...
Gerekli komut PtInRegion windows apisi bir zamanlar aşağıda tartışılmıştı.
viewtopic.php?f=2&t=20314&hilit=PtInRegion
viewtopic.php?f=2&t=20314&hilit=PtInRegion
http://ibrahimcoban.com/
Lazarus, Kol-Ce,Delphi ve C#
Lazarus, Kol-Ce,Delphi ve C#
-
- Üye
- Mesajlar: 15
- Kayıt: 03 Eki 2008 12:45
Re: Kare, Dikdörtgen gibi olmayan şekillerin Mouse Event ları...
Tekrar çok teşekkürler.
-
- Üye
- Mesajlar: 15
- Kayıt: 03 Eki 2008 12:45
Re: Kare, Dikdörtgen gibi olmayan şekillerin Mouse Event ları...
http://angusj.com/delphi/
Adresindeki "Drawing Objects - Version 3.1.1" isimli componenti inceliyorum fakat PtInRGN gibi bir fonksiyon kullanımı yok. Ama bu dediğim olayı gerçekleştirmiş
Acaba bi bakabilir misiniz.
Adresindeki "Drawing Objects - Version 3.1.1" isimli componenti inceliyorum fakat PtInRGN gibi bir fonksiyon kullanımı yok. Ama bu dediğim olayı gerçekleştirmiş

-
- Üye
- Mesajlar: 163
- Kayıt: 11 Eki 2005 10:44
- İletişim:
Re: Kare, Dikdörtgen gibi olmayan şekillerin Mouse Event ları...
Evet Angus Hoca bunu kullanmış
Kod: Tümünü seç
function PtInPolygon(const pts: array of TPoint; pt: TPoint): Boolean;
var
i,j : integer;
begin
Result := False;
j := high(pts);
for i := low(pts) to high(pts) do
begin
if ((pts[i].Y <= pt.Y) and (pt.Y < pts[j].Y)) or
((pts[j].Y <= pt.Y) and (pt.Y < pts[i].Y)) then
if (pt.X < (pts[j].X - pts[i].X) * (pt.Y - pts[i].Y) /
(pts[j].Y - pts[i].Y) + pts[i].X) then Result := not Result;
j := i;
end;
end;
http://ibrahimcoban.com/
Lazarus, Kol-Ce,Delphi ve C#
Lazarus, Kol-Ce,Delphi ve C#
-
- Üye
- Mesajlar: 15
- Kayıt: 03 Eki 2008 12:45
Re: Kare, Dikdörtgen gibi olmayan şekillerin Mouse Event ları...
Tekrar çok teşekkürler. Okadar göz gezdirdimki artık görememe durumuna gelmişim 
