Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Problem mit DelphiTwain by Kluug.net (https://www.delphipraxis.net/189751-problem-mit-delphitwain-kluug-net.html)

Steffen0917 16. Jul 2016 11:23

Problem mit DelphiTwain by Kluug.net
 
Hallo zusammen,

ich teste gerade DelphiTwain von Kluug.
Die heruntergeladene SimpleExample.exe funktioniert einwandfrei, nur wenn ich das selbst compiliere, klappt es nicht.

Als erstes musste ich DelphiTwain_VCL unter uses ergänzen, dann noch Twain: TDelphiTwain nach private verschieben (keine Klasse sondern Variable).
Nun konnte ich das Programm compilieren und starten.
Bei Klicken von "Aquire" erhalte ich aber eine Exception (access Violation) direkt bei "if Twain.LoadLibrary..." bzw. in der unit DelphiTwain bei "if (not LibraryLoaded)...".

Was mache ich nur falsch ?

Gruß, Steffen

hoika 16. Jul 2016 14:00

AW: Problem mit DelphiTwain by Kluug.net
 
Hallo,
die Klasse erzeugen?

Steffen0917 17. Jul 2016 10:25

AW: Problem mit DelphiTwain by Kluug.net
 
Hallo Heiko,

ich bin leider kein Profi, vielleicht habe ich mich auch nur falsch ausgedrückt,
deshalb hier der Code mit meinen Änderungen:

Delphi-Quellcode:
unit SimpleExampleForm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, DelphiTwain, [B]DelphiTwain_VCL [/B];

type
  TForm1 = class(TForm)
    Title: TPanel;
    ImageHolder: TImage;
    GoAcquire: TButton;
    //Twain: TDelphiTwain;  [B]--> verschoben in public[/B]
    procedure GoAcquireClick(Sender: TObject);
    procedure TwainTwainAcquire(Sender: TObject; const Index: Integer;
      Image: TBitmap; var Cancel: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
    [B]Twain: TDelphiTwain;[/B]
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

{Acquire into image}

procedure TForm1.GoAcquireClick(Sender: TObject);
var
  SelectedSource: Integer;
begin
  {It is always recommended to load library dynamically, never forcing}
  {final user to have twain installed}
  if Twain.LoadLibrary then
  begin

    {Load source manager}
    Twain.SourceManagerLoaded := TRUE;
    {Allow user to select source}
    SelectedSource := Twain.SelectSource;
    if SelectedSource <> -1 then
    begin
      {Load source, select transference method and enable (display interface)}
      Twain.Source[SelectedSource].Loaded := TRUE;
      Twain.Source[SelectedSource].TransferMode := ttmMemory;
      Twain.Source[SelectedSource].Enabled := TRUE;
    end {if SelectedSource <> -1}

  end
  else
    showmessage('Twain is not installed.');
end;

hoika 17. Jul 2016 11:09

AW: Problem mit DelphiTwain by Kluug.net
 
Hallo,
nein, passt schon.
Im ursprünglichen Beispiel (privat) war die Komponente auf dem Form
und wurde damit automatisch erzeugt.

Jetzt musst du die Klasse selbst erzeugen,
z.B. im FormCreate.


Heiko

Steffen0917 17. Jul 2016 12:35

AW: Problem mit DelphiTwain by Kluug.net
 
Und WIE erzeuge ich diese Klasse, ein Twain.Create funktioniert leider nicht...

Steffen

hstreicher 17. Jul 2016 12:37

AW: Problem mit DelphiTwain by Kluug.net
 
so sollte es gehen

twain:= TDelphiTwain.create;

Steffen0917 17. Jul 2016 13:14

AW: Problem mit DelphiTwain by Kluug.net
 
Danke, das Scannen funktioniert jetzt.
Nun muss ich nur noch herausfinden, wie man auf das gescannte Bild zugreifen kann.

hoika 17. Jul 2016 15:35

AW: Problem mit DelphiTwain by Kluug.net
 
Hallo,
in deinem Bsp. gibt es genau eine Zeile
mit TImage ...
und genau dort ist das Bild

Heiko

Steffen0917 17. Jul 2016 22:03

AW: Problem mit DelphiTwain by Kluug.net
 
Leider nicht, das TImage ist von der zweiten Procedur von SimpleExample:

{Image acquired}
procedure TForm1.TwainTwainAcquire(Sender: TObject; const Index: Integer;
Image: TBitmap; var Cancel: Boolean);
begin
ImageHolder.Picture.Assign(Image);
Cancel := TRUE; {Only want one image}
end;

wobei diese nirgendwo aufgerufen wird (Imageholder ist ein TImage auf der Form).
Ich denke, durch den Wegfall der ursprünglichen Komponente ist das Ganze irgendwie kastriert.

Ich weiß nicht weiter.

Sir Rufo 17. Jul 2016 22:15

AW: Problem mit DelphiTwain by Kluug.net
 
Im Form Create nach dem Erzeugen von
Delphi-Quellcode:
TTwain
:

Delphi-Quellcode:
Twain.OnTwainAcquire := TwainTwainAcquire;
.

PS: Wer seit 2005 dabei ist, von dem erwarte ich eigentlich, dass er die DELPHI Tags kennt und verwendet!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz