Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-02-2005
animal animal is offline
Miembro
 
Registrado: ene 2005
Ubicación: Mendoza, Argentina
Posts: 14
Poder: 0
animal Va por buen camino
Exclamation Ayuda!, casi listo.

Que tal, estoy creando este boton de tres estados con imagenes pero me faltan un par de detalles.

1- Cuando compilo el componente, me dice:
[Error] BotonJpg.pas(26): Declaration of 'MouseDown' differs from previous declaration
Y no se que tengo que hacer ya que lo he hecho igual al Move.
2- El MouseLeave me dice:
[Error] BotonJpg.pas(27): Method 'MouseLeave' not found in base class

Es lo ultimo que me falta!
Muchas gracias!.
Eduardo

unit BotonJpg;
interface

uses
SysUtils, Classes, Controls, ExtCtrls, Graphics, QControls, Messages;

type
TBotonJpg = class(TImage)
private
{ Private declarations }
FImagenNormal: TPicture;
FImagenHiLight: TPicture;
FImagenPresionado: TPicture;
procedure SetImagenNormal(Value: TPicture);
procedure SetImagenHiLight(Value: TPicture);
procedure SetImagenPresionado(Value: TPicture);
procedure Moused;
protected
{ Protected declarations }

public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
Procedure MouseMove(Shift: TShiftState; X, Y: Integer); Override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Override;
Procedure MouseLeave(AControl: TControl);Override;
published
{ Published declarations }
property ImagenNormal: TPicture read FImagenNormal write SetImagenNormal;
property ImagenHiLight: TPicture read FImagenHiLight write SetImagenHiLight;
property ImagenPresionado: TPicture read FImagenPresionado write SetImagenPresionado;
end;

procedure Register;

implementation

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

constructor TBotonJpg.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FImagenNormal := TPicture.Create;
FImagenHiLight := TPicture.Create;
FImagenPresionado := TPicture.Create;
Self.Picture := FImagenNormal;
end;

procedure TBotonJpg.SetImagenNormal(Value: TPicture);
begin
FImagenNormal.Assign(Value);
end;

procedure TBotonJpg.SetImagenHiLight(Value: TPicture);
begin
FImagenHiLight.Assign(Value);
end;

procedure TBotonJpg.SetImagenPresionado(Value: TPicture);
begin
FImagenPresionado.Assign(Value);
end;

Procedure TBotonJpg.MouseMove(Shift: TShiftState; X, Y: Integer);
Begin
if (Self.Picture <> FImagenHiLight) then
Self.Picture := FImagenHiLight;
Inherited; // y ejecutar el procedimiento Click del ascendiente
End;

Procedure TBotonJpg.MouseLeave(AControl: TControl);Override;
Begin
Self.Picture := FImagenNormal;
Inherited; // y ejecutar el procedimiento Click del ascendiente
End;

procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Override;
Begin
if (Self.Picture <> FImagenHiLight) then
Self.Picture := FImagenHiLight;
Inherited; // y ejecutar el procedimiento Click del ascendiente
End;

end.
Responder Con Cita
  #2  
Antiguo 16-02-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
1. Quita el override en la implementación del método.
2. El control TImage no tiene un método que se llame MouseLeave, por tanto no es un método que puedas redefinir.

// Saludos
Responder Con Cita
  #3  
Antiguo 16-02-2005
Avatar de unoccio
unoccio unoccio is offline
Registrado
 
Registrado: feb 2005
Posts: 5
Poder: 0
unoccio Va por buen camino
1- fijate, si el cod. es tal cual lo tenés, te falta hacer pertenecer a la clase la implementación del mouseDown:
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
te falta anteponer TBotonJpg.MouseDown en la implementación de ese método.
2- MouseLeave es un método que estás introduciendo vos, por lo tanto no puede ser override, sacale esa palabra reservada y listo.

saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:46:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi