Ver Mensaje Individual
  #3  
Antiguo 09-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
Que yo sepa, no puedes.

En la clase TThread, ya está puesto como Virtual y abstract:
- Por Virtual, ya puedes hacer un override del método.
- Por abstract, no puedes dejar su implementación vacía, si lo haces, en ejecución obtendrás una excepción "abstract error".

Dicho esto, puedes sobreescribir (override) el método, pero no puedes cambiar los parámetros, ni si quiera con overload;

Solución a este paradigma, crear un método nuevo:
Código Delphi [-]
TCompararMd5 = class(TThread)
     protected
        procedure ExecuteWithIndex(nIdx: integer);
        procedure Execute; override;
     end;
  end;

Desde ExecuteWithIndex llamas a Execute tu método que sobreescribe el heredado. Dentro de Execute si puedes usar inherited;
Código Delphi [-]
procedure TCompararMd5.ExecuteWithIndex(nIdx: integer);
begin
  // hacer lo que sea con nIdx;
  Execute; // llamas a tu execute, el que has sobreescrito tú.
end;

procedure TCompararMd5.Execute;
begin

  // llamar al Execute heredado
  inherited;
 // o bien, si deseas dejarlo de forma explícita:
 inherited Execute;
end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita