Bueno resulta que quiero poner imágenes PNG a los Buttons y utilizar la propiedad FLAT( que al pasar el puntero aparezca el button), lo hice de la siguiente manera:
Código Delphi
[-]unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, PngImage, Vcl.Buttons;
type
TForm2 = class(TForm)
SpeedButton1: TSpeedButton;
procedure FormCreate(Sender: TObject);
private
public
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
{$R Misrecursos.res}
procedure LoadPNGFromResource(Picture: TPicture; const ResName: string); overload;
var
Png: TPngImage;
begin
Png := TPngImage.Create;
try
Png.LoadFromResourceName(HInstance, ResName);
Picture.Assign(Png);
finally
if Assigned(Png) then FreeAndNil(Png);
end;
end;
procedure LoadPNGFromResource(Bitmap: TBitmap; const ResName: string); overload;
var
Png: TPngImage;
begin
Png := TPngImage.Create;
try
Png.LoadFromResourceName(HInstance, ResName);
Bitmap.Assign(Png);
finally
if Assigned(Png) then FreeAndNil(Png);
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
LoadPNGFromResource(SpeedButton1.Glyph, 'RES_IMG_BROOM_16X');
end;
end
Me funciono pero lo malo es que la imagen PNG se nota muy fea. Lo que supongo que le faltaría las opciones de:
- DrawingStyle: dsTransparent
- ColorDepth: cd32Bit
Esas propiedades funcionan en un TimageList, pero no sé a lo mejor le falta eso a mi codigo.
Utilizaría un TimageList y otro Button, me olvidaría de los recursos, si no cargaría directamente los PNG al ImageList y Listo, pero al parecer otros Button no tienen la propiedad FLAT.
Bueno espero su ayuda ya que recién estoy empezando y soy un poco novata.