Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.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 如何在样式设计器之外的FireMonkey样式中编辑控件?_Delphi_Firemonkey - Fatal编程技术网

Delphi 如何在样式设计器之外的FireMonkey样式中编辑控件?

Delphi 如何在样式设计器之外的FireMonkey样式中编辑控件?,delphi,firemonkey,Delphi,Firemonkey,在这个场景中,我通过RADStudio XE2在FireMonkey HD应用程序上创建了一个默认按钮。然后我为按钮创建了一个自定义样式,名为“Style1”。此样式与默认按钮样式非常相似,但是,它在TText控件旁边有一个TImage控件 简单地说,就是文本旁边有图像的按钮 现在,我将为按钮的TImage控件应用一个图像?因为如果我通过样式设计器将图像应用于TImage控件,则使用该样式的其他控件也将获得相同的图像。您可以在运行时执行此操作。 首先,您必须命名TImage样式的对象,例如“bt

在这个场景中,我通过RADStudio XE2在FireMonkey HD应用程序上创建了一个默认按钮。然后我为按钮创建了一个自定义样式,名为“Style1”。此样式与默认按钮样式非常相似,但是,它在TText控件旁边有一个TImage控件

简单地说,就是文本旁边有图像的按钮

现在,我将为按钮的TImage控件应用一个图像?因为如果我通过样式设计器将图像应用于TImage控件,则使用该样式的其他控件也将获得相同的图像。

您可以在运行时执行此操作。 首先,您必须命名TImage样式的对象,例如“btnimg” 之后,您可以使用
FindStyleResource
按名称查找它:

procedure LoadImage(btn : TButton; imgFileName : string);
var img : TImage;
begin
    img := btn.FindStyleResource('btnimg') as TImage;

    if not assigned(img) then exit;

    img.bitmap.LoadFromFile(imgFileName); 
end;
您可以在运行时执行此操作。 首先,您必须命名TImage样式的对象,例如“btnimg” 之后,您可以使用
FindStyleResource
按名称查找它:

procedure LoadImage(btn : TButton; imgFileName : string);
var img : TImage;
begin
    img := btn.FindStyleResource('btnimg') as TImage;

    if not assigned(img) then exit;

    img.bitmap.LoadFromFile(imgFileName); 
end;

您可能对我的TBitmapSpeedButton控件感兴趣,它具有以下功能: 加上从样式资源加载图像的更新:

您可能会对我的TBitmapSpeedButton控件感兴趣,它具有以下功能: 加上从样式资源加载图像的更新:

我试图让这个组件在XE6上工作。设法使其编译,但无法使其显示图像。不知道为什么。我的组件是为XE2编写的。FM从那时起发生了重大变化,因此需要对XE6进行一些更新。基本原理应该仍然有效,我试着让这个组件在XE6上工作。设法使其编译,但无法使其显示图像。不知道为什么。我的组件是为XE2编写的。FM从那时起发生了重大变化,因此需要对XE6进行一些更新。不过,基本原则应该仍然有效。