Dialog with Two Listboxes and Buttons to Move Items Between Listboxes
Keywords: dialog two listboxes move copy
; -- Generate some dummy data to display ;LeftList = "Alpha|Bravo|Charlie|Delta|Echo|Foxtrot|Golf|Hotel|India|Juliet" ;LeftList = StrReplace(LeftList,"|",@TAB) LeftList = FileItemize("c:\temp\test\*.*") ;RightList = "Kilo|Lima|Mike|November|Oscar|Papa|Quebec|Romeo|Sierra|Tango" ;RightList = StrReplace(RightList,"|",@TAB) RightList = FileItemize("c:\temp\*.*") ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ; Show the user the lists ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IntControl (33, 0, 0, 0, 0) ; Single Selection in dialog boxes. IntControl (49, 0, 0, 0, 0) ; No system menus. IntControl (52, 0, 0, 0, 0) ; Use system font IntControl (28, 1, 0, 0, 0) ; Fixed pitch font in list boxes While @TRUE LeftPick = LeftList RightPick = RightList SplitFormFormat=`WWWDLGED,5.0` SplitFormCaption=`Example Program` SplitFormX=69 SplitFormY=59 SplitFormWidth=222 SplitFormHeight=150 SplitFormNumControls=7 SplitForm01=`3,1,64,DEFAULT,STATICTEXT,DEFAULT,"Server A"` SplitForm02=`107,1,72,DEFAULT,STATICTEXT,DEFAULT,"Server B"` SplitForm03=`2,9,102,130,ITEMBOX,LeftPick,DEFAULT` SplitForm04=`106,9,110,130,ITEMBOX,RightPick,DEFAULT` SplitForm05=`74,134,30,DEFAULT,PUSHBUTTON,DEFAULT,"--->",11 SplitForm06=`108,134,30,DEFAULT,PUSHBUTTON,DEFAULT,"<---",12 SplitForm07=`186,134,30,DEFAULT,PUSHBUTTON,DEFAULT,"Exit",13 Button=Dialog("SplitForm") if Button == 11 then Gosub MoveRight if Button == 12 then Gosub MoveLeft if Button == 13 then Break ListA=StrReplace(LeftList,@tab,@crlf) handle=FileOpen("C:\temp\LeftList.txt", "WRITE") FileWrite(handle,ListA) FileClose(handle) ListB=StrReplace(RightList,@tab,@crlf) handle=FileOpen("C:\temp\RightList.txt", "WRITE") FileWrite(handle,ListB) FileClose(handle) endwhile Return :MoveLeft if RightPick == "" Message ("No Selection","You must select an item to move.") return endif X = ItemLocate(RightPick,RightList,@TAB) RightList = ItemRemove(X,RightList,@TAB) LeftList = ItemInsert(RightPick,-1,LeftList,@TAB) LeftList = ItemSort(LeftList,@TAB) return :MoveRight if LeftPick == "" Message ("No Selection","You must select an item to move.") return endif X = ItemLocate(LeftPick,LeftList,@TAB) LeftList = ItemRemove(X,LeftList,@TAB) RightList = ItemInsert(LeftPick,-1,RightList,@TAB) RightList = ItemSort(RightList,@TAB) return