問題タブ [tscrollbox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1909 参照

delphi - TScrollBox スクロールバーが実際に表示されていることを確認します

私は、TScrollBox ( Align := alClient) といくつかのコントロールを TScrollBox に置いた単純なサイズの大きなフォームを持っています。ユーザーがフォーム サイズを変更すると、TScrollBox は、HorzScrollBar と VertScrollBar を表示および非表示にします (実際のクライアント フォーム サイズによって異なります)。

実行時に確認する方法 - HorzScrollBar または VertScrollBar は現在表示されていますか?

TControlScrollBar.Visible調整機能しかないので答えません。

0 投票する
1 に答える
1335 参照

delphi - スクロール ボックス内のコントロールがフォーカスされないようにするにはどうすればよいですか?

垂直スクロールがTScrollBoxあり、水平スクロールバーが無効になっています。このスクロール ボックス内には、上部に配置された 1 つの大きなパネルがあり、その高さはその内容に基づいて動的に計算されます。その内容は 2 つのパネルで、1 つは左側に配置され、もう 1 つはクライアントが配置され、その間にスプリッターがあります。これら 2 つのパネルのそれぞれの内部には、ユーザーが選択した一連のパネルが上部に配置されており、動的にサイズ変更することもできるため、スクロール ボックス内のメイン パネルの高さを拡大/縮小できます。

同時に、コンテンツのこれらの小さなサブパネルのほとんどには、フォーカスを受け取るコントロールもあり、フォーカスを取得できるようにする必要があります。現在、すべてがスクロールで正常に動作します。

この問題は、ユーザーがスクロール ボックス内のそのようなフォーカス可能なコントロールの 1 つをクリックしたときに発生します。そのコントロールが部分的に非表示になっている場合 (コントロールの上部がスクロール位置の上部より上に伸びている)、スクロール ボックス全体がジャンプして、このコントロールがスクロール ボックスの上部に配置されます。

これは「機能」のようですが、無効にしたい機能です。この状況ではかなり厄介です。子の 1 つがフォーカスを受け取ったときにスクロール ボックスの位置がジャンプしないようにするにはどうすればよいですか?

0 投票する
1 に答える
133 参照

delphi - 親がスクロールボックスの場合、firemonkey で空の親名を取得する

親がスクロールボックスの場合、親の名前を取得するにはどうすればよいですか。次の例は空を返します:

0 投票する
1 に答える
117 参照

delphi - ローカル変数がフォーム コントロールへのポインタとして使用されるだけの場合、ローカル変数を「作成」/初期化する必要がありますか?

スクロールボックスを同期するこの簡単な例があります。ここでは、ラジオボタンで同期する側を制御します-左側または右側を同期します。コンパイルすると、コンパイラ メッセージが表示されます。

[dcc32 警告] Unit1.pas(51): W1036 変数 'ScrlBox1' が初期化されていない可能性があります

[dcc32 警告] Unit1.pas(51): W1036 変数 'ScrlBox2' が初期化されていない可能性があります

これは簡単な例です:

ここでの問題は何ですか?

これを最初に追加すると、メッセージはなくなります。

しかし、スクロール ボックス変数を作成する必要はないと思いますよね?これらは、フォーム上のコントロールへの単なる変数ポインターです。

0 投票する
3 に答える
1465 参照

delphi - ラベルをスクロールボックスの中央にスムーズに配置するにはどうすればよいですか?

テキストを表示するためにTMemoinを使用し、ヘッダー情報として on top を使用します。メモがスクロールボックスよりも広い場合もあります。もちろん、メモを左右にスクロールしてメモ内のテキストを表示することもできます。スクロールボックスの表示領域の中央に常にヘッダーとしてラベルを付けたいと思います。設定でこれを行うことができますが、動作しますが、前後にスクロールするとちらつき、揺れます。メモはスムーズに動きますが、ラベルは動きません。TScrollBoxTLabelHorizontal scroll barLabel1.Left:= (Scrollbox1.Width div 2) - (Label1.Width div 2);

ここに画像の説明を入力

単位は次のとおりです。

そしてdfm:

使用してみDoubleBufferedましたが、役に立ちません。

スクロール時に Memo1 と同じくらい滑らかに、Label1 をちらつきや揺れなく動かす方法について何か提案はありますか?


編集:

最終的には、フォームに 3 つ以上のスクロールボックスがあり、それぞれにヘッダー付きのメモが最大 3 つ含まれているという設計になります。また、同じスクロールボックス内のすべてのメモを同時にスクロールする必要があるため、スクロールはスクロールボックスで行う必要があります。つまり、フォームまたはパネルにラベルを付けてから、スクロールボックスの外側のフォームにラベルを付ける方法がわかりません。

ここに画像の説明を入力


編集2:

以下の回答は良い解決策を提供しますが、Labels中央に配置されている を の外にScrollbox配置し、それ自体の上に置く必要がありFormます。そして、 によって、Scrollbox's scroll barsまたは によってscroll bars直接移動しますFormLabelsこれにより、望ましい効果が得られますが、の一部ではないという不便さが少し加わりScrollboxます。

0 投票する
1 に答える
296 参照

delphi - TScrollBox のコンポーネントの 2 つの列、Delphi

ユーザーがUIコンポーネント(TImage)ランタイムをドラッグアンドドロップできる添付のシナリオのようなものが必要でした(ツールパレットからではありません)。今まで使ってTScrollBoxいました。しかし、付属の構造物に合わせて2つに分割することはできませんでした。

コンポーネントのレイアウト

2 番目のコンポーネントを続けて使用できますが、オプションです。また、2 つのコンポーネント (行単位) は同期してスクロールする必要があります。

2 つの TScrollBox を追加し、次のコードを使用して垂直スクロールバーを同期することを考えていました: Delphi で TScrollBox のスクロールを追跡する方法

しかし、「Scrollbox1.VertScrollBar.Position」プロパティが見つかりませんでした。

0 投票する
2 に答える
2483 参照

delphi - スクロールバーが一番下にあるかどうかを検出する方法は?

a の垂直スクロールバーがTScrollBox一番上にあるかどうかは簡単に検出できます。

ここに画像の説明を入力

しかし、 a の垂直スクロールバーが一番下にあるかどうかをどのように検出できますTScrollBoxか?

ここに画像の説明を入力