组件属性在设计时有效,但在运行时无效

Posted

技术标签:

【中文标题】组件属性在设计时有效,但在运行时无效【英文标题】:Component properties working at designtime but not runtime 【发布时间】:2011-02-15 12:48:44 【问题描述】:

我正在创建一个使用面板集合和集合项的组件。

我似乎无法让颜色在运行时工作,但它们似乎在设计时工作得很好。

你可以在这里下载组件源代码:

http://www.shaneholmes.net/pasfiles/

有一个控制台(Tcollection)属性、状态颜色属性和一个编辑模式属性

每个控制台(TCollectionItem)在更改时都有一个状态属性,控制台属性根据组件的StatusColors属性进行更改。

当组件的 EditMode 属性设置为 true 时,您可以在运行时移动面板。

问题:为什么颜色只在设计时有效,而在运行时无效。

谢谢

【问题讨论】:

你能写一个小测试项目来说明问题吗?最好是不需要 iinstalling 您的组件 - 应该没关系,因为问题发生在运行时。 【参考方案1】:

我没有看过你的代码,但是“面板”+“颜色不起作用”听起来好像你忘记将 ParentBackground 设置为 False。

我猜这些颜色可能在设计时起作用,因为您使用 XPMan 启用了主题,而不是通过选中项目选项中的“启用运行时主题”复选框。 (第二个选项仅适用于您,如果您有 D2007 或更高版本。)

【讨论】:

不,我没有启用主题....我确实尝试设置 ParentBackground = false 并没有改变结果 我刚刚在 D2006 中构建了一个小应用程序,如果应用程序没有主题,则获得彩色 TConsole。一旦我将 XPMan 添加到项目中,创建的控制台是灰色的。将ParentBackGround := False; 添加到TConsoleControl.Create 可以解决此问题。所以我对你的评论提出异议。 :-) 不确定 TConsoleControl 是什么,但我假设您指的是 TConsolePanel。在发布此问题之前,我添加了 ParentBackground=False,但我返回并再次尝试以确保我没有犯任何错误。我还没有得到彩色面板。我没有使用 D2006,我使用的是 Delphi 2010。构造函数 TConsolePanel.Create(AOwner: TComponent);开始继承 Create(Aown​​er);父背景:= 假; ...结束; 如何判断应用是否为主题。我创建应用程序时默认为主题吗?我不认为它是。我不使用主题。 好的,我刚刚在 Delphi 7 中测试过它并且它有效。所以,如果它在 Delphi 7 中工作,正如你所说,Delphi 2006,那么 Delphi 2010 存在问题 - 也许我需要一些新的东西??????????

以上是关于组件属性在设计时有效,但在运行时无效的主要内容,如果未能解决你的问题,请参考以下文章

PowerShell 代码在从 PowerShell 命令提示符运行时有效,但在双击运行或转换为可执行文件时无效

R autoplot 在逐行运行时有效,但在 source-ing R 脚本时无效

NSFileManager 在 Xcode 中作为发行版构建时有效,但在作为独立 OS X Cocoa 应用程序运行时无效

Json String Parsing 在从 MSDOS 运行时有效,但在 Windows 上的 Ubuntu 上的 Bash 中无效 [重复]

我在 index.html 中指向 manifest.json 的链接在我运行反应脚本“yarn start”时有效,但在我运行“python3 manage.py runserver”时无效

with 关键字在打开文件时有效,但在调用函数时无效