Naja du musst schon eine Instanz und nicht die Klasse übergeben. Ich habe mal schnell ein Testprojekt zusammen geknüppelt. Kompiliert zumindest einwandfrei. Auch zur Laufzeit kommen bei mir keinerlei Fehler.
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, DECHash;
type
THashTest =
class
private
public
function HashData(HashClass: THashBaseMD4):
string;
end;
{ THashTest }
function THashTest.HashData(HashClass: THashBaseMD4):
string;
begin
Result := HashClass.CalcString('
');
end;
var
sha256: THash_SHA256;
md5: THash_MD5;
hashTest: THashTest;
begin
try
sha256 := THash_SHA256.Create;
md5 := THash_MD5.Create;
hashTest := THashTest.Create;
Writeln(hashTest.HashData(sha256));
Writeln(hashTest.HashData(md5));
Readln;
except
on E:
Exception do
Writeln(E.ClassName, '
: ', E.
Message);
end;
end.