用于将 DigitaPersona 模板串行数据保存到 DBASE4 DBF 文件的 DELPHI 5 示例。
procedure TFormEnroll.DPFPEnrollmentControl1Enroll(Sender: TObject;
lFingerMask: Integer; const pTemplate, pStatus: IDispatch);
var
MMask : Integer;
Template : IDispatch;
MTempStr : OleVariant;
lByteArray: Variant;
lArrayPointer: Pointer;
lStr: AnsiString;
DPFPTemplate: TDPFPTemplate;
aRawData : Variant;
begin
aRawData := pTemplate;
lStr := aRawData.Serialize;
MMask := lFingerMask;
if lStr = null then
StatusBar.Panels.Items[0].Text := 'The fingerprint TEMPLATE is empty! + Mask=' + IntToStr(MMask)
else
StatusBar.Panels.Items[0].Text := 'The fingerprint TEMPLATE has something! + Mask=' + IntToStr(MMask);
MMsg := lStr;
MLen := Length(MMsg);
EditSerialData.Text := MMsg;
MemoSerialData.Lines.Text := MMsg;
MemoSerialData2.Lines.Text := MMsg;
EditLenSerialData.Text := IntToStr(MLen);
EditFingerMask.Text := IntToStr(DPFPEnrollmentControl1.EnrolledFingersMask);
//Update database - Take to separate save button
DMForm.Finger.First;
if DMForm.Finger.State in [dsEdit, dsInsert] then
// do nothing
else
DMForm.Finger.Edit;
DMForm.FingerUSERNAME.Value := 'Testing ';
DMForm.Finger.Post;
DMForm.Finger.Edit;
DMForm.FingerUSERNAME.Value := 'Testing ' + IntToStr(DMForm.FingerFINGERID.Value);
DMForm.FingerFINGERTEMP.Value := MMsg;
DMForm.FingerEnrolledFingerMask.Value := IntToStr(DPFPEnrollmentControl1.EnrolledFingersMask);
DMForm.FingerFingerSerialData.Value := MMsg;
DMForm.Finger.Post;
end;
已保存模板的示例字符串 = "?b???????????????????????????????????????????????? ???????õ????????????????????????????????????+?????????[ ??????????????????V????????????????????????????????? ?????????????????????????????????9????????????o?????? ??????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ??????????????????????????????????????????????????? ???????????????j????????????????????????o????????????? ?????????????????????????????????????????????U·??? ??????????????????????????????????????????????????? ??????????????????????????????????????????????????? ??????????????????????????????????????????????????? ??????????????????????????????#????????????????????? ??????????????????????????????????????????????????? ??????????????????????????????????????????????????? ??????????????????????????????????????????????????? ???????????????”
这是我们期待的结果吗?这是一个可行的模板吗?你能解释一下(aRawData := pTemplate;)'aRawData' 的交互,它是一个变体,'pTemplate;)'是一个 Dispatch 变量。我在写路径上吗?