Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在delphi上使用不同的图标大小?_Delphi_Icons - Fatal编程技术网

如何在delphi上使用不同的图标大小?

如何在delphi上使用不同的图标大小?,delphi,icons,Delphi,Icons,有人知道如何在delphi上使用不同大小的图标吗, 我这样问是因为windows在资源管理器上显示时选择了最佳图标大小, 但我如何在资源上放置许多不同大小的图标呢 再次感谢以下是我的做法: 使用图标编辑程序准备图标文件。此文件为.ico文件,包含同一图标的多个版本,具有不同的大小和像素格式 在用作资源编译器源的.rc文件中引用该图标文件 作为编译的一部分,将处理.rc文件,生成一个.res文件 使用$R指令将.res文件链接到可执行文件 在运行时,使用从资源加载图像的Windows API函数之

有人知道如何在delphi上使用不同大小的图标吗, 我这样问是因为windows在资源管理器上显示时选择了最佳图标大小, 但我如何在资源上放置许多不同大小的图标呢

再次感谢

以下是我的做法:

  • 使用图标编辑程序准备图标文件。此文件为.ico文件,包含同一图标的多个版本,具有不同的大小和像素格式
  • 在用作资源编译器源的.rc文件中引用该图标文件
  • 作为编译的一部分,将处理.rc文件,生成一个.res文件
  • 使用
    $R
    指令将.res文件链接到可执行文件
  • 在运行时,使用从资源加载图像的Windows API函数之一加载相应版本的图标
  • 我将这些步骤用于我在工具栏和菜单上使用的所有图标。这允许我有一个GUI,可以根据用户的字体缩放设置进行缩放。Delphi IDE引导您这样做的方式是制作一个
    TImageList
    ,并用存储在.dfm文件中的图标填充它。这是非常没有希望的,因为它不允许你有不同大小的图标。这也意味着你的视觉资源被存储在一个.dfm文件中,在一个代表所有图标的大glob中。如果你想换掉一个图标,那么你可以这样做,但它是相当不透明的。除了你留下的任何评论之外,你的风投中留下的历史痕迹毫无意义

    如果您只是在谈论主程序图标,那么您可以将.ico文件添加到项目|选项|应用程序对话框中的项目中,IDE将处理其余细节。

    以下是我的操作方法:

  • 使用图标编辑程序准备图标文件。此文件为.ico文件,包含同一图标的多个版本,具有不同的大小和像素格式
  • 在用作资源编译器源的.rc文件中引用该图标文件
  • 作为编译的一部分,将处理.rc文件,生成一个.res文件
  • 使用
    $R
    指令将.res文件链接到可执行文件
  • 在运行时,使用从资源加载图像的Windows API函数之一加载相应版本的图标
  • 我将这些步骤用于我在工具栏和菜单上使用的所有图标。这允许我有一个GUI,可以根据用户的字体缩放设置进行缩放。Delphi IDE引导您这样做的方式是制作一个
    TImageList
    ,并用存储在.dfm文件中的图标填充它。这是非常没有希望的,因为它不允许你有不同大小的图标。这也意味着你的视觉资源被存储在一个.dfm文件中,在一个代表所有图标的大glob中。如果你想换掉一个图标,那么你可以这样做,但它是相当不透明的。除了你留下的任何评论之外,你的风投中留下的历史痕迹毫无意义


    如果您只是在谈论主程序图标,那么您可以将.ico文件添加到项目|选项|应用程序对话框中的项目中,IDE将处理其余的细节。

    我观察到,当Delphi程序员变得更熟练时,他们开始回避工具的RAD方面,但他们会继续使用它,而不是,比如说,VC++。我仍然使用图像列表,但我明白你的意思。@Leonardo我也使用图像列表。但不是在.dfms上。我在运行时填充它们,从资源中加载它们。这并不是说我们在回避工具的所有RAD方面,我们只是对我们使用的那些方面很挑剔。我们停止使用那些我们认为是像数据库感知控件那样的控件(尽管它们仍然有用途)和在DFM文件中存储大量数据的控件。(或者在我的例子中:IDE维护的版本信息。)我的应用程序中仍然有数据集和数据感知控件。我现在看到了很多缺点,因为我希望我的应用程序是“云感知的”(不管这意味着什么)。只是我已经使用Delphi多年了,现在我看到了这一点(原型制作的方便性并不意味着从长远来看它是方便的)你用什么工具来创建一个包含多个图像版本的ICO文件?我观察到,当Delphi程序员变得更熟练时,他们开始回避该工具的RAD方面,但他们一直在使用它,而不是VC++。我仍然使用图像列表,但我明白你的意思。@Leonardo我也使用图像列表。但不是在.dfms上。我在运行时填充它们,从资源中加载它们。这并不是说我们在回避工具的所有RAD方面,我们只是对我们使用的那些方面很挑剔。我们停止使用那些我们认为是像数据库感知控件那样的控件(尽管它们仍然有用途)和在DFM文件中存储大量数据的控件。(或者在我的例子中:IDE维护的版本信息。)我的应用程序中仍然有数据集和数据感知控件。我现在看到了很多缺点,因为我希望我的应用程序能够“云感知”(不管这意味着什么)。只是我已经使用Delphi多年了,现在我看到了这一点(原型制作的便利性并不意味着从长远来看很方便)。您使用什么工具来创建具有多个图像版本的ICO文件?