2009-08-14 17 views
6

しばらくして、数値範囲を設定するGUIが必要ですが、これまでのところ、本当にうまく機能するコンポーネントが見つかりませんでした。GUIでDelphiの数値範囲を設定する

私は次のことをしようとしました:

  • 2 TTrackbars:最大

    分間、1のための1
  • 2 TTackbars:分1、レンジの1

  • 2 TSpinEditを手動で数値を入力するコントロール

  • ttrackbar with range 1 TTrackbarコントロール、li ttleボタンを押して、min-modeとmax-modeを切り替えます。 min-modeではselStartを設定し、max-modeではselEnd(ShowSelRangeをtrueに設定)を設定します。

ほとんどのオプションは、私が望むよりも多くのスクリーンプロパティを使用し、直感的ではありません。

理想的には、ソニーのACIDのスクロールバーのようなものが好きです。あなたは、MIN、MAX、またはその両方に異なる3つのポイントをクリックしてドラッグすることができます

Awesome mspaint drawing

を範囲を設定するために利用可能な任意の無料の成分があり、またはアウト・オブ・ザ・使用して似たような行うことができます-box VCLコンポーネントは創造的?


更新

私は自分のニーズに合わせてTMkRangeSliderを変更しました。それは今の魅力のように機能します。私は修正されたコンポーネントとデモを元の著者に送った。標準TScrollBoxを使用

TMkRangeSlider 1.1

答えて

5

どうすればRange Slider, by Michael Kochiashviliのようになりますか?これは、Delphi 5用に書かれ、ソースとフリーウェアで、デモが付属しています:

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

それは同時に最小値と最大値を移動しませんが、あなたがソースを持っているので、あなたはおそらく、その機能を追加することができますあなたが本当にそれを必要とすれば。

+0

クールで、以前は見たことがありません。ちょうどそれをダウンロードして、私はそれで周りに遊んでいます。 –

+0

私はTMkRangeSliderをとり、それを修正することによってあなたのアドバイスを受けました。それはまさに私が今探していたものです。ありがとう! –

1

、UIの種類をシミュレートするために周りに(ScrollCode = scTrackそのOnScroll場合)、その親指をドラッグ中のがPageSizeと位置的特性のいくつかの手動あいを実行することは技術的に可能ですあなたはACIDスクリーンショットで示しました。問題は、1)ドラッグ線を追加するために所有者がTScrollBarを描画することができないこと、2)ユーザーがマウスを下にしている親指の部分を判別する直接的な方法がないこと)。クライアントの四角形全体に関連して現在のPositionとPageSizeに基づいて親指の左右の端のピクセルオフセットを計算するためにかなり信頼性の高い計算を行うことができない場合は、代わりにコンポーネントを使用して、見た目を変えて、必要に応じて動作させることができます。

+0

申し訳ありませんが、アドバイスありがとうございます。数値範囲を設定することは、あらゆる種類のアプリケーションで常に必要とするものなので、Delphiにはこのようなことはありません。 –

+0

説明しているUIの種類は標準ではありません。そのため、TScrollBoxはそれをネイティブにサポートしていません(基礎となるOS自体がそれをネイティブにサポートしていないため) –

関連する問題