Mouse ile form scroll

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
hicker
Üye
Mesajlar: 68
Kayıt: 01 Tem 2003 09:58
Konum: Konya

Mouse ile form scroll

Mesaj gönderen hicker »

Merhaba,
formumun genişliği ekran boyutundan daha büyük olduğu için formda yatay scroll oluşuyor. mouse hareketiyle formun kenarlarına dokunarak scroll işlemi yapılabilir mi? form üzerinde bir sürü bileşen olduğu için form mouse move olayına girmiyor. yardımlarınızı bekliyorum....
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

olayı biraz daha açık anlatabilir misin? Eğer scroll çıkıyor ise scroll'a tıklayarak formu kaydır.

NOT 1: Bu dizayn olarak, kötü bir dizayn şeklidir. Bence formlar, 800 x 600 büyüklüğünü geçmemeli ve ekranda tam olarak gözükmel. Belki PageControl gibi bir bileşenle gruplama yapıp, ayrı tablarda gösterebilirsin.

Kolay gelsin.
sako
Üye
Mesajlar: 473
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

windowstate özelliği wsMaximized yapıldığı zaman böyle bir sorunun çıkmamamsı lazım.Formun Borderstyle özelliğini bsnone yaptıysan o nedenle olabilir bahsettiğin durum.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

tabiki yaptırtabilirsin. bunun en sağlam yöntemi mouse a hook atıcaksın, daha sonrada scroll içinde scroll lara mesaj atıcaksın
daha kolay olanıysa Mustafanın dediği :) dzaynı 800x600 a göre yapıp büyürse anchor larla align larla orantılı şekilde yerleştirebilirsin
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
hicker
Üye
Mesajlar: 68
Kayıt: 01 Tem 2003 09:58
Konum: Konya

Mesaj gönderen hicker »

geçenlerde sorduğum dikey listeleme yapan dbgridi hatırlamışsındır mustafa hocam. datasette 8 field, yanyana da 12 kolon göstermem gerekliydi. pagecontrol lük bi olay yok ortada yani. formum mdichild ve genişlik 12 kolon olduğunda form genişliği 1228 pixel oluyor. ve bu 12 kolon içerisinde bulunan kayıtları drag drop yaparak birbirleri arasında pozisyon değiştirmeye çalışıyodum. drag yaparken 1. kolondaki kaydı 12. kolona atamadık :D . sonuç olarak scrolu kaydırmak da zor oluyodu....
kendim kurcalayarak türk usulü bir çözüm buldum ama freemanin söylediği mouse'a hook atma olayını biraz daha açıklayabilirseniz onu da öğrenmek isterim. benim kod çalışmasına rağmen daha kaliteli bir çözüm olduğuna eminim hook atmanın.
aşağıdaki kodu form üzerindeki nesnelerin onmousemove olayına bağladım:
if (mouse.CursorPos.x < 5) and (HorzScrollBar.Position > 4) then
HorzScrollBar.Position := HorzScrollBar.Position - 5;
HorzScrollBar.Range := 1233;
if (mouse.CursorPos.x > Width - 50) and (HorzScrollBar.Position < ClientWidth) then
HorzScrollBar.Position := HorzScrollBar.Position + 5;
HorzScrollBar.Range := 1233;

yardımlarınız için teşekkür ederim....
Cevapla