相信我,在完成帮助之前,我做了功课。我花了3天时间搜索和阅读,但我无法找到解决方案。所以任何帮助都将受到高度赞赏。
我的任务是将ListView连接到数据集,其中ListView项具有以下结构:
请记住
我得到的最好的是对Delphi标准示例的引用随Embarcadero Delphi示例目录:ListViewMultiDetailAppearance。 这个解决方案提供了为MutliDetailItemAppearance创建我们自己的类,并根据需要注册了许多细节(在我的情况下,我认为我需要额外的8个)。
现在我的问题:
非常感谢你提前的想法。
答案 0 :(得分:1)
我不确定我的方式是否正确,但我在我的fmx项目中使用TListbox也是如此。在从DataSource
填充LiveBindings
期间,其项目的结构以下列方式形成。
procedure THMICD10Fr.LinkListControlToField1FillingListItem(Sender: TObject;
const AEditor: IBindListEditorItem);
begin
if (Assigned(AEditor)) and (HDM2.FDQicd_detail_for_TreeView.Active) then
try
if (AEditor.CurrentObject as TMetropolisUIListBoxItem).ChildrenCount = 2
then
begin
with TPanel.Create(AEditor.CurrentObject as TMetropolisUIListBoxItem) do
begin
Parent := (AEditor.CurrentObject as TMetropolisUIListBoxItem);
Align := TAlignLayout.alRight;
Width := 45;
Margins.Bottom := 1;
Margins.Top := 1;
end;
with TLabel.Create((AEditor.CurrentObject as TMetropolisUIListBoxItem)
.Children.Items[2] as TPanel) do
begin
Parent := (AEditor.CurrentObject as TMetropolisUIListBoxItem)
.Children.Items[2] as TPanel;
Text := '↓';
VertTextAlign := TTextAlign.taCenter;
TextAlign := TTextAlign.taCenter;
Align := TAlignLayout.alClient;
HitTest := true;
AutoSize := false;
StyledSettings := StyledSettings - [TStyledSetting.ssStyle];
Font.Style := Font.Style + [TFontStyle.fsBold];
Tag := HDM2.FDQicd_detail_for_TreeView.FieldByName('id').AsInteger;
TagString := HDM2.FDQicd_detail_for_TreeView.FieldByName
('category_etiology').AsString;
OnClick := LabelInListBox1Click;
end;
end;
except
end;
end;
您可以在Item中创建并嵌套所有必需的TLayouts
,TLabels
等,并使用LiveBindings
事件处理程序内部的逻辑设置所有必要的设置。