2017-04-13 73 views
0

德爾福10.1.2 VCL的應用程序,我有一個TToolButtonTToolBar如何在設計時設定精確的TToolButton高度?

object tlbDocProperties: TToolBar 
    AlignWithMargins = True 
    AutoSize = False 
    Left = 1 
    Top = 28 
    Width = 422 
    Height = 28 
    Margins.Left = 0 
    Margins.Right = 0 
    BorderWidth = 1 
    ButtonWidth = 148 
    Color = clBtnFace 
    DoubleBuffered = True 
    EdgeInner = esNone 
    EdgeOuter = esRaised 
    Images = cxImageList16Bookmarks 
    Indent = 5 
    List = True 
    ParentColor = False 
    ParentDoubleBuffered = False 
    ShowCaptions = True 
    TabOrder = 0 
    Transparent = False 
    object btnEditDocProps: TToolButton 
    AlignWithMargins = False 
    Left = 5 
    Top = 0 
    Height = 22 
    Down = False 
    AutoSize = False 
    Caption = 'Edit Document Properties' 
    ImageIndex = 56 
    Style = tbsCheck 
    OnClick = btnEditDocPropsClick 
    end 
end 

每當我嘗試在設計時改變TToolButton的高度從22到24,它會自動彈回22我曾經嘗試都爲TToolButton,爲TToolBar在設計時許多不同的設置,但它總是扣回。

那麼我怎麼才能改變TToolButton在設計時的高度爲22〜24?

回答

1

我已經發現這可以作爲一個完全實用的解決方案一招:

代替使用用於TToolButton我使用16x18圖標從一個16x18的ImageList(寬度= 16,高度= 18)的16×16的圖標。

現在TToolButton的高度根據需要自動捕捉到24!

要設置按鈕到所需高度修改該字形的畫布高度在圖標編輯器通過將位於頂部的數目透明像素和該字形的底部,例如:

enter image description here

使用上述TToolBar例子中,我得到的這個經驗法則從幾個測試:

Button Height := Image Height + 6 

這意味着:隨着18的高度字形你得到的24按鈕的高度,並與字形喜ght 20你得到的按鈕高度爲26等。

記住:這隻適用於上述配置,即當ToolBar.List = TrueToolbar.ShowCaptions = True。當然,你需要一個ToolBar.Images ImageList,其中ImageList.Height匹配字形高度。

+0

我想使用16x18的字形,並且按鈕高度爲26.我該怎麼做。這是問的問題。你能回答嗎? –

+0

只需使用相關高度的字形。通過在字形的頂部和底部添加透明區域來更改字形的畫布大小。 – user1580348

+0

你還沒有真正回答過被問到的問題。 –

0

禁用的TToolBarShow Caption屬性,因爲它會導致按鈕根據字幕大小來調整

TToolBar.ShowCaptions

您也可以瞭解一個可能的解決方案爲您的問題在這裏

Why does a TToolBar calculate button widths automatically when ShowCaption is set True

請注意,您也可以使用其他的按鈕類似於標準TButtonTSpeedButtonTToolbar上手動放置它們。它們都允許您顯示標題,而不需要啓用TToolBar.ShowCaptions屬性,但它們看起來不一樣。

編輯:將TToolBar按鈕的高度增加到24的另一個解決方案是增加TToolBar.Font.Size

當使用Tahoma的字體,我不得不從8提高其大小默認爲11有按鈕的高度24.

所以周圍的字體大小有點玩找到自己應有的價值。

+0

不幸的是,這些建議並不適用於我的情況,因爲我需要按鈕上的標題。當我在工具欄上關閉'ShowCaptions'時,我可以將按鈕高度設置爲24,但是當我再次切換ShowCaptions時,按鈕高度會自動回到22.我不能使用其他按鈕,因爲我有幾個工具欄該應用程序應該都是相同的視覺風格。而且我也無法增加字體大小,因爲這會使按鈕標題看起來非常難看。 – user1580348

+0

即使當我在工具欄上使用「TSpeedButton」時,它總是會回覆到22的高度! – user1580348