Wilson WindowWare Tech Support

WinBatch WinBatch+Compiler WebBatch
Home | Tech Database | Tech BBS | White Papers | Purchase


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