gpt4 book ai didi

delphi - 自定义 TListBox 风格 Firemonkey

转载 作者:行者123 更新时间:2023-12-01 23:10:53 26 4
gpt4 key购买 nike

我已遵循 EMB 提供的示例,该示例可在

上找到

“C:\Users\Public\Documents\Embarcadero\Studio\14.0\Samples\Object Pascal\FireMonkey Desktop\CustomListBox”

它是这样的:

Firemonkey Custom List

这是将行添加到列表框的代码:

procedure TfrmCustomList.Button2Click(Sender: TObject);
var
Item: TListBoxItem;
begin
// create custom item
Item := TListBoxItem.Create(nil);
Item.Parent := ListBox1;
Item.StyleLookup := 'CustomItem';
Item.Text := 'item ' + IntToStr(Item.Index); // set filename
if Odd(Item.Index) then
Item.ItemData.Bitmap := Image1.Bitmap // set thumbnail
else
Item.ItemData.Bitmap := Image2.Bitmap; // set thumbnail
Item.StylesData['resolution'] := '1024x768 px'; // set size
Item.StylesData['depth'] := '32 bit';
Item.StylesData['visible'] := true; // set Checkbox value
Item.StylesData['visible.OnChange'] := TValue.From<TNotifyEvent>(DoVisibleChange); // set OnChange value
Item.StylesData['info.OnClick'] := TValue.From<TNotifyEvent>(DoInfoClick); // set OnClick value
end;

正如您所看到的,有这一行应用了自定义样式:

  Item.StyleLookup := 'CustomItem';

表单上有一个样书,并且表单与其关联。 TListBox 未应用样式。

但是,如果您更改此 CustomItem Style,则不会发生任何情况。您甚至可以更改 itens 的名称,并且不会发生任何事情(根本没有视觉变化),布局保持固定,如上面的窗口所示。

我添加了另一个带有自己名称的 TTlabel 并尝试分配给它:

  Item.StylesData['ghost'] := 'scary thing';

它没有给出任何错误,但没有显示任何文本。样式保持不变。

如果在创建项目时删除了 Item.StyleLookup 分配,唯一改变的是 TLabel 的名称会丢失,并且无法分配该值。

所以,样式已经定义了,但我发现它似乎是固定的。不应用任何布局更改,不知何故似乎只理解样式子项名称的更改。这根本没有用。

怎样才能真正修改这个样式呢?我想将 3 个 TLabels 中的每一个并排放置在水平布局中。

最佳答案

虽然我理解并分享您的沮丧,但这个问题似乎是您自己造成的。

However if you change this CustomItem Style, nothing happens.

发生这种情况的原因有以下三个:

  • 您有多个样式书组件,但您没有编辑事件的组件。
  • StyleLookup 与样本中的任何样式名称都不匹配
  • 您将示例项目复制到了新位置,但没有意识到您仍在修改原始文件。

我非常肯定这是第二个原因。

如果您的 Delphi IDE 设置为自动保存项目桌面,则关闭项目时会生成 .dsk 文件。

当您稍后重新打开项目时,会读取 .dsk 文件,并且您的桌面布局、断点和 watch 都会恢复。此外,项目关闭时打开的所有文件都会再次打开,无论项目是否使用它们。

<小时/>

以下是水平布局中标签的示例:

enter image description here

您可以从dropbox下载示例并检查它,看看哪里出了问题。

关于delphi - 自定义 TListBox 风格 Firemonkey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25349858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com