Ver Mensaje Individual
  #1  
Antiguo 20-03-2010
Avatar de yapt
yapt yapt is offline
Miembro
 
Registrado: sep 2006
Ubicación: España
Posts: 258
Reputación: 18
yapt Va por buen camino
Question Redefinir eventos de controles "delegados"

Hola a todos, quiero hacer lo siguiente (a ver si consigo explicarme):

Tengo una clase que hace un trabajo X.
Ahora quiero hacer una clase que utiliza esta primera y que sirva de interfaz entre la primera clase y los propios componentes del form.

Para ello quiero utilizar los eventos onKeyUp de los TEdit. Y con cada cambio de cada uno de ellos, afectar a la propiedad Text de los demas.

Algo así (aunque quizá lo que persigo no sea muy importante finalmente):


Código Delphi [-]
TClase1 = class
 ....
end;

Y la segunda:

Código Delphi [-]
TClase2 = Class(Clase1)
strict private
  FEdit1: TEdit;
  FEdit2: TEdit;
  FEdit3: TEdit;
privateprocedure MiFOnKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
 procedure SetEdit1(const Value: TEdit);
public
  property Edit1: TEdit read FEdit1 write SetEdit1;
  property Edit2: TEdit read FEdit2 write SetEdit2;
  property Edit3: TEdit read FEdit3 write SetEdit3;
end;

procedure TClase2.SetEdit1(const Value:TEdit);
begin
  FEdit1 := Value;
  FEdit1.OnKeyUp := FMiOnKeyUp(Self, Key, Shift);
end;

procedure TClase2.MiFOnKeyUp(Sender: TObject; var Key: Word; Shift:  TShiftState);
begin
  //.... hago lo que sea aquí.....
  if Assigned(FOnKeyUp) then FOnKeyUp;  <<<< aquí el error...
end;

El tema es, como hago para crear mi propio OnKeyUp para cada Edit1, 2 y 3, y que siga ejecutandose el onKeyUp del propio componente dentro del formulario (después/antes de mi propio OnKeyUp).

He cambiado la linea marcada como erronea, de todas las formas (razonables) que se me ocurren...

No se si me explico. Si hay alguna duda, trato de aclararla.

Gracias.
Responder Con Cita