我正在尝试从Firemonkey XE5中的Tlistbox获取信息,但它具有相关联的样式,其中列表框中的每个项目都包含图像,备忘录和一些按钮。
单击列表框样式中的按钮时,我可以从该项目中获取信息。
我想分别从列表框中的备忘录框中获取信息。以前,我会通过使用以下代码获得第1项中的文本:
NewString:=ListBox1.items[1];
但是,现在列表框中的每个项目都有多条信息。
我可以使用以下代码添加新的列表框项目:
var Item: TListBoxItem;
begin
Item := TListBoxItem.Create(nil);
Item.Parent := ListBox1;
Item.StyleLookup := 'PlaylistItem';
Item.StylesData['Memo1']:='test text';
但是,我如何只阅读特定项目的备忘录
由于
阿曼
更新。
解决方案是
Tempstr:=ListBox1.ItemByIndex(1).StylesData['Memo1'].AsString;
我现在正试图找出如何获取图像,因为没有AsImage或AsBitmap后缀。
答案 0 :(得分:1)
我建议继承TListBoxItem,然后添加属性和方法,使用FindStyleResource从样式对象中获取/设置数据,
class TMemoListBoxItem = class(TListBoxItem)
protected
function GetMemoText: String;
procedure SetMemoText(const Text: String);
published
property MemoText: String read GetMemoText write SetMemoText;
end;
function TMemoListBoxItem.GetMemoText: String;
var O: TFMXObject;
begin
O := FindStyleResource('Memo1');
if O is TMemo then
Result := TMemo(O).Text
else
Result := '';
end;
procedure TMemoListBoxItem.SetMemoText(const Text: String);
var O: TFMXObject;
begin
O := FindStyleResource('Memo1');
if O is TMemo then
TMemo(O).Text := Text;
end;
同样继续处理您的其他数据。