Archive: Serial Number Registration UI


Serial Number Registration UI
Note: New to NSIS, but experienced in InstallShield and WiseScripting...

I wanted to know if someone could point me to an example of linked edit text boxes. The idea is to have 4 edit boxes where the user enters 6 characters/numbers in each box. I can get this to work, but a feature that's unsupported by Wise and InstallShield (AFAIK) is autoadvance and autobackspace between fields. (I explain by example:)

Serial Number: 888EDI-328FED-2389AS-89FEJI

|_____| - |_____| - |_____| - |_____|

we want four edit boxes where the user can type continually and it'll auto-tab from field to field... this is easy enough to implement in other systems, but I'm trying to discern if NSIS can easily handle backspacing across multiple fields. (i.e. user types in full serial and notices a typo in field #2... hits backspace to delete back through field #4 and #3 to get to field #2)

Like I said, I'm relatively new to NSIS and a clear solution isn't jumping out at me...

Thanks,
-EG


The InstallOptions plug-in has a NOTIFY feature that you can use to check the field and take actions when a key is pressed.


How does NOTIFY let me know when the user hits backspace in an empty field?? And how to I tie in the callbacks... still new at this game...

Thx,
-TheDrizzle


If someone could point me towards a sample script or a page in the docs, it would really be helpful... I'm trying to parse the users input as they type it in... Any NSIS developers ever consider creating a HEX_ONLY flag on text input... anyone?? anyone?? *crickets* damn...


hmm, i'm currently trying to create an example-script for serial-#.
but the auto-tab function is still not very easy.
could someone help me how to get the name/id/handle or something else to identify the component calling the notify-event?
maybe getting the current selected component at the leave-function (called by notify).


The leave function is not called after a text field changes, notify flag or not.

You will have to modify InstallOptions.