2016-04-06 12 views
0

私はC++ Builderの6動的に設定VertScrollBarプロパティ - 私はフォームを持っているC++ Builderの

を使用していますがTLabelが含まれています。

ラベル・テキストが表示されない場合があるので、必要に応じてフォームにスクロール・バーが含まれていることを希望します。

今は、ラベルの高さが高くなるとフォームの高さが高くなることがあります。

フォームの高さは、常に< =私が定義する変数で、ラベルの高さがその上限を超えた場合にVertScrollBarが表示されることを希望します。

これをサポートするフォームのVertScrollBarプロパティを設定するにはどうすればよいですか?

主に位置と範囲の設定方法は?

+0

「フォーム」ではなく、自分のスクロールバーを設定するほうが幸運だと思います。 Position、Min、Maxプロパティを簡単に設定することができます(ただし、例外が発生しないように正しい順序で)が、ラベルのレンダリングは同期されません。ラベルの代わりに、Form1-> Canvas-> TextOutA(x、y、 "string")を使って、OnPaintイベントで自分自身でテキストをレンダリングします。あなたは必要な文字列の一部を切り取るためにスクロールバーの位置を使うことができます。モノスペースのフォントはこれの良い出発点です( 'OEM_CHARSET、System、fpFixed'のように)。または、フルサイズとコピー矩形で仮想スクリーン(ビットマップ)を持つことができます... – Spektre

答えて

0

フォームのContraints.MaxHeightプロパティを希望の制限値に設定し、AutoScrollプロパティをtrueに設定します。内容が幅/高さを超えると、VCLはフォームのスクロールバーを自動的に管理します。

また、私はTLabelを取り除き、代わりにTRichEdit を使用することをお勧めします。 WordWrapをtrueに設定し、ScrollBarsssVerticalに設定します。スクロールバーが必要ないときは、自動的にスクロールバーを非表示にします。

TMemoは同じScrollBars性質を持っていますが、それが必要とされていない場合には、スクロールバーを非表示にしていません。

関連する問題