AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Twain-Modul modal starten

Ein Thema von Perlsau · begonnen am 3. Mär 2015 · letzter Beitrag vom 1. Apr 2015
Antwort Antwort
Perlsau
(Gast)

n/a Beiträge
 
#1

Twain-Modul modal starten

  Alt 3. Mär 2015, 13:18
Moinsen,

gibt es eine Möglichkeit, mit DelphiTwain das Scan-Modul modal zu starten, so daß der Anwender nicht auf Formulare der Hauptanwendung zugreifen kann, während das Scan-Modul sichtbar ist?

Hintergrund: Greift der Anwender (z.B. aus Ungeduld, weil der Scanvorgang so lange dauert) auf Formulare der Hauptanwendung zu, löst das einen Fehler aus, wenn gerade gescannt wird. Der Scanner bleibt stehen und läßt sich erst durch einen Neustart (bzw. Windows Ab- und Anmeldung) wieder zum Arbeiten bewegen.

Im Projekt XXX.exe ist eine Exception der Klasse $C0000008 mit der Meldung 'system exception (code 0xc0000008) at 0x76e605b7' aufgetreten.

Der Aufruf sieht so aus:
Delphi-Quellcode:
Procedure TFormScanner.Bit_ScanStartClick(Sender: TObject);
begin
  Twain.SelectedSourceIndex := ListBox_Quellen.ItemIndex;

  If Assigned(Twain.SelectedSource) Then
  Begin
    Twain.SelectedSource.Loaded := True;
    Twain.SelectedSource.Modal := True;
    Twain.SelectedSource.ShowUI := True;
    Twain.SelectedSource.Enabled := True;
  End;
end;
Offenbar zeitigt Twain.SelectedSource.Modal := True; nicht die erhoffte Wirkung, ich kann während des Scannens noch immer auf das Formular FormScanner zugreifen und z.B. die Grafik speichern. Danach erscheint dann die obige Fehlermeldung, manchmal auch erst beim nächsten Scanversuch, auch nach Neustart der Anwendung. Drücke ich auf Fortsetzen, kommt dieselbe Meldung in anderer Form noch einmal:

In Projekt XXX.exe trat ein Problem mit folgender Meldung auf: 'system exception (code 0xc0000008) at 0x76e605b7'. Prozess angehalten. Mit Einzelne Anweisung oder Start fortsetzen.

Geändert von Perlsau ( 3. Mär 2015 um 13:23 Uhr)
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: Twain-Modul modal starten

  Alt 3. Mär 2015, 13:38
Ich habe einen modalen Dialog dazwischen geschaltet. Die Form aus der gescannt wird ruft diesen modalen Dialog auf, wo ich auch die Optionen zum Scannen einstelle.
Miniaturansicht angehängter Grafiken
scannerdlg.jpg  
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: Twain-Modul modal starten

  Alt 3. Mär 2015, 13:50
Das mache ich genauso: Meine Anwendung ruft eine Form modal auf, von der aus das Scan-Modul gestartet werden kann. Während das Scan-Modul sichtbar ist, soll für den Anwender jedoch keine Form der eigentlichen Anwendung erreichbar sein, weil es sonst zu dieser Fehlermeldung kommt. Im Moment sorgt ein Klick auf die Hauptform dafür, daß diese mitsamt meinem Scan-Dialog in den Vordergrund hüpft und daß ich im Scan-Dialog Buttons klicken kann.

Wenn ich dagegen z.B. von CorelPaint aus das Twain-Modul aufgerufen habe, kann ich nicht auf die Form von CorelPaint klicken, weil dort das Twain-Modul definitiv modal aufgerufen wird.

Ich versuche jetzt mal, die Eigenschaft Enabled des modalen Scan-Dialogs meiner Anwendung auf False zu setzen und mit irgend einem Event don TDelphiTwain wieder auf True. Schau'n mer mal

Nachtrag aus der Twain-Onlinehilfe:
property Modal: Boolean;
This property sets if the windows displayed by the source are modal with the application windows. Setting this property to TRUE makes application windows disabled while source is displaying any window. This property is recommended to set to TRUE.
Miniaturansicht angehängter Grafiken
scanmodal.jpg  

Geändert von Perlsau ( 3. Mär 2015 um 13:53 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

AW: Twain-Modul modal starten

  Alt 3. Mär 2015, 15:06
ScanDialog.Enabled := false und dann Scannen?
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: Twain-Modul modal starten

  Alt 1. Apr 2015, 09:53
Weder Enabled := False noch Visible := False hat irgend eine Auswirkung. Offenbar kann ein Formular sich nicht selbst deaktivieren ...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 Uhr.
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