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


Автор: SMisha 8.8.2008, 11:58
Есть ли у кого нибудь на примете компонент, ButtonBar как в тотал коммантедере, панель нижняя с горячими клавишами. Чтобы с авторазмером кнопок при изменени окна и т.д. Я делал это все вручную несколько раз, описывал положение кнопок относительно границ панели на которой они расположены, но это довольно муторно и долго (особенно когда кнопок с десяток и более). Наверняка есть какойто более простой способ, подскажите как это сделать или дайте ссылку на компонент, желательно Free. Спасибо.

Автор: Frees 8.8.2008, 13:23
Anchors свойство у кнопок посмотри 

Автор: Poseidon 8.8.2008, 13:32
В Тотале как-раз все в ручную и делается. Через событие OnResize формы.

Автор: Frees 8.8.2008, 13:36
ну да действительно поторопился анчерами не получется

Добавлено через 8 минут и 7 секунд
положи на панель нужное кол - во кнопок
и на событие 
OnResize панели напиши

Код

procedure TForm1.Panel1Resize(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to Panel1.ControlCount - 1 do
  begin
    Panel1.Controls[i].Width := Trunc(Panel1.Width / Panel1.ControlCount);
    Panel1.Controls[i].Left := Trunc(Panel1.Width / Panel1.ControlCount)
      * Tbutton(Panel1.Controls[i]).TabOrder;
  end;
end;

Автор: SMisha 8.8.2008, 15:31
в Тотале есть промежуток между кнопками, 
правый край из за TRUNK при большом количестве кнопок по идее начнет дергатся довольно сильно при большом количестве кнопок и изменении размера...  Идея хорошая, я раньше пересчитывал пиксели , не догадался Panel1.ControlCount использовать, хорошоб конечно чтобы типа компонента все это было, лошиш на форму панель, указываешт количество кнопок, обращение к свойствам кнопки по индексам... Но пока на этом спасибо. поэкспериментирую дома...

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