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

Disable(Nextbutton) in Custom Dialog


4 replies to this topic

Elmar

Elmar
  • Members
  • 11 posts

Posted 22 October 2003 - 15:48

Ich habe ein Problem mit dem Next Button in einem Custom Dialog.
Mit dem Befehl Disable(NEXTBUTTON) kann ich bewirken dass in einem Standarddialog der Nextbutton grau angezeigt wird. Leider bekomme ich dass bei meinem selbsterstellten Dialog nicht hin. Zwar habe ich die Möglichkeit über ein Handel den Button ganz zu verstecken,
aber das sieht nicht sehr professionell aus. Weis jemand wie ich den Disable Befehl auch auf eigene Controlls anwenden kann?

Besten Dank
Elmar


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 22 October 2003 - 17:04

Hast du darauf geachtet, dass die Control ID für den Button die gleiche ist wie bei den Standard-Dialogen?

Elmar

Elmar
  • Members
  • 11 posts

Posted 23 October 2003 - 07:59

Ich benutze die ID 1 für den Buttoncontrol. Ich weis nicht ob es was ausmacht aber den Namen habe ich auf ControlId_1 gesetzt. Wenn ich mir die SD Controls ansehe, so ist der NEXT Button genau so eingetragen. Leider funktioniert
Disable(NEXTBUTTON) nicht bei meinem Custom Dialog.

bergermi

bergermi
  • Members
  • 34 posts

Posted 04 August 2004 - 12:04

Hatte das selbe Problem
Auf der Installshield Knowledgebase ist das mit einem COM Objekt gelöst.
Ich hab zwar keine Ahnung wie das wirklich funktioniert aber es klappt.

Installshield Info Q101516
biggrin.gif



Michi

bergermi

bergermi
  • Members
  • 34 posts

Posted 04 August 2004 - 13:38

unsure.gif
Sorry die Nachricht oben war ein Blödsinn !
Hier ist die richtige Lösung:

Wurde mit dem Dialog 12018 gemacht

CODE

#define RES_DIALOG_ID   12018
#define RES_FIELD_1       301 // Kennziffer des Feldes 1
#define RES_FIELD_2       302 // Kennziffer des Feldes 2
[..hier gibt es noch andere]
[..funktion&Variablen..]

szDialogName = <DIALOGNAME EINGEBEN>;
nResult = EzDefineDialog ( szDialogName,"","",RES_DIALOG_ID);

bDone = FALSE;

repeat  
nCmdValue = WaitOnDialog (szDialogName);
CtrlGetText ( szDialogName , RES_FIELD_1 , svUsername );
CtrlGetText ( szDialogName , RES_FIELD_2 , svPasswort );
if (StrLengthChars ( svUsername ) > 0) && (StrLengthChars ( svPasswort )  > 0) then
 _WinSubEnableControl (hwndDlg, SD_PBUT_CONTINUE, ENABLE);
endif;

 switch (nCmdValue)
  case DLG_CLOSE:
   Do (EXIT);
  case DLG_ERR:
   MessageBox("Dialogfeld kann nicht angezeigt werden",SEVERE);
   abort;
  case DLG_INIT:
     hwndDlg = CmdGetHwndDlg (szDialogName);
     _WinSubEnableControl (hwndDlg, SD_PBUT_CONTINUE, DISABLE);
     nresult = Disable(RES_PBUT_NEXT);
   SetWindowText (hwndDlg,"Text Dialog");
   CtrlSetText (szDialogName,RES_STA_MSG_ABOVE,"Text Inhalt");
   CtrlSetText (szDialogName,719,"Benutzer");
   CtrlSetText (szDialogName,720,"Passwort");
   
   
  case RES_PBUT_CANCEL:
   Enable (RES_PBUT_NEXT);
   Do (EXIT);
  case RES_PBUT_NEXT:
      bDone = TRUE;
      case RES_PBUT_BACK:
       bDone = TRUE;
       
     endswitch;
   
until bDone;


EndDialog (szDialogName);

ReleaseDialog (szDialogName);