- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个在 TListView 控件上使用 LV_VIEW_TILE 的代码:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, ComCtrls, CommCtrl,
StdCtrls;
procedure TileView(aListView: TListView);
var
ti: TLVTILEINFO;
Order: array of Integer;
tvi: TLVTILEVIEWINFO;
i: integer;
begin
ListView_SetView(aListView.Handle, LV_VIEW_TILE);
for i := 0 to aListView.Items.Count - 1 do begin
FillChar(ti, SizeOf(ti), 0);
ti.cbSize := SizeOf(ti);
// First item
ti.iItem := i;
// Specifying the order for three columns
ti.cColumns := 4;
// Array initialization
SetLength(order, ti.cColumns);
// The order is 2nd, 3rd and 4th columns
order[0] := 1;
order[1] := 2;
order[2] := 3;
order[3] := 4;
ti.puColumns := PUINT(order);
ListView_SetTileInfo(aListView.Handle, ti);
end;
tvi.cbSize := Sizeof(tvi);
tvi.dwMask := LVTVIM_COLUMNS;
// Requesting space to draw the caption + 3 subitems
tvi.cLines := aListView.Columns.Count;
ListView_SetTileViewInfo(aListView.Handle, tvi);
end;
procedure TForm3.FormCreate(Sender: TObject);
var V: TListView;
A: TListItem;
begin
V := TListView.Create(Self);
V.Parent := Self;
V.Align := alClient;
V.Columns.Add;
A := V.Items.Add;
A.Caption := 'Item A';
A.SubItems.Add('Sub A');
A := V.Items.Add;
A.Caption := 'Item B';
A.SubItems.Add('Sub B');
TileView(V);
end;
使用Delphi 2007编译并构建代码并在Windows XP中运行该应用程序,它显示:
用Delphi XE2编译相同的代码并在Windows XP中运行,显示:
在Delphi XE2中编译时不显示子项。
两个 Delphi 2007/XE2 应用程序都显示 Windows 7 中的平铺 View 子项。
我尝试将 list 嵌入应用程序的资源中或作为外部文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="DelphiApplication"
version="1.0.0.0"
processorArchitecture="*"/>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
知道为什么 Delphi XE2 编译的应用程序在 Windows XP 中不显示平铺 View 吗?
最佳答案
Delphi XE2中的Unit Winapi.CommCtrl.pas定义:
tagLVTILEINFO = record
cbSize: UINT;
iItem: Integer;
cColumns: UINT;
puColumns: PUINT;
piColFmt: PInteger;
end;
但是MSDN API定义为:
typedef struct LVTILEINFO {
UINT cbSize;
int iItem;
UINT cColumns;
PUINT puColumns;
#if (_WIN32_WINNT >= 0x0600)
int *piColFmt;
#endif
} LVTILEINFO, *PLVTILEINFO;
piColFmt 不应该在 Windows XP 平台上使用。删除 piColFmt 应该可以在 Windows XP 中使用。
关于德尔福XE2 : TListView as tile view not working in Windows XP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9221835/
我正在使用 Embarcadero 的 C++ Builder XE8。我有一个 ListView 并动态添加列及其项目。我需要一个图像列表,因为我想使用 (ListItem->SubItemImag
我正在尝试在 TListView 中放置一个图标当某些行显示时,我有 TImageList与加载的图像,但它没有连接。我的代码是这样的 with sListView2 do begin test
当使用 TListView 并且主题在应用程序中被禁用时,焦点和选定的项目显示如下: 注意两个图像中三角形所在的位置。项目的绘制框不会在图标出现的位置绘制。在 TListBox 中,绘制的项目填充整个
我已经使用 TListView 制作了我的应用程序,以将主数据集显示为列表作为导航记录的方式。我已将 LiveBindings 与 Sync * 连接一起使用。 主要问题是它将整个表加载到内存中。大
我有一个 TListView 的后代,它提供了一些附加功能,例如排序和从 TDataset 加载自身的能力。我现在希望进一步扩展这个组件,以便在将项目添加到 ListView 时可以指定绘图的某些方面
TListView 控件是否有一个在控件滚动时触发的事件? 我宁愿不必对 TListView 控件进行子类化。 最佳答案 这非常有效,但可能会违反您问题的限制。 在包含使用 TListView 的表单
编写 FMX 应用程序并使用以下文档... http://docwiki.embarcadero.com/RADStudio/Berlin/en/Customizing_FireMonkey_List
我创建了 ListView 并添加了复选框来检查每一行(如果需要)。一切都很好,直到 ListView 中有很多项目,因此需要对其进行排序。我在线检查,然后发现如果滚动滚动条,复选框不会与其他内容一起
我正在对 tlistview 进行编程,以便它从右到左显示其列(以便正确显示希伯来语文本)。我在表单的创建方法中使用以下代码,其中“lv”是 ListView SetWindowLong (lv
我有一个包含 3 列的 Tlistview,我需要来自 Tcollection 对象,如下所示 FListeDispoProduit := TListeDispoProduit.Create(TPro
我有一个显示小缩略图的TListView(ViewStyle:=vsIcon)。在运行时,我将图像分配给项目: for i := 0 to Total - 1 DO with ListVie
我正在使用 Delphi 2010,并且我试图允许用户在 TListView 中的每行 2 个选项之间进行选择。使用 TListView,我可以将样式设置为 vsReport 并启用复选框,但这只会让
当项目添加到 TListView 时,如何捕获事件? 根据文档,我认为 OnInsert 事件可以完成这项工作。它甚至将实际的 TListItem 对象传递给处理程序: OnInsert Occurs
是否可以修复 TListView 中 subitem 图像的绘制,以便它们不会如图所示在左侧被截断? 最佳答案 嗯,Pieter van Wyk,我做了一个简单的示例,展示了如何自行绘制 TListV
使用标准 TListView 组件 (ViewStyle = vsReport),我附加了一个 TImageList 并成功将图像添加到第一列 (Item.ImageIndex := 0) )以及后续
带有 FireMonkey 的 Delphi 10.4.1。 我在 TListView 上有 50 个项目,ID 从 1 到 50。这里没有发布代码,因为我什至不知道从哪里开始。 如果我搜索 ID=3
我需要更改我的 listView 的所有标题的背景颜色以突出显示它们。我在 Object Inspector 上一无所获,在 Style Designer 上也一无所获,你们能给我一些指导吗? 最佳答
我有一个 ViewStyle 设置为 vsReport 的 TListView。如何更改网格的颜色和网格线的宽度。 D2009 中的网格线有点太粗了,我想要与 D5 中的宽度相同。 谢谢 最佳答案 没
我正在使用 TListView我已经成功地填充了每个项目的标题和第一个子项目。请参见下面的示例。 user pass working status valid data1 pass -
我有一个包含 4 列的 TListview(当然都是字符串),但是,我在其中存储数据: 标题:任意字符串 SubItems[0]:整数,例如'5016' SubItems[1]:日期,例如'03/22
我是一名优秀的程序员,十分优秀!