[英]Delphi FMX TListview - display a default png if table Blob is null
[英]Remove separator lines for TListView on Delphi FMX
您是否尝试过使用“DynamicAppearance”模式? 但是您必须手动编写代码,在“结构”部分添加图像和文本字段,并在“onUpdateObjects”事件中管理所有内容。 像这样:
procedure TForm1.FormCreate(Sender: TObject);
var Voce : TListViewItem;
begin
Voce := ListView1.Items.Add;
Voce.Data['Text3'] := 'pippo 1';
Voce := ListView1.Items.Add;
Voce.Data['Text3'] := 'pippo 2';
end;
procedure TForm1.ListView1UpdateObjects(const Sender: TObject;
const AItem: TListViewItem);
var ImageItem : TListItemImage;
TextItem1 : TListItemText;
begin
ImageItem := AItem.Objects.DrawableByName('Image2') as TListItemImage;
TextItem1 := AItem.Objects.DrawableByName('Text3') as TListItemText;
If Assigned(ImageItem) Then
Begin
ImageItem.Bitmap := ImageList1.Bitmap(TSizeF.Create(16,16),0);
//ImageItem.PlaceOffset.X := 0;
//ImageItem.PlaceOffset.Y := 0;
End;
If Assigned(TextItem1) Then
Textitem1.TextColor := claRed;
end;
在“ImageList1”中有一个简单的白色图像。
也许可以对“自定义样式”进行操作以获得您想要的效果,但我无法做到,由于其他原因,我使用了这个程序,它可能会满足您的目的。 我做了一些测试,效果很好。
在表单上放置一个 ListView。
在“对象检查器”部分:ItemApperance\ItemEditAppearance\DynamicAppearance ItemSpaces Left=0, Right=-10
在“结构”部分:右键单击“ListView1”,然后“切换设计模式”展开“ListView1”和 select“项目”,在属性中单击“添加新...\TImageObjectAppearance”
该图像将包含一个白色 bitmap(或其他颜色),它将覆盖一个项目和另一个项目之间的标志,在您看到项目结构的表格上,您可以根据需要手动修改图像,或写在“onUpdateObjects " 事件一些代码,这里是一个例子:
procedure TForm1.ListView1UpdateObjects(const Sender: TObject;
const AItem: TListViewItem);
var ImageItem : TListItemImage;
TextItem1 : TListItemText;
begin
ImageItem := AItem.Objects.DrawableByName('Image2') as TListItemImage;
TextItem1 := AItem.Objects.DrawableByName('Text1') as TListItemText;
//ImageItem.Bitmap := Image1.Bitmap;
ImageItem.Bitmap := ImageList1.Bitmap(TSizeF.Create(16,16),0);
//ImageItem.Visible := True;
//ImageItem.ScalingMode := TImageScalingMode.Stretch;
ImageItem.PlaceOffset.Y := -1;
ImageItem.PlaceOffset.X := 0;
ImageItem.Height := 2;
ImageItem.Width := Width;
end;
要将项目添加到列表中,您需要使用以下代码:
var Voce : TListViewItem;
begin
Voce := ListView1.Items.Add;
Voce.Data['Text1'] := 'pippo 1';
更改 ListviewStyle.Frame.color 属性并将其设置为等于 ListviewStyle.background.color 属性。
很多方法可以做到这一点:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.