2013-03-05 12 views
5

私はメインフォームの右側に2つのTToolBarを持っている必要がありますので、私は3つのTPanelをアライメントのために入れて、TToolBarを入れます。私は、toolbuttonに、過去1日の同じ幅を持たせようとしているが、役に立たなかった。 enter image description hereShowCaptionがTrueに設定されていると、TToolBarでボタンの幅が自動的に計算されるのはなぜですか?

私はShowCaptionTrueに設定されている場合、ツールバーは自動的にボタンの幅を計算することが判明:ここで私が持っているもののスクリーンショットです。私の質問はなぜ、これを無効にするのですか?

答えて

-2

+0

'ButtonWidth'がTToolBar'が –

+0

にbuttonWidthがttoolbarのプロパティで計算値'に戻り...... –

+0

私はそれを知っています。私はそれを設定することはできませんツールバーが既にそれのために計算された値に戻ります –

2

これを見てみましょう........あなたは、静的な値でボタンの幅を設定するには、オブジェクトインスペクタを使用するか、動的に値を設定するなどformcreateかのOnPaintまたはさらにonResizeを使用することができますアプローチ:

  1. すべてのボタンで自動サイズを偽に設定します。
  2. は、フォームのOnCreateのイベント内で次のように呼び出します。SendMessage(ToolBar3.Handle,TB_SETBUTTONWIDTH, 0, MAKELPARAM(0, <DEFAULT_WIDTH_THAT_YOU_WANT_TO_SET>));
  3. あなたが上記の呼び出しの前に任意のボタンのVisibleプロパティを変更しないことを確認してください - それが表示されていないこれらのボタンのために失敗しますよう。
  4. また、TB_SETBUTTONWIDTHメッセージの使用リストに "CommCtrl"があることを確認してください。詳細については

http://zarko-gajic.iz.hr/ttoolbars-ttoolbutton-autosize-width-issues-empty-caption/

関連する問題