Ver Mensaje Individual
  #1  
Antiguo 21-06-2013
Olenkaguilar Olenkaguilar is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 20
Reputación: 0
Olenkaguilar Va por buen camino
Wink Una ayuda con Imágenes PNG

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
    { Private declarations }
  public
    { Public declarations }
  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.
Responder Con Cita