2013-03-05 9 views
5

Potrzebuję mieć dwa TToolBar s po prawej stronie mojego głównego formularza, więc wstawiam trzy TPanel s dla wyrównania, a następnie umieszczam wewnątrz nich TToolBar. Próbowałem powiedzieć, że toolbutton s mają taką samą szerokość w ciągu ostatniego dnia, bezskutecznie. Oto zrzut ekranu z tego, co mam: enter image description hereDlaczego przycisk obliczania TToolBar jest automatycznie dopasowywany automatycznie po ustawieniu funkcji ShowCaption True?

I okazało się, że jeśli ShowCaption jest ustawiony na True, paski narzędzi automatycznie obliczy przycisk szerokości. Moje pytanie brzmi: dlaczego i jak to wyłączyć?

Odpowiedz

-2

Można użyć Inspektor obiektów ustawić przycisk szerokość o wartości statycznej lub użyć formcreate lub onpaint lub onresize etc, aby ustawić wartość dynamicznie ........

+0

'ButtonWidth' powraca do wartości' TToolBar' oblicza –

+0

buttonwidth jest własnością ttoolbar ...... –

+0

wiem. Nie mogę go ustawić, ponieważ powraca do wartości, którą pasek narzędzi już obliczył dla tego –

2

Spójrz na to podejście:

  1. Ustaw dla opcji Autosize na False dla wszystkich przycisków.
  2. Zadzwoń następujących wewnątrz OnCreate przypadku formularza: SendMessage(ToolBar3.Handle,TB_SETBUTTONWIDTH, 0, MAKELPARAM(0, <DEFAULT_WIDTH_THAT_YOU_WANT_TO_SET>));
  3. Upewnij się, że nie zmieniają właściwości Visible żadnych przycisków przed powyższym wezwanie - jak to nie dla tych przycisków, które nie są widoczne.
  4. Upewnij się również, że masz "CommCtrl" na liście zastosowań dla wiadomości TB_SETBUTTONWIDTH.

Aby uzyskać więcej informacji: http://zarko-gajic.iz.hr/ttoolbars-ttoolbutton-autosize-width-issues-empty-caption/

Powiązane problemy