我有一个放在表单上的框架。我希望在表格上放置这个框架的一些实例。
它有一个带有2列的drawgrid,在OnResize事件中,我将第2列扩展到可用空间的末尾。当表格被手动调整大小并将框架对齐设置为alTop时,这种方法有效。但是当表单首次出现时,即使调用FrameResize它也没有效果。 (虽然当我给它设置一个断点时它确实有了预期的效果)。
所以,我现在正在做的是从表单OnShow处理程序调用FrameResize,但这很难看。如果没有表格的帮助,框架应该能够正确显示。
有什么想法吗?我确实尝试重写SetParent,但这不起作用。使用Xe2。
TIA 标记
答案 0 :(得分:1)
我已经通过Delphi Team Delphi成员Peter Below的建议解决了这个问题。
我超越了框架的界限。它甚至在组件变量设置之前就被调用了,所以它看起来像这样
procedure TfaDupDisplay.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); // Had to use SetBounds because OnRezise was not working
var grid: TDrawGrid;
begin
inherited;
if pnlWebData = nil then
exit;
pnlWebData.Width := Width div 2;
for grid in TArray<TDrawGrid>.Create(grdData, grdDup) do
grid.ColWidths[1] := grid.Width - grdData.ColWidths[0];
end{ SetBounds};