2014-11-21 65 views
0

在我的程序中,我制作了一个读取xml博客的功能,并将标题放在TListBox中。但我需要更改TListBoxItem中的一些属性,如字体,高度和颜色,但不会更改。如何在运行时更改android应用程序中的TlistBoxItem属性?

如何在运行时设置它?

repeat 
    Title := ANode.ChildNodes['title'].Text; 
    Link := ANode.ChildNodes['link'].Text; 
    Desc := ANode.ChildNodes['description'].Text; 
    DataPub := ANode.ChildNodes['pubDate'].Text; 
    SetLength(Vet_News, Pos + 1); 
    Vet_Nesw[Pos] := '<h2>'+Title+'</h2>'+Desc; 
    Itemx := TListBoxItem.Create(self); 
    Itemx.Text := Title; 
    Itemx.ItemData.Detail := DataPub; 
    Itemx.ItemData.accessory := TListBoxItemData.TAccessory.aMore; 
    Itemx.TextSettings.WordWrap := true; 
    Itemx.TextSettings.FontColor := TAlphaColorRec.Darkorange; 
    Itemx.Height := 65; 
    Itemx.FontColor := TAlphaColorRec.Darkorange; // i tried two ways to change the color 
    lbNews.AddObject(Itemx); // lbnews is a Tlistbox 
    Inc(Pos); 
    ANode := ANode.NextSibling; 
until ANode = nil; 
+0

您可能需要更改TListBox或列表框项目的样式。 – 2014-11-22 12:46:27

+0

另一个想法?只有在运行时我无法更改设置。 – Murilo 2014-12-02 18:11:37

+0

Via StyleLookup(该项目)?更改项目使用的样式,或更改查找以引用新样式。否则,你能扩展你的问题吗? – 2014-12-02 21:22:43

回答

0

在运行[用Delphi-XE7测试],Listboxitems已经存储在计算风格:aListboxItem.StyledSettings。 要在运行时更改设置,首先必须将其从样式化设置列表中删除。

例如,如果你想改变FontColor,首先删除样式FONTCOLOR:

aListboxItem.StyledSettings := aListboxItem.StyledSettings - [TStyledSetting.FontColor]; 

然后申请另一个(比方说绿色):

aListboxItem.FontColor := TAlphaColors.Green; 

TStyledSetting常量和相应的TTextSettings房源列表here in Delphi's doc

在运行时更改样式的示例可以找到herethere

Nota Bene:theListBox.Items[i]可以访问项目内容,而不是项目本身。 抢ListBoxItem的作为对照,然后在其属性行动,你可以使用:

aListboxItem := theListBox.ListItems[i]; 

aListboxItem := theListBox.ItemByIndex(i); 

两个赋予完全相同的结果,我不能说,如果一个更好。

相关问题