如何将字符串转换为TColor值?

12 delphi

我正在创建一个Delphi表单,并希望在运行时为其指定背景颜色.这段代码:

Form1.Color := clSkyBlue; 
Run Code Online (Sandbox Code Playgroud)

效果很好.我的问题是我已将颜色名称作为字符串存储在表中.因此,当我从表中获取颜色名称并将其分配给时Form1.Color,上面的语句变为:

var
  ColorName: string;
....
Form1.Color := ColorName;
Run Code Online (Sandbox Code Playgroud)

这导致编译时错误.

如何将字符串转换为TColor值?

TLa*_*ama 22

您可以使用以下转换函数(两者都适用于颜色常量):

在您的情况下,您需要使用该StringToColor功能:

Form1.Color := StringToColor('clSkyBlue');
Run Code Online (Sandbox Code Playgroud)

  • @ user1556433没有`TString`.你的意思是字符串 (2认同)
  • @Arioch'The如果记忆服务则使用`IdentToColor`.这也不是最简单的事情,一步到位.dfm加载.说真的,你需要相当多的知识才能让调试器停止调用`IdentToColor`. (2认同)