将 Inno Setup WizardForm.Color 转换为 RGB

2023-12-11

如果我尝试这个:

[Setup]
AppName=MyApp
AppVerName=MyApp
DefaultDirName={pf}\MyApp
DefaultGroupName=MyApp
OutputDir=.

[Code]
function ColorToRGBstring(Color: TColor): string;
var
  R,G,B : Integer; 
begin 
  R := Color and $ff; 
  G := (Color and $ff00) shr 8; 
  B := (Color and $ff0000) shr 16; 
  result := 'red:' + inttostr(r) + ' green:' + inttostr(g) + ' blue:' + inttostr(b); 
end;

procedure InitializeWizard();
begin
  MsgBox(ColorToRGBstring(WizardForm.Color),mbConfirmation, MB_OK);
end;

我得到: 红色:15 绿色:0 蓝色:0
但结果应该是:240 240 240(灰色)

怎么了?

我需要得到正确的TColor并将其转换为 RGB 颜色代码。


当第一个字节是$FF,最后一个字节是系统调色板中的索引。

您可以使用以下命令获取系统颜色的 RGBGetSysColor功能。

function GetSysColor(nIndex: Integer): DWORD;
  external '[email protected] stdcall';

function ColorToRGB(Color: TColor): Cardinal;
begin
  if Color < 0 then
    Result := GetSysColor(Color and $000000FF) else
    Result := Color;
end;

The ColorToRGB code是从Delphi VCL(Vcl.Graphics单元)复制的。


上面的代码返回Win32 API颜色,什么是$BBGGRR。你需要的$RRGGBB,您需要交换位:

