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
Execute; end;
procedure TCompararMd5.Execute;
begin
inherited;
inherited Execute;
end;
Saludos