98 lines
2.3 KiB
Plaintext
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.
|