Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > TToolBar добавление кнопки


Автор: GePo 4.8.2006, 15:14
Нужно во время выполнения программы( во время загрузки) программно добавлять кнопки ToolBar. TToolBar.Buttons является далеко не TList и метода Add у него нет, других методов я не нашел. Пробовал так:
Код

  for i := 0 to L.Count - 1 do
    begin
      But := TToolButton.Create(MainToolBar);
      But.Parent := MainToolBar;
      But.Left := tbSeparator.Left + tbSeparator.Width + i*(MainToolBar.ButtonWidth + 1) + 1;
      But.Top := 0;
      But.Tag := i;
    end;

но на всех уже имеющихся кнопках исчезают картинки.
Как быть?
Перегружать TToolBar не очень бы хотелось( но в нем есть все необходимые фукнции)

Автор: Alexeis 4.8.2006, 15:45
GePo, Вот это не понятно
Цитата(GePo @  4.8.2006,  15:14 Найти цитируемый пост)
но всех уже исчезающих кнопках исчезают картинки.


Автор: GePo 4.8.2006, 15:47
alexeis1, сорри, исправил  smile 

Автор: Snowy 4.8.2006, 15:48
Код

But.SetToolBar(MainToolBar);

Автор: GePo 4.8.2006, 15:56
Snowy, у меня такого нет.
BDS 2006

Автор: Snowy 4.8.2006, 15:59
А, ну да. У тебяж не свой компонент. Нужно просто вскрыть protected сабклассированием:
Код

type
  TToolButton = class(ComCtrls.TToolButton) end; // вскрываем protected

...

procedure TForm1.ToolButton1Click(Sender: TObject);
var
  But: TToolButton;
begin
  But := TToolButton.Create(ToolBar1);
  But.ImageIndex := Random(ImageList1.Count);
  But.SetToolBar(ToolBar1);
end;

Автор: GePo 4.8.2006, 16:07
Snowy
во, спасибо. Теперь все работает

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)