Форум Программирование Вставка ToolButton в произвольное место в наследованной форме. Ахтунг!!! |
|
Имеем какую-либо форму с ToolBar. DFM-секция выглядит так: object ToolBar1: TToolBar Left = 0 Top = 0 Width = 313 Height = 38 ButtonHeight = 30 ButtonWidth = 31 Caption = 'ToolBar1' Images = ImageList1 TabOrder = 0 object ToolButton1: TToolButton Left = 0 Top = 2 Caption = 'ToolButton1' ImageIndex = 0 end object ToolButton2: TToolButton Left = 31 Top = 2 Caption = 'ToolButton2' ImageIndex = 1 end object ToolButton3: TToolButton Left = 62 Top = 2 Width = 8 Caption = 'ToolButton3' ImageIndex = 2 Style = tbsSeparator end object ToolButton4: TToolButton Left = 70 Top = 2 Caption = 'ToolButton4' ImageIndex = 2 end end Жизнь заставила создать наследика этой формы, чтобы добавить кнопку к какой-то группе. DFM-секция вроде тоже никаких нареканий не вызывает: inherited ToolBar1: TToolBar object ToolButton5: TToolButton [1] Left = 31 Top = 2 Caption = 'ToolButton5' ImageIndex = 4 end inherited ToolButton2: TToolButton Left = 62 end inherited ToolButton3: TToolButton Left = 93 end inherited ToolButton4: TToolButton Left = 101 end end Однако при запуске нас ждет неприятный сюрприз. Кнопка "убегает" в конец панели. Более того, при последующем открытии сохраненного проекта портится и сам dfm-файл: inherited ToolBar1: TToolBar object ToolButton5: TToolButton Left = 101 Top = 2 Caption = 'ToolButton5' ImageIndex = 4 end end Единственное решение, которое я нашел, плюнуть на dfm и выставлять позицию кнопок кодом при создании формы. procedure TForm2.FormCreate(Sender: TObject); begin inherited; ToolButton5.Left := ToolBar1.Buttons[1].Left; end; "Digital Networked Knight" | ||||||
|
Когда-то мучался с чем-то подобным. Помню, что с Align тоже подобное бывает — например |1|2|…, оба alLeft. Скрываем 1, потом снова показываем, а он уже справа от 2. Вроде бы так. | ||||||
Перейти в раздел:
© 2004 - 2025, Delphi.int.ru |
Версия форума: 1.10 (19.01.2010) |
Выполнено за 0.02 сек. |