C# 将 delphi TColor 转换为颜色(十六进制)

2023-12-09

enter image description here

这些数字存储在数据库中。它们源自 Delphi 代码。尽管我认为他们遵循某种标准。我努力了Color.FromArgb(255);

但我知道第一个是红色(在 delphi 方面),而在 ASP.NET 中它认为它是蓝色的Color [A=0, R=0, G=0, B=255]

无论如何,我希望将这些数字转换为十六进制。 IE。 #000000,#FFFF99 等等

任何人都知道如何将这些整数(参见数据库图片)转换为十六进制。


德尔福颜色(TColor) are XXBBGGRR当不是来自调色板或特殊颜色时。

See 本文有关格式的更多详细信息(以及其他特殊情况)。文章被指出克里斯蒂安·K还包含一些特殊情况的详细信息。

标准颜色

要转换为标准颜色,您应该使用类似以下内容的内容:

var color = Color.FromArgb(0xFF, c & 0xFF, (c >> 8) & 0xFF, (c >> 16) & 0xFF);

要转换为十六进制,:

string ColorToHex(Color color)
{
    return string.Format("#{0:X2}{1:X2}{2:X2}",
        color.R, color.G, color.B);
}

系统颜色

对于系统颜色(数据库中的负值),它们只是由0x80000000.

谢谢大卫赫夫南的信息。

示例代码

Color DelphiColorToColor(uint delphiColor)
{
    switch((delphiColor >> 24) & 0xFF)
    {
        case 0x01: // Indexed
        case 0xFF: // Error
            return Color.Transparent;

        case 0x80: // System
            return Color.FromKnownColor((KnownColor)(delphiColor & 0xFFFFFF));

        default:
            var r = (int)(delphiColor & 0xFF);
            var g = (int)((delphiColor >> 8) & 0xFF);
            var b = (int)((delphiColor >> 16) & 0xFF);
            return Color.FromArgb(r, g, b);
    }
}

