BSOne.SFC/EM.Lib/ImageEn_SRC/Demos/ImageAcquisition/TwainStore/umain.pas

98 lines
2.3 KiB
Plaintext

unit umain;
interface
uses
Windows, Messages, SysUtils, {$IfNDef VER130} Variants, {$EndIf} Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ieview, imageenview, ExtCtrls;
type
TMainForm = class(TForm)
Panel1: TPanel;
ImageEnView1: TImageEnView;
Button1: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
{$R WindowsTheme.res}
uses
iexAcquire;
function PurifyFileName(const filename:string):string;
var
i: integer;
begin
result := filename;
for i:=1 to length(result) do
if (result[i]=':') or (result[i]='_') then
result[i] := '_';
end;
// Set Twain settings
procedure TMainForm.Button1Click(Sender: TObject);
begin
// Ask user to select a Twain device
ImageEnView1.IO.SelectAcquireSource([ieaTwain]);
// Next call to "Acquire" will only show scanner user interface
ImageEnView1.IO.TwainParams.ShowSettingsOnly := true;
// Show scanner user interface, so user can set settings
if ImageEnView1.IO.Acquire() then
begin
// Save settings to file
// Here we use scanner name. Anyway you could have different settings like "Gray scale", "Color", "ADF"...
with ImageEnView1.IO.TwainParams do
SourceSettings.SaveToFile(PurifyFileName(SourceName[SelectedSource])+'.settings');
end;
end;
// Acquire
procedure TMainForm.Button4Click(Sender: TObject);
var
FileName:string;
begin
// Ask user to select a Twain device
ImageEnView1.IO.SelectAcquireSource([ieaTwain]);
with ImageEnView1.IO.TwainParams do
begin
// Does this settings exists?
FileName := PurifyFileName(SourceName[SelectedSource])+'.settings';
if not FileExists(FileName) then
begin
ShowMessage('Settings not saved for this device. Please click "Set Twain Settings".');
exit;
end;
// We don't need device dialog (optional)
VisibleDialog := false;
// Disable ShowSettingsOnly (this is the default, but could be true from previous session)
ShowSettingsOnly := false;
// Load device settings
SourceSettings.LoadFromFile(FileName);
FeederEnabled := false;
end;
// Capture image using loaded device settings
ImageEnView1.IO.Acquire();
end;
end.