将多个TFrame控件添加到TScrollBox

时间:2010-12-01 07:56:48

标签: delphi vcl

我正在使用Delphi在这里做一些离线购物车应用程序而且我被卡住了。我需要在listview中的产品选择中将框架插入到滚动框(充当购物车项目行,我可以删除项目,添加数量等)。但我不能在那里添加多个帧。

    procedure TfrmMain.lvProductsSelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
var
  cartRow: TFrame1;
  i: Integer;
  count: Integer;
begin

  cartRow := TFrame1.Create(nil);
  cartRow.Edit1.Text := Item.Caption;
  cartRowArr := TObjectList<TFrame1>.Create;
  cartRowArr.Add(cartRow);
  count := cartRowArr.Count;
  for i := 0 to cartRowArr.Count - 1 do
  begin
    ScrollBox1.InsertControl(cartRowArr[i]);
  end;
end;

它始终在那里,并且不能正确。如果我选择产品我需要插入框架,如果我选择另一个产品我需要插入antoher框架。如果我选择的产品在那里是alredy,那么将数量提高一个。

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:2)

我怀疑您希望滚动框中的多个框架最终在彼此之下。你有没有尝试添加

cartRow.Align := alTop;

这会导致行自动垂直对齐。

答案 1 :(得分:0)

根据文档,您应该设置控件的父属性,而不是使用InsertControl。因此代码应该是:

for i := 0 to cartRowArr.Count - 1 do
begin
  cartRowArr[i].Parent := ScrollBox1;
end;

http://docwiki.embarcadero.com/Libraries/XE3/en/Vcl.Controls.TWinControl.InsertControl