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

Fertigstellen?


9 replies to this topic

Don

Don
  • Members
  • 14 posts

Posted 14 October 2003 - 09:01

So, hoffentlich bin ich hier jetzt richtig rolleyes.gif

Ich habe die Tage ein Setup fertig gestellt, bis auf ein kleinigkeit funktioniert auch alles:

Im SdOptionsButtons Dialog habe ich den "Weiter-Button" deaktiviert, um den User dazu zu zwingen eine Installationsart auszuwählen, wenn man aber in diesem Fenster auf Abbrechen klickt, erscheint das SdSetupCompleteError Dialogfeld zwar auf dem Bildschirm, der "Fertigstellen-Button" ist jedoch deaktiviert
hab schon am Script rumgebastelt, den "Weiter-Button" aktiviert, deaktiviert aber es zeigt sich keine Änderung, "Fertigstellen" bleibt beim Abbruch deaktiviert.

An jedem anderen Punkt erscheint der Dialog korrekt, also mit aktiviertem "Fertigstellen-Button"

kann mir jemand bei diesem Problem helfen?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 14 October 2003 - 10:02

Wie hast du den Button deaktiviert? Und wie und wo hast du ihn wieder aktiviert? Ich schätze, das musst du im OnCancelling event machen.

Don

Don
  • Members
  • 14 posts

Posted 14 October 2003 - 13:06

Hier der Code ausschnitt, in dem ich den Weiterbutton deaktiviert und wieder aktiviert habe:

Dlg_SdOptionsButtons:
szTitle = "";
szMsg = "";
Disable(NEXTBUTTON);
.
.
.
.
.
nResult = SdOptionsButtons (szTitle, szMsg, listButtons, listDesc);
Enable(NEXTBUTTON);
if (nResult = BACK) goto Dlg_SdAskDestPath;


den fertigstellen Button habe ich nirgends deaktiviert!

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 15 October 2003 - 12:35

Der Fertigstellen Button ist aber ein "Nextbutton" (nur mit etwas anderem Text). Und das Disable gilt global. D.h. Du musst den Button wieder freigeben, bevor der Enddialog angezeigt wird.

Don

Don
  • Members
  • 14 posts

Posted 15 October 2003 - 12:37

ich hab das Setup jetzt nochmal komplett neu erstellt, Dialoge, Script usw - aber in dem einen Fenster ist der "Fertigstellen Button" immer noch deaktiviert - egal ob ich den "Next Button" im Sd_OptionsButtons aktiviere oder deaktiviere... dry.gif
ich finde einfach den Fehler nicht!

gibt es eine Möglichkeit den "Fertigstellen Button" direkt anzusprechen? huh.gif wenn ja, wie?

Don

Don
  • Members
  • 14 posts

Posted 15 October 2003 - 13:01

Momentan sieht mein Script für den Sd_OptionsButtons Dialog folgendermaßen aus:


Dlg_SdOptionsButtons:
szTitle = "";
szMsg = "";
Disable(NEXTBUTTON);
// Create the lists for buttons and descriptions.
listButtons = ListCreate (STRINGLIST);
listDesc = ListCreate (STRINGLIST);

if (listButtons = LIST_NULL) || (listDesc = LIST_NULL) then
// Report the error; then terminate.
MessageBox ("Listen konnten nicht erstellt werden!", INFORMATION);
abort;
endif;

.
. Bilder und Beschreibungen für die Buttons
.

// Display the dialog box.
nResult = SdOptionsButtons (szTitle, szMsg, listButtons, listDesc);

if (nResult = BACK) goto Dlg_SdAskDestPath;

Enable(NEXTBUTTON);

Im normalen Enddialog und bei Abbruch an jeder beliebigen Stelle ist der "Weiter Button" aktiv, außer bei Abbruch im Sd_OptionsButtons. Alle Dialoge sind bei mir auf einer Ebene - ich verwende alles Global, und nicht in Privaten Funktionen. Ist es möglich den Sd_SetupComplete Dialog im Script anzusprechen ohne das er Standardmäßig im Setup angezeigt wird?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 16 October 2003 - 17:11

