TToolButton. Скрестить стили tbsCheck и tbsDropDown
От: artsb  
Дата: 07.03.10 10:22
Оценка:
Всем привет!

Мне нужно, чтобы кнопка на ToolBar'е вела себя как кнопка со стилем tbsCheck, но в тоже время имела стрелочку как у стиля tbsDropDown.
Как этого можно добиться?
c++builder ttoolbutton
Re: TToolButton. Скрестить стили tbsCheck и tbsDropDown
От: Аноним  
Дата: 13.05.11 07:34
Оценка:
Здравствуйте, artsb, Вы писали:

A>Всем привет!


A>Мне нужно, чтобы кнопка на ToolBar'е вела себя как кнопка со стилем tbsCheck, но в тоже время имела стрелочку как у стиля tbsDropDown.

A>Как этого можно добиться?
1. установить стиль в tbsDropDown
2. создать обработчик onclick для кнопки, в нем вручную установить свойство Checked/(то же, что Down стиле tbsDropDown )
   Toolbar.Perform(TB_CHECKBUTTON, tbtnMyHybrid.Index, MakeLong(Ord(val), 0) );

здесь Toolbar — содерит эту кнопку, tbtnMyHybrid — сама кнопка, val- булево значение, true-значит будет нажатой, и наоборот
Re[2]: TToolButton. Скрестить стили tbsCheck и tbsDropDown
От: AlekXL  
Дата: 13.05.11 09:08
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, artsb, Вы писали:


A>>Всем привет!


A>>Мне нужно, чтобы кнопка на ToolBar'е вела себя как кнопка со стилем tbsCheck, но в тоже время имела стрелочку как у стиля tbsDropDown.

A>>Как этого можно добиться?
А>1. установить стиль в tbsDropDown
>2. создать обработчик onclick для кнопки, в нем вручную установить свойство Checked/(то же, что Down стиле tbsDropDown )
А>
А>   Toolbar.Perform(TB_CHECKBUTTON, tbtnMyHybrid.Index, MakeLong(Ord(val), 0) );
А>

А>здесь Toolbar — содерит эту кнопку, tbtnMyHybrid — сама кнопка, val- булево значение, true-значит будет нажатой, и наоборот
да еще в FormCreate добавить

var
   btnInfo:TTBButtonInfoW;
............
  btnInfo.cbSize:=SizeOf(btnInfo);
  btnInfo.dwMask:=TBIF_STYLE or TBIF_BYINDEX;
  btnInfo.fsStyle:=BTNS_DROPDOWN or BTNS_CHECK;


  r:=SendMessageW( MainToolbar.Handle,TB_SETBUTTONINFOW,tbtnResolveLinks.Index,LPARAM(@btnInfo));
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.