AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Warten, bis Registrywert fertig geschrieben wurde?
Thema durchsuchen
Ansicht
Themen-Optionen

Warten, bis Registrywert fertig geschrieben wurde?

Ein Thema von Nuclear-Ping · begonnen am 1. Okt 2004 · letzter Beitrag vom 1. Okt 2004
Antwort Antwort
Nuclear-Ping
(Gast)

n/a Beiträge
 
#1

Warten, bis Registrywert fertig geschrieben wurde?

  Alt 1. Okt 2004, 09:04
Hallo,

ich drucke über eine Schleife unter Verwendung des TWebBrowsers mehrere von meinem Programm erstellte HTML-Reports hintereinander aus, wobei ich vor jedem neuen Dokument die entsprechenden Registry-Werte für den IE aktualisiere, damit auf dem Ausdruck der Titel des jeweiligen Dokuments erscheint.

Delphi-Quellcode:
  for a := 0 to PageSelect.Items.Count - 1 do
    begin
      ProgressFrm.UpdateProgressBar (a + 1, MaxPages);

      // Seite in die IE-Instanz laden (wartet auch bis ReadyState = READYSTATE_COMPLETE)
      ViewPage (GetTextFromToken (FPageList[a], 0, '|'));

      // Registry-Keys für IE aktualisieren
      Prepare_IE_PageSetup (PageSelect.Items[a], '');

      // Zwangspause
      Application.ProcessMessages;
      Sleep (500);

      // Dokument drucken lassen
      IEinstance.ExecWB (OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER);
    end;
Das Problem was sich nun dabei stellt ist, dass er in praktisch jeder Druck-Session mindestens ein oder zwei Titel, trotz der Zwangspause, verhaut und so auf dem Ausdruck eines neuen Dokuments noch der Titel des zuvor gedruckten steht.

Gibt es eine Möglichkeit, zu warten, bis die Registry-Werte auch tatsächlich aktualisiert wurden? Sozusagen ein READYSTATE_COMPLETE für die Registry oder ähnliches?

Oder hat jemand sogar einen besseren Vorschlag, wie man das lösen könnte?

Grüße,
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Warten, bis Registrywert fertig geschrieben wurde?

  Alt 1. Okt 2004, 10:17
Hai Nuclear-Ping,

eine Idee wäre in einer Schleife (mit kurzer Pause drinnne) "endlos" zu prüfen ob sich der Wert in der Reg geändert hat. Dafür brauchst Du den Vorgängerwert ja nur in einer Variable zu speichern.

Delphi-Quellcode:
var
  zeit : Byte;
begin
// PseudoCode
  zeit = 0;
  while (oldvalue = ReadRegistry) AND (zeil < 10) do
  begin
    Delay (500); // Pause
    Inc (zeit); // Zusätzliche Abbruchbedingung (5 sekunden)
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#3

Re: Warten, bis Registrywert fertig geschrieben wurde?

  Alt 1. Okt 2004, 10:38
Stimmt, danke, guter Tip!

Werd ich mal umsetzen ...

Grüße,
Mario
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#4

Re: Warten, bis Registrywert fertig geschrieben wurde?

  Alt 1. Okt 2004, 13:06
OK, habs umgesetzt.

Das schaut schonmal gut aus. Habs gerade getestet und diesmal hat er nichts verhauen.
Hoffe, das wars auch jetzt, werde es aber noch paar mal testen.

[edit]
Alles klar, habs noch paar mal getestet. Läuft wie Butter. Vielen Dank nochmals für den Wink mit dem Zaunspfahl.
[/edit]

Grüße,
Mario
  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 09:05 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