Announcement

Collapse
No announcement yet.

nsdialogs combobox problem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Krasnoff64
    replied
    Hy there, I had the same problem. I have solved it by using messages, such as CB_GETCURSEL & CB_GETLBTEXT.
    Here is a full text:

    code:

    Var hCombo
    Var PrevIdx

    Function OnComboChange
    SendMessage $hCombo ${CB_GETCURSEL} 0 0 $0
    ${If} $PrevIdx == $0
    ${NSD_GetText} $hCombo $2
    ${Else}
    System::Alloc 64
    Pop $1
    SendMessage $hCombo ${CB_GETLBTEXT} $0 $1
    System::Call "*$1(&t32.r2)"
    System::Free $1
    ${EndIf}
    StrCpy $PrevIdx $0
    MessageBox MB_OK $2
    FunctionEnd

    Function Create

    ; ...

    ${NSD_CreateComboBox} 75% 85% 20% 20 ""
    Pop $hCombo
    ${NSD_CB_AddString} $hCombo "x"
    ${NSD_CB_AddString} $hCombo "y"
    SendMessage $hCombo ${CB_GETCURSEL} 0 0 $PrevIdx
    ${NSD_OnChange} $hCombo OnComboChange

    ; ...

    FunctionEnd


    Leave a comment:


  • dougcvc
    replied
    Hey thanks alot for the suggestion.

    Unfortunately i wanted to work some stuff out on that page and display the results on that page (I am filling the combobox with drive letters / directories and want to display the sizes using getsize/drivespace to get of the selected / entered one on that page before continuing.)

    I have looked in to using Winmessages.nsh but cant quite figure it out either. I might just resort to using a droplistbox which seems to work.

    Many thanks !

    Leave a comment:


  • pengyou
    replied
    Use a "leave" function to retrieve the combo box selection
    code:
    Name test
    OutFile test.exe

    RequestExecutionLevel "user"

    !include nsDialogs.nsh
    XPStyle on
    Page custom nsDialogsPage nsDialogsPageLeave
    Page instfiles

    var /global Dialog
    var /global COMBOBOX


    Function nsDialogsPage

    nsDialogs::Create 1018
    Pop $Dialog
    ${If} $Dialog == error
    Abort
    ${EndIf}


    ${NSD_CreateComboBox} 0 30 80% 12u "test"
    pop $COMBOBOX

    ${NSD_CB_AddString} $COMBOBOX A
    ${NSD_CB_AddString} $COMBOBOX B
    ${NSD_CB_AddString} $COMBOBOX C
    ${NSD_CB_SelectString} $COMBOBOX A

    nsDialogs::Show

    FunctionEnd


    Function nsDialogsPageLeave
    ${NSD_GetText} $COMBOBOX $0
    messagebox mb_ok "selection is $0"
    FunctionEnd


    Section ""
    SectionEnd

    Leave a comment:


  • dougcvc
    started a topic nsdialogs combobox problem

    nsdialogs combobox problem

    Hello,

    I am having a problem with a nsdialogs combo box list which seems to behave differently when i type something in to when i click and select an option from the list.

    I add A, B , and C to the list and have ${NSD_OnChange} bring up a message when it is changed. If i type C in to the box the ${NSD_OnChange} messagebox says "C", whereas if i select "C" in the drop down box it still says "A".

    I cant figure out what im doing wrong however.

    Here is some example code..

    code:
    Name test
    OutFile test.exe
    !include nsDialogs.nsh
    XPStyle on
    Page custom nsDialogsPage
    Page instfiles

    var /global Dialog
    var /global COMBOBOX


    Function nsDialogsPage

    nsDialogs::Create 1018
    Pop $Dialog
    ${If} $Dialog == error
    Abort
    ${EndIf}


    ${NSD_CreateComboBox} 0 30 80% 12u "test"
    pop $COMBOBOX

    ${NSD_CB_AddString} $COMBOBOX A
    ${NSD_CB_AddString} $COMBOBOX B
    ${NSD_CB_AddString} $COMBOBOX C
    ${NSD_CB_SelectString} $COMBOBOX A

    ${NSD_OnChange} $COMBOBOX SourceChanged

    nsDialogs::Show

    FunctionEnd


    Function SourceChanged
    ${NSD_GetText} $COMBOBOX $0
    messagebox mb_ok "selection is $0"
    FunctionEnd


    Section ""
    SectionEnd

    Thanks for any help!
Working...
X
😀
🥰
🤢
😎
😡
👍
👎