home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 March / Chip_2002-03_cd1.bin / zkuste / delphi / kompon / d5 / SGSCAN.ZIP / main.pas < prev    next >
Pascal/Delphi Source File  |  1998-07-15  |  2KB  |  95 lines

  1. unit main;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, MultiTwain, ExtCtrls, Buttons;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Button1: TButton;
  12.     Image1: TImage;
  13.     BitBtn1: TBitBtn;
  14.     BitBtn2: TBitBtn;
  15.     Image2: TImage;
  16.     procedure FormCreate(Sender: TObject);
  17.     procedure Button1Click(Sender: TObject);
  18.     procedure BitBtn1Click(Sender: TObject);
  19.     procedure BitBtn2Click(Sender: TObject);
  20.   private
  21.     { Private declarations }
  22.   public
  23.     { Public declarations }
  24.     hdib, testdib: hbitmap;
  25.     w, h: integer;
  26.     n: Integer;
  27.   end;
  28.  
  29. var
  30.   Form1: TForm1;
  31.  
  32. procedure CallbackFxn(CurDib: THandle; index: Integer); stdcall; forward;
  33.  
  34. implementation
  35.  
  36. {$R *.DFM}
  37.  
  38. procedure TForm1.FormCreate(Sender: TObject);
  39.  
  40. begin
  41.    hDib := 0;
  42.    w := 0; h := 0;
  43.    testDib := 0;
  44.    TWAIN_RegisterCallback(CallbackFxn);
  45. end;
  46.  
  47. procedure TForm1.Button1Click(Sender: TObject);
  48.  
  49. begin
  50.    TWAIN_SelectImageSource(0);
  51.    hdib := TWAIN_AcquireNative(0, 0);
  52.    n := TWAIN_GetNumDibs;
  53.    if n >= 1 then
  54.       begin
  55.          TestDib := TWAIN_GetDib(0);
  56.          CopyDibIntoImage(TestDib, Image1);
  57.          TWAIN_FreeNative(TestDib);
  58.          TestDib := 0;
  59.       end;
  60.    if n = 2 then
  61.       begin
  62.          TestDib := TWAIN_GetDib(1);
  63.          CopyDibIntoImage(TestDib, Image2);
  64.          TWAIN_FreeNative(TestDib);
  65.          TestDib := 0;
  66.       end;
  67.  
  68. end;
  69.  
  70. procedure TForm1.BitBtn1Click(Sender: TObject);
  71. begin
  72.    Image1.Visible := False;
  73.    image1.Top := 0;
  74.    Image1.Left := 0;
  75.    Image1.Width := ClientWidth;
  76.    Image1.Height := ClientHeight;
  77.    Image1.Visible := True;
  78. end;
  79.  
  80. procedure TForm1.BitBtn2Click(Sender: TObject);
  81. begin
  82.    Image1.Visible := False;
  83.    image1.Top := 100;
  84.    Image1.Left := 50;
  85.    Image1.Width := 150;
  86.    Image1.Height := 150;
  87.    Image1.Visible := True;
  88. end;
  89.  
  90. procedure CallbackFxn(CurDib: THandle; index: Integer); stdcall;
  91. begin
  92.    MessageBox(0, 'Called back!', 'CallbackFxn', mb_ok);
  93. end;
  94. end.
  95.