如何滚动TFlowPanel的内容?

时间:2010-07-15 09:01:42

标签: delphi delphi-2010 vcl

TFlowPanel控件的Delphi实现似乎缺少C#版本的重要特性,AutoScroll

AutoWrap= FalseAutoScroll=True的C#控件的行为类似于水平可滚动控件列表。

我如何模仿控件的C#版本的行为?

谢谢, 阿林

P.S。 我知道我可以使用TScrollBox来获取此行为,但TFlowPanel(在非残缺版本中)允许更多的灵活性。

3 个答案:

答案 0 :(得分:9)

TScrollBox 中创建 TFlowPanel ,并使用以下属性:

  • Align:alLeft
  • AutoSize:TRUE
  • AutoWrap:FALSE

这应该可以让你了解我的想法。

答案 1 :(得分:4)

如果要垂直滚动

FlowPanel1.Align := alTop;
FlowPanel1.AutoSize := True;
FlowPanel1.AUtoWrap := False;

答案 2 :(得分:1)

对于正在寻找一种有效的垂直滚动方法的人:

procedure TfrmSample.FixVerticalScroll(const AFloatPanel: TFloatPanel);
begin
  fFloatPanel.Align := alTop;
  fFloatPanel.AutoSize := True;
  fFloatPanel.AutoWrap := True;
  fFloatPanel.OnResize := OnFlowPanelResize;
end;

procedure TfrmSample.OnFlowPanelResize(Sender: TObject);
begin
  // Fix: otherwise panel is not operating on the full width
  fFloatPanel.Align := alClient;
  fFloatPanel.Align := alTop;
end;