kra eu to pior q vc, vc ainda conseuio capturar e gravar e eu que
ainda nem isso consegui, estou usando o SDK da NitGen, e os exemplos
que vem com ele sao muito confuso e o pior os kras nao colocam nada
parecido com nossa realidade e muito engraçado, dai ta fodis!!
To procurando uma luz na net pra ver se encontro um exemplo descente!
flw

Bit

--- Em delphi-br@yahoogrupos.com.br, "Rafael Jorge" <[EMAIL PROTECTED]>
escreveu
>
> estou desenvolvendo um sistema de que captura a digital por um leitor
> biometrico usando o Griaule Fingerprint SDK 2007.
> pensei ter concluido tudo mas percebi que hora ele diz certo de quem é a
> digital hora ele da erro hora ele nao acha ninquem.. e do nada ele
da acess
> violation..
> to usando as sequintes rotinas pra cadastrar..
> 
> procedure TRafaelFingerPrinter.Matricular;
> var
> id : string;
> i : integer;
> tptstream : tmemorystream;
> handle : hbitmap;
> hdc : longint;
> begin
> if self.FDataset.Active = false
> then showmessage('Tabela onde vai ser quardada as digitais nao esta
ativa')
> else begin
> if ExtractTemplate > 0 then
> begin
> self.Fdisplay.Picture.Bitmap.FreeImage;
> handle := self.Fdisplay.Picture.Bitmap.ReleaseHandle;
> DeleteObject(handle);
> {$iFOPT R+}
> {$DEFINE CKRANGE}
> {$R-}
> {$ENDIF}
> hdc := GetDC(hwnd(nil));
> {Finger.BiometricDisplay(template.tpt,
> raw.img,
> raw.width,
> raw.height,
> raw.Res,
> hdc,
> handle,
> GR_NO_CONTEXT);}
> 
> if handle <> 0 then
> begin
> self.display.Picture.Bitmap.Handle := handle;
> self.display.Repaint;
> end;
> 
> ReleaseDC(hwnd(nil), hdc);
> {$IFDEF CKRANGE}
> {$UNDEF CKRANGE}
> {$R+}
> {$ENDIF}
> end;
> //gravando
> if (((template.size > 0) and (template.tpt <> nil))) then
> begin
> self.FDataset.Edit;
> tptstream := tmemorystream.create();
> tptstream.Write(template.tpt^, template.size);
> (self.Dataset.FieldByName(self.campo) as
> TBlobField).LoadFromStream(tptstream);
> tptstream.free;
> end;
> end;
> end;
> 
> 
> e to usando esta rotina para verificar a digital passada depois de
capturar.
> 
> 
> function TRafaelFingerPrinter.Identificar: boolean;
> var
> encontrou : string;
> tmp : string;
> score : integer;
> i : integer;
> cdc : tclientdataset;
> ultimo : string;
> begin
> encontrou := 'N';
> if extracttemplate() >= 0 then
> begin
> self.Finger.IdentifyPrepare(template.tpt, GR_DEFAULT_CONTEXT);
> //abrindo banco de dados
> cdc := criaclientdataset('select '+self.Fcampo+',
'+self.FCanpo_codigo+#13+
> 'from '+self.FNomeTabela+#13+
> 'where not '+self.FCampo+' is null',
> self.FConexao,
> ultimo,
> CTtquery);
> cdc.first;
> while not cdc.eof do
> begin
> tmp := cdc.fieldbyname(self.fcampo).asstring;
> template.size := length(tmp);
> move(pchar(tmp)^, template.tpt^, template.size);
> if template.size > 0 then
> begin
> if self.Finger.Identify(template.tpt,score,GR_DEFAULT_CONTEXT) =
gr_match
> then
> begin
> encontrou := 'S';
> self.IDObtido := cdc.fieldbyname(self.FCanpo_codigo).asstring;
> break;
> end;
> end;
> cdc.next;
> end;
> cdc.free;
> if encontrou = 'N'
> then showmessage('Digital não encontrada');
> end;
> end;
> 
> to com pressa de resolver isso e nao to vendo solucao.
> o exemplo deles é muito confuso, eu tentei usar firebird no exemplo
deles e
> deu a mesma coisa so mudei a forma de gravar os dados e verificar, e
fica
> dando a mesma coisa. nao auterei mas nada no exemplo..
> 
> alquem ai ja desenvolveu algo pra isso? pq nao sei mas o que fazer...
> o prazo ta vencendo e eu nao sei como solucionar isso..
> obrigdao.
> t+
> 
> -- 
> -------------------------------------------------------------------
> Rafael jorge alves (Analista/desenvolvedor)
> 
> www.sistemafocus.com.br
> sistema focus de gestão comercial e serviços em informatica.
> -------------------------------------------------------------------
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a