2

有没有办法让 Delphi 的 TListView 表现得像 android 中的实际 ListView?例如,列表中的每个项目都有自己的“视图”,并且在该视图中可以是多个其他视图(组件),例如多个文本框和复选框以及...?

在此处输入图像描述

4

2 回答 2

2

是的,有办法。我通过使用这两种方法来做到这一点。CreateItem 方法是您在列表项中放置所需组件的位置。

procedure TForm1.CreateItem;
var
edit1:TClearingEdit;
editCalendar1:TCustomCalendarEdit;
begin
  edit1:= TClearingEdit.Create(Self);
  edit1.Parent := fItem;
  edit1.Align := TAlignLayout.alClient;
  edit1.Text := 'Blabla';
  edit1.OnChange := actEdit1OnChange;

  editCalendar1 := TCalendarEdit.Create(Self);
  editCalendar1.Parent := fItem;
  editCalendar1.Align := TAlignLayout.alRight;
  editCalendar1.Width := 90;
  editCalendar1.Date := Date;
  editCalendar1.OnChange := actEditCalOnChange;
end;

procedure TForm1.CreateListItem;
begin
  fItem:= TListBoxItem.Create(your_listbox);
  fItem.Parent := your_listbox; //Here you put the ListBox as a parent
  fItem.Align := TAlignLayout.alTop;
  fItem.Text := '';
  fItem.Height := 50;

  CreateItem;
end;

要将自定义项添加到列表中,只需调用 CreateListItem 方法!接下来我使用 OnChange 方法接收数据,这里是一个例子:

procedure TForm1.actEditCalOnChange(Sender: TObject);
begin
  label1.text := TCalendarEdit(Sender).Text;
end;

procedure TForm1.actEdit1OnChange(Sender: TObject);
begin
  label2.text := TClearingEdit(Sender).Text;
end;
于 2013-12-30T10:34:24.133 回答
0

您将不得不使用 TListBox,然后您可以添加列表项,并且每个项都可以具有项文本和详细信息,但您仅限于预定义的布局。您不能像在 Eclipse 中那样制作完全自己的布局。您必须使用 FireMonkey 样式设计器来创建自己的样式。看看这里

于 2013-10-15T04:49:58.763 回答