長野さん、ありがとうございます。 おかげさまでできました。
> GetMem(), FreeMem() を追加して文字数に応じたメモリを確保する必要があるようです。どうでしょうか。
そのようですね、実際には hdb のパスを ini にファイルから hamlog_hdb_path に取っているので
下記の様にして上手く行きました。
GetMem(fname, length(hamlog_hdb_path) + 1);
StrPCopy(fname, hamlog_hdb_path);
sd := HamlogOpen(nil, Th, fname, 0);