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
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.
Disable(Nextbutton) in Custom Dialog
Started by
Elmar
, Oct 22 2003 15:48
4 replies to this topic
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?
Stefan Krüger
InstallSite.org twitter facebook
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.
Disable(NEXTBUTTON) nicht bei meinem Custom Dialog.
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
Michi
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
Michi
Posted 04 August 2004 - 13:38
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); |