Result :=
  ((Result and $FF) shl 16) +
  (Result and $FF00) +
  ((Result and $FF0000) shr 16);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Inno Setup WizardForm.Color 转换为 RGB 的相关文章

  • 从 Exif 数据计算照度

    我如何通过iPhone相机计算勒克斯或照度 我已经计算了所有exif数据 如下所示 key FocalLength value 3 85 key MeteringMode value 5 key ShutterSpeedValue valu
  • 根据用户输入更改 AppID 和 AppName

    我想在同一系统上多次安装同一应用程序 例如两个用户使用两个不同的 Web 服务 每个都有自己的 在我的设置脚本中我想更改AppID and AppName基于用户的输入 例如我的默认值AppName Service App 应该改为AppN
  • 使用 Android 相机进行图像处理

    我想使用 onPreviewFrame 在将图像显示给用户之前对其进行后处理 即应用色调 棕褐色等 据我了解 返回给回调的 byte 数据以 YUV420sp 编码 人们是否已经在 J ava 中或使用 NDK 本机代码 将其解码为 RGB
  • Inno Setup - 更新时删除旧的/过时的文件

    所以 我意识到这个问题以前已经被问过 事实上 在写这篇文章之前 我读了其中的 10 篇文章 但没有一个有适用的解决方案 我希望现在有人已经找到了一些东西 问题 我的程序是使用脚本构建的 在单个文件夹中创建所有最终文件 这些文件包含在 inn
  • 安装前检查 Java 是否存在

    我正在为 jar 应用程序创建 Inno Setup 安装程序 我现在想做的是在继续安装之前检查 java 是否存在 所以我只需要确保用户能够运行 java jar my app jar 我现在正在做的是 Code function Ini
  • 如何将带有值的命令行参数传递给 Inno Setup 编译器,以便我可以在代码中使用它们?

    我有两种可能的构建选项 由于我不希望我的客户使用某些参数启动安装程序 因此我最好将它们传递给编译器并在我的代码中完成所有工作 假设我有变量UNION它可能有两个值 0 and 1 我必须在代码中分析该变量的值 并根据结果包含或不包含某些文件
  • 如何知道图像是 RGB 还是 BGR 格式?

    有没有办法提前知道用作系统输入的图像是 RGB 还是 BGR 格式 我正在使用 OpenCV 和 java API 我想将输入图像转换为灰度或 L a b 颜色空间 但在 OpenCV 中 您必须首先指定要转换的图像是 RGB 还是 BGR
  • 如何设置 BufferedImage 中的 RGB 像素以显示 16 位深度的 PNG?

    我正在尝试读取并显示 PNG 文件 我处理 8 位深度的图像没有问题 我按如下方式进行 BufferedImage result new BufferedImage width height BufferedImage TYPE INT R
  • 如何在iPhone上读取RGB像素数据

    我想知道如何在iPhone上扫描图像并分析每个像素的RGB值 从而最终确定整个图像的平均RGB 如果有人能将我推向正确的方向 我将不胜感激 我是图像分析新手 不确定从哪里开始 或者 iOS 5 API 中是否包含类似的内容 只需粘贴它 我正
  • RGBA格式HEX转换成RGB格式HEX? PHP

    我想在 RGBA 格式的十六进制颜色之间来回转换 例如0xFF0000FF 和 RGB 格式的十六进制颜色 例如0xFF0000 在 PHP 中 我怎样才能做到这一点 这两个函数将满足您的需要 function rgbaToRgb rgba
  • Inno Setup:如何在选中的复选框上显示(隐藏/取消隐藏)密码

    我在输入查询页面中添加了一个复选框 以便在选中时使用它向我显示未发现的密码 但我不知道该怎么做 我已经创建了以下过程 但这个过程并没有改变我添加输入时的 true false 值 此过程添加了我完成这项工作的新文本框 请你帮助我好吗 pro
  • Inno Setup:如何根据代码更改语言文件

    我使用自己的语言文件 isl 而不是使用 Inno Setup 的默认语言文件 它允许我自定义一些消息 但现在 我想要每种语言文件有两个版本 一个用于首次安装 一个用于更新 但是 是否可以从代码中选择一个文件 如果是 该怎么做 也许有一些比
  • 如何使用 c 使用 libpng 更改 png 图像的 RGB 值?

    更改 png 图像的 rgb 值的推荐方法是什么 现在我正在使用示例代码来查看 libpng 的工作方式 它只打开一个 png 图像并写入另一个 png 图像 但是我想更改这个新图像的 RGB 值 使其变为全蓝色 绿色或红色 无论我选择什么
  • 从 Inno Setup 项目内部调用 MySQL

    我正在为一些使用 MySQL 的软件编写安装程序 我正在尝试运行 sql用于在安装时设置数据库的脚本 唉 我目前在执行它时遇到了很大的问题 这个问题似乎是由于这样一个事实而产生的 当你设置一条通往 sql文件内的 execute SOURC
  • Inno Setup 提示用户输入文件夹并存储值

    我有以下需求 Run run robocopy exe source dest OLD source contents options Where source必须由目标计算机上的用户指定 这可以根据物理平台进行更改 目的地将与用户定义的源
  • 如何使用Python将RGB565字节数组转换为RGB888字节数组?

    根据我的问题RGB888 转 RGB565 https stackoverflow com questions 61519934 how can i use opencv python to convert rgb888 to rgb565
  • 如何计算位图的平均 RGB 颜色值

    在我的 C 3 5 应用程序中 我需要获取位图的红色 绿色和蓝色通道的平均颜色值 最好不使用外部库 这可以做到吗 如果是这样 怎么办 提前致谢 尝试让事情变得更精确 位图中的每个像素都有一定的 RGB 颜色值 我想获取图像中所有像素的平均
  • Inno Setup 如何在浏览对话框中显示网络?

    在我的设置中 在浏览器中显示 浏览 按钮 wpSelectDir or CreateInputDirPage例如 网络永远不会显示 我对此进行了一段时间的搜索 但目前还没有找到任何解决方案 有没有办法显示网络并让用户选择网络路径 感谢您对此
  • Inno Setup安装先决条件[重复]

    这个问题在这里已经有答案了 我正在通过 Inno Setup 创建一个安装程序 我看到很多关于如何检测先决条件是否存在的代码示例 但没有任何关于当我找不到先决条件时如何实际安装先决条件的代码示例 我确信它非常简单 但是我该如何安装先决条件呢
  • Inc 函数 Inno Setup

    这可能非常简单 但是当我尝试编译包含以下内容的程序时 Inc Count 在 Inno Setup 中我不断得到 未知标识符 Inc 我相信这就是在 Pascal 中递增整数的方式 并且对如何继续这里感到困惑 我正在使用 Inno Setu

随机推荐