Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Dialogsequenzen


5 replies to this topic

saaydin

saaydin
  • Members
  • 8 posts

Posted 08 January 2004 - 14:16

Hallo an Alle,

ich nochmal smile.gif

Wollte fragen, ob jemand weiss, wie man das bewerkstelligt, dass die Dialoge nicht so dicht aufeinander folgen, sondern paar Sekunden gewartet wird, bis der nächste Dialog erscheint.


Danke schonmal im voraus.

Gruss
Aydin

PS: Verwende InstallShield Developer 8.01 MSI Basic Project.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 08 January 2004 - 17:35

Das ist ein recht ungewöhnlicher Wunsch, finde ich. Normalerweise will man doch eher das Gegenteil?

saaydin

saaydin
  • Members
  • 8 posts

Posted 09 January 2004 - 13:37

Ja das ist wohl wahr. Es ist wirklich ein ungewöhnlicher wunsch. Aber das hat ja auch seinen Grund wink.gif

Ich möchte nämlich, dass bis zum Erscheinen des nächsten Dialogs genügend Zeit vergeht, damit einige meiner selbstdefinierten Aktionen, die über ein ControlEvent
aufgerufen werden, vollständig ausgeführt werden, bevor die nächste Aktion durch ein ControlEvent im darauf folgenden Dialog aktiviert wird.



Können Sie mir da vielleicht weiterhelfen?

Nochmals vielen Dank.

Gruss
Aydin

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 09 January 2004 - 14:21

Mir fällt leider keine Methode ein, jedenfalls nicht mit den eingebauten Möglichkeiten von Windows Installer. Eigentlich wäre eine nicht-modale Dialogbox dafür nett, aber das funktioniert nicht innerhalb einer Wizard-Sequenz, d.h. die Funktionalität des Back-Buttons geht dabei verloren.

aldi

aldi
  • Members
  • 25 posts

Posted 29 January 2004 - 09:12

Hallo,

wie hast Du die Custom Action denn eingestellt, Synchron (Exit Code prüfen )?

Edited by aldi, 29 January 2004 - 09:12.


hteichert

hteichert
  • Members
  • 158 posts

Posted 29 January 2004 - 10:41

Also der Gedanke einfach ein paar Sekunden zu warten, dann wird die CA schon fertig sein, ist prinzipiell der falsche Ansatz. Einerseits kann die CA ja schon nach 0,5 Sekunden fertig sein, dann muss der User unnötig warten. Andererseits klemmt vielleicht irgendetwas bei der Ausführung der CA und die gewählte Zeitspanne reicht nicht. Letzlich sind beide Fälle nicht zufriedenstellend. Desweiteren ist es doch immer irritierend, wenn man einen Button drückt und nichts passiert.
Aber für genau diesen Fall gibt es im Windows Installer ein ControlEvent namens 'SpawnWaitDialog'. Die Anwendung ist etwas trickreich, da für dieses ControlEvent die Logik der Condition genau verkehrt herum ist. Solange die Condition 'False' ist, wird der angegebene Dialog angezeigt - sobald die Condition auf 'True' wechselt, wird der Dialog ausgeblendet. Also, was brauchts:

1) Einen einfachen Dialog (z.B. 'WaitABit') mit dem Text 'Bitte warten, ich bin am ....', ohne jegliche Buttons
2) Die auszuführende CA ('MyCA'); diese muss erweitert werden um das Setzen eines Properties auf einen definierten Wert, z.B. Propname 'CaIstFertig' auf den Wert 'Y', desweiteren muss die CA asynchron laufen, sonst klemmt's
3) ControlEvents des z.B. 'Next' Buttons des Dialogs, der warten soll, müssen bearbeitet werden:
CODE

Event            Argument         Condition
[CaIstFertig]    {}               1
DoAction         MyCA             1
SpawnWaitDialog  WaitABit         CaIstFertig="Y"
NewDialog        NaechsterDialog  1


Klappt bei mir wunderbar z.B. bei der Suche nach im Netzwerk verfügbaren SQL-Servern.
h.teichert-ott