- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已遵循 EMB 提供的示例,该示例可在
上找到“C:\Users\Public\Documents\Embarcadero\Studio\14.0\Samples\Object Pascal\FireMonkey Desktop\CustomListBox”
它是这样的:
这是将行添加到列表框的代码:
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.
发生这种情况的原因有以下三个:
我非常肯定这是第二个原因。
如果您的 Delphi IDE 设置为自动保存项目桌面,则关闭项目时会生成 .dsk
文件。
当您稍后重新打开项目时,会读取 .dsk 文件,并且您的桌面布局、断点和 watch 都会恢复。此外,项目关闭时打开的所有文件都会再次打开,无论项目是否使用它们。
<小时/>以下是水平布局中标签的示例:
您可以从dropbox下载示例并检查它,看看哪里出了问题。
关于delphi - 自定义 TListBox 风格 Firemonkey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25349858/
我正在使用 Delphi XE4,下面是我的示例应用程序。 unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.S
如果您的列表框包含许多项目并且您需要选择例如项目,则项目的选择会变得很痛苦。通过手动单击和选择 400 个项目。 有没有一种优雅的方法可以使用某个“ 通过模式函数 选择项目”从列表框中选择项目? 最佳
我在我的数据库中用 MYDAC 组件创建了一个表并添加了数据。我如何从该表中提取列中的这些值? 我试过了,但没用; MyQuery1.Close; MyQuery1.SQL.Text :='SEL
当选择一个项目(按住鼠标左键)并将鼠标移到列表框之外时,我需要更改列表框滚动的速度。要复制该行为,请执行以下操作: 将列表框拖放到表单上(+- 250 x 200 奇数)。不要让它太大,否则滚动条在底
我一直在尝试使用 TListBox 控件、绘制图像和更改字体样式等。我想稍微加强一下,并尝试通过缩进和多级缩进来更多地操作项目。 看看这张图片以获得更好的想法: 这个想法是列表中位于起始项和结束项之间
我在 Delphi 中为 TListBox 有一个自定义 style,我可以在其中简单地更改 Text 属性喜欢 lb_item.StylesData['location'] := 'New Text
我正在使用 TListBox 组件来显示带有 CheckBoxes 的列表。 它在 iOS 上运行良好,但在 Android 上滚动时会产生小的延迟。 乍一看,我认为这是因为每个 TListBoxIt
我有一个TListBox,每个项目都有控件,例如TEdit、TComboBox、TSwitch等, 右对齐。此列表中有大约 20 项,因此它超出了屏幕,因此用户需要滚动(通过滑动手指)才能到达底部。
我想通过将列表框与其他两个列表框进行比较来清理列表框。 Listbox1 将包含项目的大列表 Listbox2 会有我想从 listbox1 中删除的词 Listbox3 将包含必须存在的强制性单词才
我正在 Lazarus 上开发一个电子书管理器,但我在使用一个我从未使用过的组件 (TListBox) 时遇到了一些麻烦。在名为 CategoryList 的 TListBox 上,我有这些项目: L
我正在使用 XE7 和 FMX。 我的问题是 TListbox 的 OnChange-Event 无法正确处理多选(它不会在每次发生更改时触发)。 重现步骤: 创建一个 FMX 应用程序并将 TLis
我正在创建一个多设备 FireMonkey 应用程序,我想在选择 TListBox 项目时更改其颜色。 如何在 Rad Studio XE7 中完成此操作? 最佳答案 打开位图样式设计器(请参阅 RA
查看代码: function ShowItem(MyData: TMyData): TListItem; var vListItem: TListItem; begin vListItem :
我有一种记录类型。我想在 TListbox 中添加该记录类型的变量,并在 TListbox 的单击事件上检索它。是否可以?如果是的话怎么办? 我使用添加它 lstbox.AddItem(data,my
我正在将 ListBox.Style := lbOwnerDrawFixed 与 OnDrawItem 一起使用: procedure TForm1.ListBox1DrawItem(Control:
简短版本:有没有办法单独控制或修改LisBox项目?例如,分别将其 Visible 属性设置为 False。我在搜索时在Fire Monkey中发现了TListBoxItem类,但我不想使用Fire
是否有使用 TListBox 获得“OnChange”类型功能的技巧?我可以对组件进行子类化并添加属性等,然后仅在索引更改时执行 OnClick 代码...我还可以使用表单级别变量来破解它以存储当前索
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwner
在 DelphiXE 中,我使用 tFileOpenDialog 选择一个文件夹,然后在 tListBox 中列出该文件夹中的所有 *.jpg 文件。我允许将列表项拖放到列表中进行自定义排序,以便稍后
这就是我从本地服务器上的列表中获取一些项目的方法。 我认为它仍然需要一些重构(抱歉,我是 Delphi 的初学者),但是我想更好地理解为什么 ListItem colors 没有被改变。 我做了一些调
我是一名优秀的程序员,十分优秀!