2009-08-14 20 views
6

Bir süre içinde nümerik aralıklarını ayarlamak için bir GUI'ye ihtiyacım var, ama şimdiye kadar hiç hoş olmayan herhangi bir bileşen bulamadım.GUI sayısal aralıkları ayarlamak için Delphi

  • 2 TTrackbars:

    aşağıdaki teşebbüs ettik dakika, 1 1 aralığında

  • 2 TSpinEdit için: dakika, 1 1 2 TTackbars

  • max

    için sayıları elle girmek için kontroller

  • ttrackbar with range 1 TTrackbar control, li min modu ve max-mod arasında geçiş yapmak için ince düğme. Min modunda, selStart ayarlı ve maksimum modda selEnd (ShowSelRange öğesi true olarak ayarlanmış) ayarlıyorum.

Çoğu seçenek, istediğimden daha fazla ekran mülkünü alır ve bunlar sezgisel değildir.

İdeal olarak, Sony ACID'de kaydırma çubuğu gibi çalışan bir şeyden hoşlanırım. Sen tıklayıp dk, maksimum sürükleme 3 farklı noktaları veya her ikisi olabilir:

Awesome mspaint drawing

bir aralığını ayarlamak için kullanılabilir herhangi Ücretsiz bileşen var mı, yoksa benzer bir şey kullanarak yapılabilir dışı -box VCL bileşenleri yaratıcı mı?


Güncelleme

benim ihtiyaçlarını karşılamak için TMkRangeSlider modifiye ettik. Şimdi bir çekicilik gibi çalışıyor. Değiştirilmiş bileşeni ve demoyu orijinal yazara gönderdim. Standart bir TScrollBox kullanma

TMkRangeSlider 1.1

cevap

5

Range Slider, by Michael Kochiashvili gibi bir şeye. O Delphi 5 için yazılmış, kaynak ile ücretsiz ve bir demo ile gelir:

alt text http://www.kochini.com/dcomp/rs/ttrian.jpg

aynı anda min ve max hareket etmeyecektir, ancak kaynağım var çünkü, büyük olasılıkla bu işlevselliği ekleyebilirsiniz gerçekten ihtiyacınız varsa.

+0

Cool, daha önce hiç görmedim. Sadece indirdim ve onunla oynayacağım. –

+0

Tavsiyenizi TMkRangeSlider alarak ve değiştirerek aldım. Tam olarak aradığım şeyi yapıyor. Teşekkürler! –

1

, UI tür simüle etmek etrafında (ScrollCode = scTrack onun OnScroll durumunda) onun başparmak sürüklerken onun PageSize ve Konum özelliklerinden bazıları manuel işe yaramaz yapmak teknik olarak mümkün olduğunu ACID ekran görüntüsünde gösterdiniz. Sorun şu ki 1) sürükleme çizgilerini eklemek için bir TScrollBar sahibi alamıyorsunuz, ve 2) kullanıcının fareyi hangi kısma tuttuğunu belirlemenin doğrudan bir yolu yok (uçlara karşı ortada)). Genel istemci dikdörtgeni ile ilgili olarak geçerli Konum ve PageSize dayalı olarak başparmağın sol ve sağ kenarlarının piksel ofsetlerini belirlemek için bazı oldukça güvenilir hesaplamalar ile gelemediğiniz sürece, muhtemelen en iyisi basitçe kendi yazınızı yazabilirsiniz. Bunun yerine bileşen ve sonra istediğiniz gibi görünmesini ve davranmasını sağlayabilirsiniz.

+0

Pekala, tavsiye için teşekkürler. Delphi'nin böyle bir şeye sahip olmaması garip bir durumdur çünkü sayısal aralıkları ayarlamak her zaman, her türlü uygulamada ihtiyacım olan bir şeydir ... –

+0

Tanımladığınız kullanıcı arabirimi türü standart değildir. Bu yüzden TScrollBox bunu yerel olarak desteklemez (altta yatan işletim sisteminin kendisi bunu desteklemez) –