 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
Wolver Membro Junior

Registrado: Quinta-Feira, 9 de Fevereiro de 2006 Mensagens: 343
|
Enviada: Qui Jan 03, 2008 11:00 am Assunto: |
|
|
joao_arthur escreveu: | cara detalha mais o erro posta o código, você declarou na seção uses as units: Código: | uOptions, uCallbacks, uUtil |
aqui eu aproveitei mais ou menos 80% do código da griaule agora o banco fiz em sql server no caso da captura da digital eu capturo só uma vez, porque você está capturando 10? posta ai pra ver se posse te ajudar. |
joao_arthur
Eu criei uma única Unit chamada AcsFinger.
Criei um vetor de 10 posições para deixar o cliente poder cadastrar quantos dedos ele quiser, armazeno no vetor e na hora de gravar atribuo o valor do vetor para a property da minha classe, é que aqui a gente trabalha com POO.
Já encontrei o erro, eu estava fazendo da seguinte maneira (eu alterei alguns pontos do código da Griaule, só para adaptar à minha aplicação):
no exemplo da Griaule é feito assim:
//(rs.FieldByName('template') as TBlobField).LoadFromStream(tptStream);
e o que estava fazendo está assim:
VetorFingers[Indice] := tptStream;
só que o correto é escrever diretamente no vetor :
VetorFingers[Indice] := TMemoryStream.Create();
VetorFingers[Indice].Write(template.tpt^, template.size);
na hora de gravar faço isso:
vfinger : Array [1..10] of TMemoryStream;
o índice é de acordo com o dedo selecionado pelo usuário.
USUARIO é uma classe.
E as property é do tipo TMemoryStream.
procedure TFICP002C.BitBtnConfirmaClick(Sender: TObject);
begin
inherited;
if ConfereComponente(GroupBox1, Nil) then
Exit;
Usuario.CarregarDadosUsuario(EditICPColabo.text);
Usuario.USUARIO_USR := EditICPUsuario.Text;
if VFinger[1] <> nil then
Usuario.POLEGAR_E_USR := VFinger[1];
if VFinger[2] <> nil then
Usuario.INDICADOR_E_USR := VFinger[2];
if VFinger[3] <> nil then
Usuario.MEDIO_E_USR := VFinger[3];
if VFinger[4] <> nil then
Usuario.ANELAR_E_USR := VFinger[4];
if VFinger[5] <> nil then
Usuario.MINIMO_E_USR := VFinger[5];
if VFinger[6] <> nil then
Usuario.POLEGAR_D_USR := VFinger[6];
if VFinger[7] <> nil then
Usuario.INDICADOR_D_USR := VFinger[7];
if VFinger[8] <> nil then
Usuario.MEDIO_D_USR := VFinger[8];
if VFinger[9] <> nil then
Usuario.ANELAR_D_USR := VFinger[9];
if VFinger[10] <> nil then
Usuario.MINIMO_D_USR := VFinger[10];
Usuario.Gravar;
end;
obrigado pela ajuda...qualquer coisa estamos aí.
falow
wolver. |
|
Voltar ao Topo |
|
 |
Wolver Membro Junior

Registrado: Quinta-Feira, 9 de Fevereiro de 2006 Mensagens: 343
|
Enviada: Seg Jan 07, 2008 4:14 pm Assunto: |
|
|
joao_arthur escreveu: | cara detalha mais o erro posta o código, você declarou na seção uses as units: Código: | uOptions, uCallbacks, uUtil |
aqui eu aproveitei mais ou menos 80% do código da griaule agora o banco fiz em sql server no caso da captura da digital eu capturo só uma vez, porque você está capturando 10? posta ai pra ver se posse te ajudar. |
joao_arthur
Como faço, a partir da base de dados carregar uma variável com a impressão digital cadastrada?
Estou fazendo assim:
Template.size := length(FieldByName('Polegar_D_Usr').AsString);
FPOLEGAR_D_USR := TMemoryStream.Create();
FPOLEGAR_D_USR.write(Template.tpt^, Template.size);
só que não está trazendo o mesmo valor que estava gravado.
wolver |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|