Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вопрос о ToolBar [D7, WinXP]


yaroslav ©   (2006-01-30 12:18:00) 

Ситуация следующая:

Создаю ControlBar на него кидаю ToolBar с несколькими кнопками. Далее в RunTime изменяю ширину окна (просто тащу границу), возвращаю обратно, а ToolBar уже отображается неполностью - та часть, которая скрылась за границей окна не отображается вообще.

как бороться? please...


yaroslav   (2006-02-01 14:43:00) [1]

спасибо за ответ


Gero   (2006-02-01 13:42:00) [2]

> К этому надо привыкнуть или писать свой компонент

Илди править уже существующий.


msguns   (2006-02-01 13:41:00) [3]

У толбаров в делфе есть реальные баги. Например при выравнивании на контролбаре или произвольной перемене позиций относительно друг друга при наполнении их кнопками, "перелазании" с "этажа" на "этаж" и т.д.
К этому надо привыкнуть или писать свой компонент (интегрировать в среду готовый сторонний)


Gero   (2006-02-01 13:19:00) [4]

> Что самое интересное, что сама делфовская IDE имеет такую
> же проблему!!!

Это говорит о том, что это баги VCL. Нужно лопатить VCL и править некорректно работающий код (сохраняя исправленные модули отдельно, конечно), или (если это возможно), напоисанием наследников с перекрытием криво работающих методов.


yaroslav   (2006-01-31 11:46:00) [5]

Если не делать привязку
  controlbar.align:=alTop;
то все работает, т.к. при resiz'e не изменяется controlbar.width
(но на самом деле НЕ работает! сделай панельку побольше - обрежется)

..кстати пробовал на многих компьютерах, везде одно и тоже. Что самое интересное, что сама делфовская IDE имеет такую же проблему!!!
Если немного побаловаться с ее окном - главное меню тоже "обрезывается"!

Проблему решил так:

  ControlBar.Align:=alTop;
 ControlBar.AutoSize:=True; //это мне нужно для дизайна
 ToolBar.Constraints.MinWidth:=<значение>;
 //при такой ситуации не удасться скрыть ToolBar границей формы вообще,
 //а вот с этим - будет можно:
 ToolBar.Align:=alNone;


Но только если панелек много - как зачастую и бывает - придется повторить 2 последние операции для каждой.

Странно, что у тебя получилось... (Я думаю, что в привязке ControlBar дело..)

Anyway спасибо за помощь


Bratskiy   (2006-01-31 04:37:00) [6]

Сделал как у тебя на картинках. Проблем почему-то нет. Всё нормально отображается.
Может ещё исходник оправишь.


yaroslav   (2006-01-30 13:23:00) [7]

беда не только в resiz'e формы,
если несколько тулбаров выстроить в ряд, то после смены фокуса неотображаемая часть все равно пропадает. Это происходит и на этапе разработки, натурально меняется toolbar1.width.. думаю даже не в форме дело, может что-то в свойствах controlbar? посмотри почту - там картинки..


Bratskiy   (2006-01-30 12:52:00) [8]

Так пробовал?

procedure TForm1.FormResize(Sender: TObject);
begin
Form1.Refresh;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо