こんにちは、長野です。
StrPcopy(fname: PChar, hdb_file: string)
なのでシンプルにファイル名の変数をstringで宣言し
そこにファイル名を代入すればいいと思います。
ポインタを使う必要があるのでしょうか。
var
hdb_file: string;
fname: PChar;
Begin
hdb_file := 'c:\hamlog\hamlog.hdb';
StrPCopy(fname, hdb_file);
sd := HamlogOpen(nil, Th, fname, 0);
end;