PDA

Ver la Versión Completa : Ayuda con componente


animal
16-02-2005, 04:37:31
Hola!, soy medio novato con Delphi y estoy tratando de crear un componente y tengo problemas ya que cuando lo voy a agergar en el formulario me da error!.
Abajo esta todo el código si lo pueden revisar.
X si no se entiende estoy tratando de crear un boton con TImage para poder soportar JPG. Le agrego 3 TPicture de lso tres estados del boton y las cambio cuando se presiona el boton , se mueve sobre o esta normal.
Gracias!
Eduardo


unit BotonJpg;
interface

uses
SysUtils, Classes, Controls, ExtCtrls, Graphics;

type
TBotonJpg = class(TImage)
private
{ Private declarations }
FPicture: TPicture;
FPicture1: TPicture;
procedure SetPicture(Value: TPicture);
protected
{ Protected declarations }
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);override;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
published
{ Published declarations }
property ImagenNormal: TPicture read FPicture1 write SetPicture;

end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Standard', [TBotonJpg]);
end;

constructor TBotonJpg.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
end;

procedure TBotonJpg.SetPicture(Value: TPicture);
begin
FPicture.Assign(Value);
end;

procedure TBotonJpg.MouseDown;
begin
inherited;
FPicture.Assign(ImagenNormal);
end;

procedure TBotonJpg.MouseUp;
begin
inherited;
FPicture.Assign(ImagenNormal);
end;
end.


PD: Sirvio mucho explicar lo que tenia que hacer , he?:D

roman
16-02-2005, 07:13:29
¿Par qué quieres un constructor si no haces nada en él?
¿Para qué quieres dos imágenes si sólo usas una?
¿Para qué el MouseDown y MouseUp si asignas la misma imagen?

Usa el constructor para crear FPicture. Nunca la creas así que los "Access violation" están a la orden del día.

// Saludos

animal
16-02-2005, 07:49:47
Apuesto a que no sabias que se podia hacer eso con delphi!! jajaja
Bueno, vere que mas puedo inventar(aunque no ande)...
Es lindo aprender y sobretodo con personas pacientes!!
GRACIAS!!