我正在构建一个需要打开的程序Form_Create,填充一个TListView被调用FileList的目录,我要填充的目录是编译的程序是+ \Files,因为我从来没用过TListView我想知道如何做到这一点?
我有一个包含3列的Tlistview,我需要来自Tcollection对象,如下所示
FListeDispoProduit := TListeDispoProduit.Create(TProduit);
with (FListeDispoProduit) do
begin
with TProduit(Add) do
begin
Name := 'Produit 01';
CIP := 'A001';
StockQty := 3;
end;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将此对象放入Tlistview时,只有第一列(Name)填充,我写这个:
for i := 0 to FListeDispoProduit.Count -1 do
Tlistview1.Items.Insert(i).Caption := TProduit(FListeDispoProduit.Items[i]).Name;
Run Code Online (Sandbox Code Playgroud)
我需要填写这3列(Name,cip,StockQty),我该怎么做?
谢谢.
希望我明白.
我在尝试为 Delphi XE7 的 TListView firemonkey 控件创建自定义项目外观时遇到了很多麻烦。我想要的是为一个项目应该是什么定义我自己的“设计”并使用该项目。例如 :
我想要一个带有标题(顶部) - 描述(中间) - 日期(底部) - 按钮(右侧)的项目。
我找不到任何关于此的好的文档,但我得到了一些有关如何创建具有多个详细信息的 TListView 的示例,但问题是:该示例没有记录,因此很难理解那里发生了什么。
我想要一个链接或一些关于如何做到这一点的解释,或者是否有其他方式来实现我想要的。我曾尝试使用 TListBox,但在移动设备上的性能有点差。我不得不说我可以用 TListBox 制作我想要的东西,但这就是问题......性能。
所以我想要一个控件来列出具有良好性能的项目(我可以自己创建)。
编写FMX应用程序并使用以下文档...
http://docwiki.embarcadero.com/RADStudio/Berlin/en/Customizing_FireMonkey_ListView_Appearance
我想在每个ListViewItem中放置多个图像或按钮,并确定按下哪个.
是否有选择项目的方法来确定按下了哪个按钮/图像?
例如,当我点击该项目时,我可能想要做一些默认(如显示细节)vs如果他们点击图像/按钮 - 做其他事情
我没有尝试过,因为我不知道从哪里开始。
是否可以将FMX TSwitch添加到FMX TListViewitem中?
任何帮助/建议将不胜感激。
谢谢,
将项目添加到TListView时如何捕获事件?
OnInsert根据文件,我认为该活动将起到作用.它甚至将实际TListItem对象传递给处理程序:
OnInsert在将新项插入列表视图后立即发生.
编写一个OnInsert事件处理程序,以便在项刚刚添加到列表时进行响应.Item参数是添加到Items属性的TListItem对象
这是我的代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
with ListView1.Items.Add do
begin
Caption := 'foo';
SubItems.Add('bar');
end;
end;
procedure TForm1.TListView1Insert(Sender: TObject; Item: TListItem);
begin
//Item is empty
ShowMessage(Item.Caption);
end;
Run Code Online (Sandbox Code Playgroud)
但令人惊讶的Item.Caption是,它始终是空的.对我来说似乎胡说八道.
编辑:
Items.AddItem()按照建议切换到另一个奇怪的问题.该OnInsert事件处理程序现在将按预期,但TListView不显示TListItem.Caption.
procedure TForm1.Button1Click(Sender: TObject);
begin
with ListView1.Items.Add do
begin
Caption := 'foo1';
SubItems.Add('bar1');
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
item: TListItem;
begin
item := TListItem.Create(ListView1.Items);
item.Caption := 'foo2';
item.Subitems.Add('bar2');
ListView1.Items.AddItem(item);
end;
procedure TForm1.ListView1Insert(Sender: TObject; …Run Code Online (Sandbox Code Playgroud) Delphi 10.4.1 与 FireMonkey。
我在 a 上有 50 个项目TListView,ID 从 1 到 50。这里没有发布代码,因为我什至不知道从哪里开始。
如果我搜索 ID=35,有没有办法以
TListView编程方式精确移动到该项目的位置,以便该项目处于完整视图中?
如何在Delphi XE中将背景图像设置为TListview?
我想创建一个像Windows资源管理器的应用程序.
我的代码如下,它工作正常但是,但是在编译程序后,我看到所有全名和国家/地区垂直列出的内容如下:
_________________________________全
名1
国家1全
名2
国家2全
名
3 国家3
等...
SQLQuery1.SQL.Text := 'SELECT * FROM users where user_age="'+age+'"';
SQLQuery1.Open;
rec := SQLQuery1.RecordCount;
SQLQuery1.First; // move to the first record
ListView1.Visible := false;
if rec>0 then
begin
while(not SQLQuery1.EOF)do begin
ListView1.Visible := true;
// do something with the current item
ListView1.AddItem('Full name: '+SQLQuery1['fullname'], Self);
ListView1.AddItem('Country: '+SQLQuery1['cntry'], Self);
// move to the next record
SQLQuery1.Next;
end;
Run Code Online (Sandbox Code Playgroud)
但我想要的东西像:

现在我使用以下代码获取ListView项值,我想知道这是否是正确的方法,或者我应该以另一种方式.
父项值的示例:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(ListView1.Selected.Caption);
end;
Run Code Online (Sandbox Code Playgroud)
子项值的示例:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(ListView1.Selected.SubItems.Strings[items_index_here]);
end;
Run Code Online (Sandbox Code Playgroud) delphi ×10
tlistview ×10
firemonkey ×4
delphi-7 ×2
android ×1
delphi-2010 ×1
delphi-xe ×1
delphi-xe7 ×1
delphi-xe8 ×1
file-io ×1
ios ×1
lazarus ×1
listview ×1
listviewitem ×1