繁体   English   中英

删除 Delphi FMX 上 TListView 的分隔线

[英]Remove separator lines for TListView on Delphi FMX

是否可以删除 TListView 中的分隔线? 我尝试过使用 TListView 上的属性,但仍然无法删除它上面的线条......有人可以帮忙吗?

在此处输入图像描述

您是否尝试过使用“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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM