是的,有办法.我是通过使用这两种方法来实现的. CreateItem方法是将所需组件放在listitem中的位置.
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;