2017-10-14 2 views
0

Ich wollte ursprünglich fragen, wie man einige der Features, die ich in der Set-Datei arbeiten, tun. Ich habe jetzt 2 Fragen. Tätschelte mich auf den Rücken, da ich alles andere herausgefunden :)NSIS Selections Seite

Ok hier so ist, was würde Ich mag:

Ist es möglich, die Liste größer, so dass keine Scrollen haben? auch Können wir den Titel nur das und keine Checkbox haben? (Sie sind Radio-Tasten und der Titel ist die Gruppierung von ihnen)

Wie könnte ich über das Erstellen der gleichen Sache nur in einer benutzerdefinierten Seite gehen, damit ich die Kontrolle über die Elemente habe? (einschließlich der Maus verschieben über Feature der Komponenten-Seite)

Vielen Dank für die Suche und hoffe, Sie können mir helfen, es auscodieren.

Code: (Und ja, ich kenne die! Included's sind nicht alle im Test erforderlich kaufen meine App tut, also habe ich es einfach) Auch die Überprüfung und ein paar andere Einstellungen sind nicht fertig, ich habe nur ein paar Beispiele zu bekommen Arbeit.)

!include WinVer.nsh 
!include LogicLib.nsh 
!include x64.nsh 
!include FileFunc.nsh 
!include MUI.nsh 
!include WinMessages.nsh 
!include InstallOptions.nsh 
!include Sections.nsh 

!define MUI_COMPONENTSPAGE_TEXT_TOP "Please select the options that best match your setup and preferances." 
!define MUI_COMPONENTSPAGE_TEXT_COMPLIST " " 
!define MUI_PAGE_HEADER_TEXT "Setup Options" 
!define MUI_PAGE_HEADER_SUBTEXT " " 
!define MUI_COMPONENTSPAGE_smallDESC 
!insertmacro MUI_PAGE_COMPONENTS 

!insertmacro MUI_PAGE_INSTFILES 
!insertmacro MUI_PAGE_FINISH 



!insertmacro MUI_LANGUAGE "English" 


SectionGroup /e "!Sets" SetsTitle #Section Should be Radio Buttons 

    Section "Set 1" Set1 
    SectionEnd 

    Section /o "Set 2" Set2 
    SectionEnd 

    Section /o "Skip" SetSkip 
    SectionEnd 

SectionGroupEnd 


SubSection /e "!Setup" SetupTitle #Section Should be Radio Buttons 

    Section "Setup 1" setup1 
    SectionEnd 

    Section /o "Setup 2" setup2 
    SectionEnd 

    Section /o "None" setupNone 
    SectionEnd 

SubSectionEnd 


SubSection /e "!AutoLoad" ALTitle #Section Should be Radio Buttons 

    Section "Yes" ALYes 
    SectionEnd 

    Section /o "No" ALNo 
    SectionEnd 

SubSectionEnd 

SubSection /e "!Disable Feature" DFTitle #Section Should be Check Boxes 

    Section "Feature 1" DAF1 
    SectionEnd 

    Section "Feature 2" DAF2 
    SectionEnd 

SubSectionEnd 

!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN 
!insertmacro MUI_DESCRIPTION_TEXT ${SetsTitle} "Sets Description" 
!insertmacro MUI_DESCRIPTION_TEXT ${Set1} "Set1 Description" 
!insertmacro MUI_DESCRIPTION_TEXT ${Set2} "Set2 Description" 
!insertmacro MUI_DESCRIPTION_TEXT ${SetSkip} "SetNone Description" 
!insertmacro MUI_FUNCTION_DESCRIPTION_END 


Section -InstallSelectedOptions 

${If} ${SectionIsSelected} ${set1} 
    MessageBox MB_OK|MB_USERICON|MB_TOPMOST "set1" 
${endif} 

${If} ${SectionIsSelected} ${set2} 
    MessageBox MB_OK|MB_USERICON|MB_TOPMOST "set2" 
${endif} 


${If} ${SectionIsSelected} ${setskip} 
    MessageBox MB_OK|MB_USERICON|MB_TOPMOST "setnone" 
${endif} 


${If} ${Setup1} == true 

${endif} 


SectionEnd 

Function .onInit 

    StrCpy $1 ${set1} ; Group 1 - Option 1 is selected by default 
    StrCpy $2 ${setup1} ; Group 2 - Option 1 is selected by default 

FunctionEnd 

Function .onSelChange 
    !insertmacro StartRadioButtons $1 
    !insertmacro RadioButton ${set1} 
    !insertmacro RadioButton ${set2} 
    !insertmacro RadioButton ${setskip} 
    !insertmacro EndRadioButtons 

    !insertmacro StartRadioButtons $2 
    !insertmacro RadioButton ${setup1} 
    !insertmacro RadioButton ${setup2} 
    !insertmacro RadioButton ${setupNone} 
    !insertmacro EndRadioButtons 

FunctionEnd 

Antwort

2

Sie können keine Radio-Buttons und Markierungen auf der eingebauten Komponenten Seite kombinieren, aber Sie können Ihre eigene Radio-Button .bmp-Datei mit !define MUI_COMPONENTSPAGE_CHECKBITMAP "myradio.bmp" verwenden.

Sie können die MUI Komponenten Seite ein wenig anpassen, indem MUI_COMPONENTSPAGE_SMALLDESC oder MUI_COMPONENTSPAGE_NODESC definieren, aber wenn Sie benötigen mehr als das Sie haben zu kopieren und ändern „... \ NSIS \ Contrib \ UIs \ modern.exe“ mit Resource Hacker und Wenden Sie diese benutzerdefinierte Benutzeroberfläche mit MUI_UI an.

Das Replizieren der Komponentenseite als eine benutzerdefinierte Seite ist zwar möglich, aber es ist eine Menge Arbeit. NsDialogs hat nicht viel Unterstützung für das TreeView-Steuerelement, so dass Sie ziemlich selbstständig sind, wenn Sie diese Route gehen.