![]() |
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 |
AW: Problem mit DelphiTwain by Kluug.net
Hallo,
die Klasse erzeugen? |
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; |
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 |
AW: Problem mit DelphiTwain by Kluug.net
Und WIE erzeuge ich diese Klasse, ein Twain.Create funktioniert leider nicht...
Steffen |
AW: Problem mit DelphiTwain by Kluug.net
so sollte es gehen
twain:= TDelphiTwain.create; |
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. |
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 |
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. |
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 00:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz