Come interfacciare periferica twain

E' spesso necessario riuscire ad interfacciarsi con scanner, webcam che usano il protocollo twain ( se puo' definirsi cosi'), e tra i componenti a disposizione di lazarus non ce ne sono di utili, quindi necessario cercare altrove...

Con l'aiuto del Forum ho trovato questi file qui http://www.kluug.net/delphitwain.php ... che nella loro ultima versione hanno anche un esempio di uso con lazarus.

Quindi prima di tutto bisogna scaricarsi i file di delphitwain... Analizzata la procedura ci si accorge che i file per lazarus vengono caricati runtime senza installare alcun componente nella palette... e peche' mai? Creiamoci un nuovo componente....aggiungiamo al pacchetto il file delphitwain..., compilamo ed installiamo il componente... Adesso sulla palette abbiamo la linguetta NB con il componente installato.

Proviamolo subito.... Creiamo un nuovo progetto, mettiamoci un tbuttn ed un timage.... mettiamoci pure il componente delphitwain.... adesso gestiamo l' evento del button onclick inserendo il seguente codice che serve per verificare che si abbia una periferica compatibile con il twain ed avviare, nel caso positivi, il processo di aquisizione...

[code] var SelectedSource: Integer;//periferica selezionata begin {Si raccomanda di caricare la libreria dinamicamente senza forzare l'utentefinale all'installazione}

if delphiTwain1.LoadLibrary then begin {Carica il source manager} delphiTwain1.SourceManagerLoaded := TRUE; {E permette all'utente il suo uso}

SelectedSource := delphiTwain1.SelectSource;

if SelectedSource -1 then begin {Carica il sorgente , seleziona il tipo di trasferimento e attiva l'interfaccia)}

delphiTwain1.Source[SelectedSource].Loaded := TRUE;

delphiTwain1.Source[SelectedSource].TransferMode := ttmMemory;

delphiTwain1.Source[SelectedSource].Enabled := TRUE;

end;

{if SelectedSource -1}

end

else showmessage('Twain non installato.');

end; [/code]

 

 

Bene adesso dobbiamo gestire l'evento del delphitwain....OnTwainAcquire....

[code]

procedure TForm1.DelphiTwain1TwainAcquire(Sender: TObject; const Index: Integer; Image: TBitmap; var Cancel: Boolean);

begin

IMAGE1.Picture.ASSIGN(IMAGE);// ASSEGNA IMMAGINE A TIMAGE

CANCEL:=TRUE; // UNA SOLA IMMAGINE (SE FOSSE FALSE.. CONTINUEREBBE LE SCANSIONI) end;

[/code]

 

Tutto fatto... Compiliamo il progetto.. e clicchiamo il button.... e magia.... l'immagine scansionata viene assegnata al timage....( schretchatelo per avere l'immagine totale a Video)

Inserisco il link alla pagina ove ho postato i file d'esempio e dell' lpk

http://www.lazaruspascal.it/index.php?topic=474.msg3299#msg3299

 

 



SMF 2.0.8 | SMF © 2011, Simple Machines
Privacy Policy
SMFAds for Free Forums
TinyPortal © 2005-2012

Go back to article