- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码,它应该循环我的选项卡上给定选项卡上的所有组件。我尝试了在网上找到的相同代码的许多变体,但我根本无法让它工作。首先我检查它是否是正确的选项卡 - 有效。然后我检查有多少组件 - 这不起作用。它说 0 组件,尽管我现在有 2 个面板,总共有 9 个复选框。
procedure TfrmHsUsers.pagUsersClick(Sender: TObject);
var
i: integer;
Fieldname: string;
begin
if pagUsers.Properties.ActivePage.Name = 'tabProgram' then
begin
ShowMessage(IntToStr(pagUsers.Properties.ActivePage.ComponentCount));
for i := 0 to pagUsers.Properties.ActivePage.ComponentCount - 1 do
if (pagUsers.Properties.ActivePage.Components[i]) is TcxDbCheckBox then
begin
Fieldname := TcxDbCheckBox(pagUsers.Properties.ActivePage.Components[i]).DataBinding.DataField;
TcxDbCheckBox(pagUsers.Properties.ActivePage.Components[i]).Enabled := Settings.License.IsEnabled(Fieldname);
end;
end;
end;
有什么提示可以说明我的代码中可能有什么问题吗?
最佳答案
问题在于您正在循环 Components
属性。它列出了选项卡拥有的组件。对于在表单设计器中创建的组件,表单是所有者。因此,预计 pagUsers.Properties.ActivePage.ComponentCount 为零,因为表单上唯一拥有任何内容的就是表单本身。
您需要使用 ControlCount
和 Controls[]
来迭代选项卡的子项。只需将 ComponentCount
的所有使用替换为 ControlCount
,同样将 Components[]
替换为 Controls[]
。
请注意,ControlCount
和 Controls[]
属性仅提供直接子级。由于您有面板,因此很可能将面板作为选项卡表的子项,并将复选框作为面板的子项。因此,您需要迭代面板的子项。
我的answer here展示了一种方法来做到这一点。如果您使用我在那里提供的代码,那么您对复选框的迭代确实可以非常简单地编写:
TabSheet := pagUsers.Properties.ActivePage;
for CheckBox in TControls.Enumerator<TcxDbCheckBox>(TabSheet) do
....
关于delphi - 循环 TabSheet 上的所有组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463753/
在 PageControl 上使用 TabSheets 并控制其可见性时,我克服了一些奇怪的行为。举一个简单的示例,在 Form 上添加一个 PageControl,向该 PageControl 添加
我有以下代码,它应该循环我的选项卡上给定选项卡上的所有组件。我尝试了在网上找到的相同代码的许多变体,但我根本无法让它工作。首先我检查它是否是正确的选项卡 - 有效。然后我检查有多少组件 - 这不起作用
美好的一天! 我需要更改 TPageControl 中某些 TabSheet 的标题的文本颜色。图片上是这样的 我知道如何使用 OnDrawTab 来完成它。但如果我启用了 OwnerDraw,Win
我在使用 Vaadin TabSheet 时遇到问题 - 当前选项卡在最大化/最小化窗口时不会调整大小(使用右上角的 +/- 按钮) 我的内容现在需要在以下情况下调整大小: 使用鼠标调整窗口大小/拖动
我有一个 Vaadin-TabSheet,每个选项卡中都有一个 BrowserFrame。我注意到以下不良行为:当我通过单击选项卡来更改选项卡时,浏览器框架会重新加载,可能会删除用户在该选项卡中可能进
我正在开发一个大型 delphi 应用程序,其中包含大量正在转换为 xe2 的遗留代码。我正在实现 vcl 样式,大部分情况下没有问题。 但是,在某些表单上,特别是在我有一个带有页面控件和选项卡的 t
我目前使用的是 Delphi 7。 我有一个主表单,它有一个带有 5 个选项卡的 PageControl。我正在寻找一种方法将这些选项卡从页面控件中“分离”,并将它们单独移动到一个新的表单(即运行时创
在 Vaadin 中,假设我有一个带有多个选项卡的选项卡。 如果我想将子选项卡添加到选项卡表中的任何选项卡,根据子选项卡作为其“父”选项卡的选项卡,我该如何执行此操作? 最佳答案 选项卡由它们所包含的
假设我有四个选项卡。 还有一些其他选项卡,它们以上述选项卡为父级。 例如, Tab1:父级:无,Tab2:父级:无,Tab3:父级:Tab2。 假设我在运行时获得此信息,我会解析它以找到它们的 par
在 Vaadin 中,我正在创建一个 TabSheets 数组。 ArrayList Tabs = new ArrayList(); 我对它们执行一些操作,例如向数组列表中的每个选项卡添加额外
在 Vaadin 中,假设我必须根据名称在 TabSheet 中找到一个 Tab。 如何遍历 Tabsheet 中的 Tab 来完成此操作? 最佳答案 您可以通过以下方式迭代选项卡并通过选项卡标题找到
晚上好。我在使用 Vaadin 和 tabsheet 组件与 Grails 服务时遇到问题。 这是我想要做的。我有一个 Vaadin UI,它有一个选项卡作为其主要组件,其中有两个不同的选项卡,我在其
我正在寻找一种方法,仅在选择选项卡之后而不是之前将内容加载到 Vaadin TabSheet 上的选项卡中。 Lazy Loading , 是术语。 延迟加载 Vaadin 7 Tabsheet不明显
我正在开发一个 PingTool,我有一个动态创建按钮的 TabSheet(根据用户输入从 1 到 150 的任意位置),我希望能够将 OnClick 命令传递给给定的所有按钮标签表。我的个人按钮单击
我想知道如何在 PageControl 组件中隐藏 TabSheets 的标题。我想创造一个创造者,例如建立你的冠军,你可以在页面上选择一些东西。 TabSheets 将由 Timer 每 10 秒更
我怎样才能简单地在 vaadin 标签表中分隔每个标签之间的宽度?我查看了 v-tabsheet spacetd,但 CSS 不适用于此功能? 最佳答案 您可能可以通过在 v-tabsheet-tab
当我向 Vaadin 的组件添加组件(例如 TabSheet 或 Tree)时,添加的组件会被缓存。当用户单击选项卡(或树节点)时,如果它包含数据库数据,则显示陈旧数据,不反射(reflect)最新的
我是一名优秀的程序员,十分优秀!