inputselect()

Discuss and share scripts and script files...
TheQwerty
Posts: 4373
Joined: 03 Aug 2007 22:30

Re: inputselect()

Post by TheQwerty »

admin wrote:No, you are dreaming. :)
While that whole grouping format may be high hopes, it would be nice if it were possible to insert separators into the list.

For instance:

Code: Select all

text( inputselect("Select Destination".<crlf>."Choose drive:", "C:|D:|E:|-|\\server1|\\server2"));
Instead of a single '-' that could be expanded to a full on separator the width of the list and hopefully it would be possible to prevent it from being selected. Thus allowing us to give it the appearance of groups.

Stefan
Posts: 1360
Joined: 18 Nov 2008 21:47
Location: Europe

Re: inputselect()

Post by Stefan »

v9.50.0103 (i didn't check this with earlier version)

It seams after adding an another parameter the parser now split one para too less:

inputselect(header, listdata, [separator=|], [style=1], [cancel], [width=600], [height=400], [windowcaption])

Try this:

::text inputselect("Select Drives", "C:|+D:|E:", , 3, "-", 400, 200, "My Caption");
You will get '200' as caption

::text inputselect("Select Drives", "C:|+D:|E:", , 3, "-", , , "My Caption");
You will get no caption at all

::text inputselect("Select Drives", "C:|+D:|E:", , 3, "-", 200, "My Caption");
You will get the wanted caption





2.) In the help:
Use checkboxes and icons (1 OR 2 = 3):
should read
Use checkboxes and icons (1 AND 2 = 3):
isn't it?





3. BTW) I don't know how to implement
but for the case i use longer listdata tokens (i mean the items between the | pipe-signs)
it would be nice to get just the selected token number(s) returned
instead of the whole long token itself.
Maybe as Style = 4 ?
So i can check If (return <= 3) {then} and such.
But i guess this is from lower interest for you :wink:

EDIT:
ok, so i see now i can do it like this:

Code: Select all

$RETURN=0;

   $Choice1 = "No1 with an long describtion";
   $Choice2 = "Second entry: do nothing, just end";
   $Choice3 = "Third possibility";
   $Choice4 = "Just make coffee";
   $Choice5 = "And there was sound!...";
   $Choice6 = "Ask me again..."; //will only work if this script is an file

   ////inputselect(header, listdata, [separa=|], [style=1], [cancel], [width], [height], [caption])
   $ASK = inputselect("Chose one of this choices:", 
          $Choice1|$Choice2|$Choice3|$Choice4|$Choice5|$Choice6 , ,  , "Canceled", 200, 250, "Choices Test Dialog");

      If ($ASK==$Choice1){msg "Your choice is: No1"; $RETURN=1;}
      If ($ASK==$Choice2){; $RETURN=2;}
      If ($ASK==$Choice3){msg "OK, OK, choice number 3."; $RETURN=3;}
      If ($ASK==$Choice4){makecoffee; $RETURN=4;}
      If ($ASK==$Choice5){ while($loop<3){   beep; beep 1000, 200;beep 1200, 400;     incr $loop;    wait 500; }  $RETURN=5; }
      If ($ASK==$Choice6){ setting "AllowRecursion"; self $ScriptFile, file; Load $ScriptFile, Store; break; $RETURN=6;}
      If ($ASK=="Canceled"){ msg "Canceld by user"; $RETURN=7;}

If ($RETURN < 3){ msg "It was one of the first two choices."}
If ($RETURN==4){ //make more coffee }
/EDIT

.
Last edited by Stefan on 28 Sep 2010 23:47, edited 1 time in total.

admin
Site Admin
Posts: 64847
Joined: 22 May 2004 16:48
Location: Win8.1, Win10, Win11, all @100%
Contact:

Re: inputselect()

Post by admin »

1) yes, indeed, wow! Fixed.

2) no, these are binary operations. 1 OR 2 = 3 is correct. 1 AND 2 = 0.

Post Reply