![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вопрос о 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;