如何锚定TPanel
以使其保留在拉撒路的表格顶部?当我在Delphi 7中这样做时,它工作正常。看起来TPanel
成为画布的一部分,当您向下滚动TPanel
滚动屏幕时。用户需要能够点击TPanel
上的按钮,无论它在表单上滚动到何处。理想情况下,我喜欢像菜单下方菜单上的菜单一样,例如与顶部对齐。
以下是FormCreate
程序:
procedure TfrmTestPanel.FormCreate(Sender: TObject);
var
Bitmap: TBitmap;
begin
Bitmap := nil;
try
Bitmap := TBitmap.Create;
Bitmap.Width := 3000;
Bitmap.Height := 2000;
imgTest.Picture.Graphic := Bitmap;
imgTest.Width := 3000;
imgTest.Height := 2000;
finally
Bitmap.Free;
end;
end;
我在表单的右下方有滚动条,因此用户可以向上或向下或向左滚动图像。当用户向下或向右滚动时,工具栏将从屏幕上消失。我希望工具栏像菜单行一样保留在表单的顶部。我希望这可以帮助你理解这个问题。
答案 0 :(得分:1)
为什么不简单地将图片放入ScrollBox
而是将其直接放在表单上。
通过这种方式,您可以使用ScrollBox ScrollBars滚动图像,而无需像使用表单ScrollBars那样移动表单上的任何其他控件。
答案 1 :(得分:-1)
这是不可能的。表单的滚动条是表单窗口的standard scroll bars,因此它们滚动整个客户区域。无论你在表单上放置什么控件都在客户区,没有锚定会改变这一点。因此它将与客户区的其余部分一起滚动。
菜单不同,它是非客户区的一部分。您无法使用标准控件模拟窗口菜单的位置。
在您提到的问题的评论中,您已经使用GraphEx演示程序进行了测试。 GraphEx在顶部对齐的面板下方有一个客户区对齐的滚动框。滚动框是一个带滚动条的窗口,您可以将其放在窗体上。 Lazarus在"额外"调色板。通过使用滚动框,您可以使用与Lazarus相同的布局和GraphEx演示。