Du deaktivierst den Next-Button, bevor du den SdOptionsButtons Dialog aufrufst. Wenn der Benutzer dort auf Abbrechen klickt, springt InstallShield direkt in die Abbrechen-Funktion, d.h. es kommt nie an die Stelle im Skript, wo dein Enable steht.

Hast du mal versucht, die Enable Funktion in OnCanceling oder OnAbort (beide unter "Verschiedenes" in der Skript-Combobox) aufzurufen?

Don

Don
  • Members
  • 14 posts

Posted 17 October 2003 - 08:32

Ich hab ins Script die Funktion onAbort eingefügt, Resultat war, dass das Setup nicht mehr über den Splashscreen hinaus kommt.... blink.gif

ich krieg mit dem onAbort Handler schon beim kompilieren 16 Fehler, die Variablen betreffen die ich noch nichtmal in der Funktion habe, die angeblich aber schon definiert sind...

entweder ist mein Script zu diesem Handler nicht vollständig, oder InstallShield hat mit mir ein persönliches Problem... dry.gif

SCRIPT:

function OnAbort()

begin
Dlg_SdSetupCompleteError:
Enable(NEXTBUTTON);
nResult = SdSetupCompleteError ();

end;


FEHLER:
setup.rul(238) : Fehler C8017: 'Enable' : typedef (struct)-Name erwartet
setup.rul(238) : Fehler C8008: '(' : Identifier erwartet
setup.rul(238) : Fehler C8008: '51' : Identifier erwartet
setup.rul(238) : Fehler C8008: ')' : Identifier erwartet
setup.rul(239) : Fehler C8008: 'begin' : Identifier erwartet
setup.rul(240) : Fehler C8008: 'if' : Identifier erwartet
setup.rul(240) : Fehler C8008: '(' : Identifier erwartet
setup.rul(240) : Fehler C8008: '6' : Identifier erwartet
setup.rul(240) : Fehler C8008: '=' : Identifier erwartet
setup.rul(240) : Fehler C8014: 'SprintfBox' : Identifier bereits definiert
setup.rul(240) : Fehler C8010: ',' : Rechte Klammer fehlt
setup.rul(241) : Fehler C8014: 'SdLoadString' : Identifier bereits definiert
setup.rul(242) : Fehler C8014: 'SdLoadString' : Identifier bereits definiert
setup.rul(242) : Fehler C8022: ')' : Komma oder Semikolon erwartet
setup.rul(244) : Fehler C8019: 'endif' : Typdeklaration erwartet
setup.rul(245) : Fehler C8011: 'end' : 'begin' fehlt am Funktionsanfang

Edited by Don, 17 October 2003 - 08:35.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 17 October 2003 - 11:29

Funktioniert bei mir einwandfrei. Nimm doch mal diese Zeile raus:
Dlg_SdSetupCompleteError:
Die hat ja so ohnehin keine Funktion.

Und auch das würde ich weglassen:
nResult = SdSetupCompleteError ();

Also im Endeffekt nur das Enable drin lassen.

Don

Don
  • Members
  • 14 posts

Posted 17 October 2003 - 11:56

ich hab das Problem nun endlich lösen können:

function OnAbort()

STRING szMsg1;
STRING szMsg2;
STRING szTitle;
NUMBER nResult;

begin

Enable(NEXTBUTTON);

Dlg_SdSetupCompleteError:
szTitle = "";
szMsg1 = "";
szMsg2 = "";

nResult = SdSetupCompleteError (szTitle, szMsg1, szMsg2);
end;


Die Zeile mit nResult ist allerdings erforderlich, da das der Befehl zum Anzeigen des Dialogs ist - kein nResult, kein Dialog

Ohne den Ansatz mit dem OnAbort wäre ich vermutlich nie auf einen grünen Zweig gekommen, vielen Dank für ihre Hilfe!


Don