Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
Keywords: AskItemlist Open Dialog Relative Parent Window
#DefineSubRoutine AskItemCallbackProc(AskItem_Handle,AskItem_Message,AskItem_Name,AskItem_EventInfo,AskItem_ChangeInfo) ON_EQUAL = @TRUE Switch AskItem_Message Case 0; MSG_INIT DialogProcOptions(AskItem_Handle,1,1000) ;--MSG_TIMER DialogProcOptions(AskItem_Handle,2,@TRUE) ;--MSG_BUTTONPUSHED DialogProcOptions(AskItem_Handle,7,@TRUE) ;--MSG_ITEMSELECT If bSelect DialogControlState(AskItem_Handle, "PushButton_Cancel", 3, 1) EndIf If defaultvalue != '' DialogControlSet(AskItem_Handle, "ItemList", 6, StrReplace(defaultvalue, delimiter, @TAB)) EndIf Return(-1) Case 2 ;--MSG_BUTTONPUSHED Switch ON_EQUAL Case AskItem_Name == "PushButton_OK" ; OK If bSelect && DialogControlGet(AskItem_Handle, "ItemList", 6) == '' Then Return -2 Return(-1) Case AskItem_Name == "PushButton_Cancel" ; Cancel Return(-1) EndSwitch Return(-1) Case 7 ;--MSG_ITEMSELECT Return(-1) EndSwitch Return(-1) #EndSubRoutine #DefineFunction DlgAskItemList(parentcaption, dx, dy, title, itemList, defaultvalue, delimiter, bSorted, bSingle, bSelect) ; ********************************************************* ; * DlgAskItemList ; * (i) parentcaption: valid caption of open window | '' ; * (i) dx relative to parentwindow | screen ; * (i) dy relative to parentwindow | screen ; * (i) title of dialog ; * (i) itemlist ; * (i) defaultvalue(s) ; * (i) delimiter for intemlist and defaultvalue ; * (i) bSorted @FALSE|@TRUE ; * (i) bSingle @FALSE|@TRUE ; * (i) bSelect @FALSE|@TRUE ; * ; * (0) list of selected values ; * ; * 2011-05-22 Lars M. Doornbos ; ********************************************************* pset = IntControl(33,!bSingle,0,0,0) itemlist = StrReplace(itemlist, delimiter, @TAB) If bSorted Then itemlist = ItemSort(itemlist, @TAB) ;--------------------------------------------------------------------------------------------------------- AskItemFormat=`WWWDLGED,6.2` AskItemCaption=`DlgAskItemList` AskItemX=-01 AskItemY=-01 AskItemWidth=176 AskItemHeight=146 AskItemNumControls=003 AskItemProcedure=`AskItemCallbackProc` AskItemFont=`DEFAULT` AskItemTextColor=`DEFAULT` AskItemBackground=`DEFAULT,DEFAULT` AskItemConfig=3 AskItem001=`127,125,036,012,PUSHBUTTON,"PushButton_OK",DEFAULT,"OK",2,10,32,DEFAULT,DEFAULT,DEFAULT` AskItem002=`089,125,036,012,PUSHBUTTON,"PushButton_Cancel",DEFAULT,"Cancel",1,20,DEFAULT,DEFAULT,DEFAULT,DEFAULT` AskItem003=`009,005,154,114,ITEMBOX,"ItemList",ItemList,DEFAULT,DEFAULT,30,DEFAULT,DEFAULT,DEFAULT,DEFAULT` AskItemButtonPushed=Dialog("AskItem",0) ; WinBatch will not display this dialog. ;--------------------------------------------------------------------------------------------------------- AskItemCaption=title Xdlg = 0 Ydlg = 0 If ParentCaption != '' ErrorMode(@OFF) LastError() wp = WinPosition(ParentCaption) ErrorMode(@CANCEL) If !LastError() Xdlg = ItemExtract(1,wp,',')*(WinMetrics(0)/WinMetrics(-6))/1000 Ydlg = ItemExtract(2,wp,',')*(WinMetrics(1)/WinMetrics(-5))/1000 EndIf EndIf AskItemX = Xdlg + dx AskItemY = Ydlg + dy AskItemButtonPushed=Dialog("AskItem",1) ; WinBatch will not display this dialog. If AskItemButtonPushed == 1 Then itemlist = '' ;--canceled IntControl(33,pset,0,0,0) Return StrReplace(itemlist,@TAB,';') #EndFunction list = 'a;b;c;d;k;l;e;f' rtv = DlgAskItemList('WinBatch Studio',50,10, 'select one or more characters..', list, 'a;f;k', ';', 1, 0, 0) Pause('',rtv)
Article ID: W17753
Filename: Open Dialog Relative to Another Window.txt
File Created: 2011:05:23:09:19:38
Last Updated: 2011:05:23:09:19:38