void Main()
{
    unchecked
    {
        Console.WriteLine(DelphiColorToColor((uint)(-2147483646)));
        Console.WriteLine(DelphiColorToColor(
                (uint)KnownColor.ActiveCaption | 0x80000000
            ));
        Console.WriteLine(DelphiColorToColor(0x00FF8000));
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 将 delphi TColor 转换为颜色(十六进制) 的相关文章

  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 每次 TDbGrid 的选定位置更改时都会触发什么事件?

    我的项目中有一个 TDbGrid 每次更改所选行时我都试图触发一个事件 行中的任何更改都已经更新了链接到同一数据源的所有数据感知控件 但还需要进行其他更改 我需要一个事件处理程序 我认为 OnColEnter 会起作用 根据帮助文件 它在以
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 如何使用 java.io 包重命名文件?

    如何使用重命名文件java io包裹 File oldfile new File old name File newfile new File new name boolean Rename oldfile renameTo newfile
  • 如何避免使用 MinGW64 编译“msvcrt.dll”?

    我有一些 C 代码 可以编译到各种平台 即 Linux 32 64 位 Windows 32 64 位 对于Windows部分 我使用mingw w64包提供的最新gcc编译器 我遇到的麻烦是32位编译拖累了微软通过msvcrt dll提供
  • SQL SERVER选择行[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 如果我有下面这个表 id time start 08 00 AM stop 09 00
  • WAMP 服务器不显示图像

    我遇到了一个问题 我不知道在谷歌中搜索什么 基本上我已经安装了WAMP服务器并安装了OPen Cart 我可以在本地计算机上查看我的电子商务网站 但当我在远程计算机上打开它时 它不会加载任何图像 它只显示文本 我的场景 如果我加载 PHP
  • 如何在清单文件中指定依赖项,然后将其包含到我的 .jar 文件中?

    我通过以下命令生成了 class 文件 javac cp directoryName external jar myPackageDirectory First java myPackageDirectory Second java 我需要
  • 具有许多键的二维字典将返回相同的值

    我想制作一个每个值有多个键的二维字典 我不想让元组成为键 而是创建许多将返回相同值的键 我知道如何使用 defaultdict 制作二维字典 from collections import defaultdict a dict defaul
  • 在 Cypher 查询中结束 UNWIND 语句

    如果我有一个展开参数的密码查询 则该查询部分之后的所有内容都称为展开的 x 次 我想找到一种方法来结束这种放松并继续做其他事情 MATCH thing Thing UNWIND names AS name CREATE thing HAS
  • JAXB 封送由 XmlAdapter 创建的 ArrayList

    我想调整一个的 XML 表示HashMap现场使用XmlAdapter 我用一个ArrayList要做到这一点 然而 在编组时ArrayList根本没有编组 这是为什么 The code XmlRootElement public clas
  • 重命名和移动文件 Powershell

    我想将 rpt 文件从 dr network 重命名为 dr network 10yr 然后创建文件夹 Output 如果不存在 并将文件移动到该文件夹 文件重命名有效 但无法移动文件 请注意 文件应该是相对路径 谢谢您的帮助 New It
  • Struts 2 标签的评估似乎不一致

    我对一些与 OGNL 混合的 Struts2 标签有疑问 为了克服不能在 OGNL 中嵌套表达式求值的事实 例如 foo bar 我使用对变量的连续赋值来获得我需要的结果 在下面的代码中 vargrpIndex评估正确 例如 6 or 7
  • 如何将 SearchBox 集成到 Google Maps JavaScript API v3 中?

    我想创建一个顶部带有搜索框的谷歌地图 如下所示 https google developers appspot com 使用 JavaScript API v3 目前 我使用以下代码通过获取 url 中的纬度和经度 php get 来显示地
  • 在Linux服务器上运行用java编写的计划任务

    我需要每天在特定时间在Linux服务器上运行一段java代码 目前 我正在 Ubuntu 桌面上通过从终端运行它来测试它 并根据需要正常运行 为了安排时间 我使用了来自here 在实际服务器上 将其作为进程运行的正确方法是什么 我的意思是
  • Android 加速度计检测高度?

    是否可以使用加速度计来检测高度 例如 如果我手上拿着手机 然后抬起手臂后检测高度 Thanks 假设您的意思是您想要检测手机从起始点抬起的高度 是的 Android 加速度计测量力 有关如何使用它的更多信息可以找到here 请记住 加速度计
  • 使用 PowerShell 和 OData API 将文件上传到 SharePoint 2010

    我正在尝试将文件上传到 SharePoint 2010 Function Add Attachments CmdletBinding Param Parameter Mandatory True int Id Parameter Manda
  • 在java脚本和CSS中构建带有圆角和阴影的半圆形进度条

    我搜索了很多 但一无所获 我想制作一个进度条圆角 进度条需要有shadow 我现在所做的一切都在这里 progress bar each function var bar this find bar var val this find sp
  • 用于解析单个句子的正则表达式是什么?

    我正在寻找一个好的 NET 正则表达式 可以使用它从文本正文中解析出各个句子 它应该能够将以下文本块解析为正好六个句子 Hello world How are you I am fine This is a difficult senten
  • 如何获得 xPy 的所有排列?

    我想计算一组大小 X 的大小 Y 的所有排列 也就是说 如果我有 1 2 3 并且想要大小 2 3P2 的所有排列 那么它将是 1 2 1 3 2 1 2 3 3 1 3 2 GSL和C STL都只提供我能看到的xPx 有人能给我指出一个可
  • Eclipse:Android 依赖项

    我已将项目中的 Google AdMob 从 6 2 1 更新到 6 4 1 但不知何故 eclipse 失败 你可以在这里看到它 这是错误消息所需库的存档 项目 中的 C Users libs GoogleAdMobAdsSdk 6 2
  • 递归评估 JSON 对象

    我们正在使用 JSON 库https github com octomix josson 我的示例 JSON 对象 data A 1688 B 1363 C calc A B A data A B data B D calc B C B d
  • C# 将 delphi TColor 转换为颜色(十六进制)

    这些数字存储在数据库中 它们源自 Delphi 代码 尽管我认为他们遵循某种标准 我努力了Color FromArgb 255 但我知道第一个是红色 在 delphi 方面 而在 ASP NET 中它认为它是蓝色的Color A 0 R 0