【发布时间】:2011-04-20 13:50:15
【问题描述】:
我有 Jordan Russel 的 Toolbar2000 工具栏,我在运行时使用嵌入式 TFrame 创建并停靠在应用程序主窗体上。这个框架有一个嵌入的窗格,反过来 包含其他面板和各种控件。所以结构是:
TTBDock
TTBToolbar
TFrame (align=alNone, Autosize=true)
TPanel 1 (align=alNone, Autosize=true)
TPanel 2 (align=alTop ,Autosize = false)
TPanel 3 (align=alTop ,Autosize = false)
TPanel 4 (align=alTop , Autosize = false)
这个想法是面板 2、3、4 明确调整其高度,然后框架(以及工具栏)自动调整大小以适应新大小。
它工作正常,只是工具栏第一次显示停靠在应用程序主窗体上时工具栏的大小错误。如果我强制调整工具栏的大小 点(例如,通过单击鼠标再次显式调整 TPanel 高度)它是正确的。我尝试调用例程来设置大小两次,调用 Update、Application.ProcessMessages、ReAlign - 除了让主窗体绘制然后再次手动执行调整大小之外,似乎没有任何效果。
如果我在调整大小例程结束时中断并检查面板大小和框架大小,它们是正确的,但工具栏大小不正确,所以第一次显示时,框架部分显示为错误大小工具栏。它是在另一个调整大小例程的调用之后出现的,但只是在主窗体自己绘制之后。
我可以拼凑一些讨厌的东西,比如在计时器到期后显式调整面板的大小,但我宁愿从源头解决问题。
关于为什么这可能发生(或不发生)的任何想法?
【问题讨论】:
标签: delphi toolbar delphi-2006 autosize tframe