注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

chunwaihome 的博客

 
 
 

日志

 
 

Input Dialog  

2009-10-26 22:00:34|  分类: PowerPro |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

之前在Do command 文章中介紹了用手動的方式設立變數如ppwork = "c:\ppwork.txt",另外在Function文章中介紹了powerpro內置的變數例如date、time、wallpaper等等,而今次將紹介另一建立變數的方法Input Dialog,它建立變數的方法是在窗口中輸入所需變數值。

而Input Dialog包括了很多不同的方法,如下:

Prompting for Yes/No/Cancel


格式為:*Exec Prompt Parameter

例子:

Command *Exec
Action Prompt
Parameter 14 Any text

設定Flag 14來儲存你所選取的值,用win.debug(pproflag 14)得取所選項目,1為選yes,0為選no。

Command *Exec
Action Prompt
Parameter myvar1 Any text

執行命令後用win.debug(myvar1)顯示選取的結果。0為No,1為Yes,2為Cancel

pickfile


Pickfile包含了三個部分title(標題)、List Box(底下最大的窗口)、Edit Box(你可以輸入文字的欄)
格式:s = pickfile(paths,title)

例子:M:\Picture包含了五個圖像檔案241.jpg,251.jpg,261.jpg,271.jpg,281.jpg和291.jpg。

執行以下命令pickfile(?"m:\Picture\281.jpg","viewpicture"),彈如圖下的窗口

Input Dialog - Y偉 - chunwaihome 的博客

在此前你可能己經急不及待地双擊那281.jpg圖片檔了,但結果可能讓你失望,因為什麼也看不到。這不是圖片的問題,而需要運用do command,將命令改為do(pickfile(?"m:\Picture\281.jpg","viewpicture")),執行命令後該圖檔就可以被正確顯示了。

那到底有沒有方法可以在List Box中顯示M:\Picture裏的5個圖檔呢?

答案是用File外掛插件的Listfiles命令

do(File.listfiles("pickfile(?"m:\Picture\",1),"viewpicture"))

此時你在窗中有三個不同點擊方式

  1. 點擊Cancel按鈕,不進行任何操作
  2. 双擊在窗口中的任何圖檔
  3. 高亮圖檔然後點擊OK按鈕

 如果選擇一的話Flag將會等於0,變數_pickedline_的值亦等於0。選擇2或3的話變數_pickedline_的值就等於你選檔的位置,如果選第一行檔案的話,_pickedline_就等於1,如果選第二行檔案的話,_pickedline_就等於2如此類推。

註:_pickedline_變數是Powerpro默認提供的Global Variable(表示這個變數只有關閉Powerpro後它的值才會消失)

 pickstring(lines,title)


Pickstring和pickfile很相似,兩者的不同之處是pickstring的參數自定變數或powerpro變數(function)。

  • 自定變數

如用Literal變數,留意文字需要用双引號括住例如

pickstring("alpha\rbeta\rgamma\rdelta","greek to me")

Input Dialog - Y偉 - chunwaihome 的博客

  • Function

例子1:

pickstring(allglobals,"pick a global variable")

顯示powerpro的所有Global Variable,留意allglobals不用双引號括住。

例子2:

pickstring(alldesknames,"選擇虛擬桌面")

在listbox會顯示所有虛擬桌面的名字,選擇其中一個作為變數。

例子3:

pickstring(file.readall("c:/store.txt"),"choose a quotation")

Listbox將會以行的方式顯示store.txt內容和pickfile一樣你可以選擇Canel或双擊所選檔案,如果點擊cancel的話Flag將會等於0,變數_pickedline_的值亦等於0。双擊所選檔案的話變數_pickedline_的值就等於1,2,3,4.........。

選擇多個變數:

你可以用pickstring選擇多個變數,方法是在標題後加1,而在Edit box canel按鈕旁的文字將會由pick single item 變為pick multiple item,格式為

s= pickstring(lines,title,1)

提示:

Pickstring顯示行數的方式是根據英文字母排列的,如想用回原來的排列方式,方法是在標題後加2,格式為

s= pickstring(lines,title,2)

如想選擇多個變數又關閉英文字母排列方式,方法是在標題後加3,格式為

s= pickstring(lines,title,3)

  •  設定Input Dialog的位置、尺寸、置頂項目

你可以改變Input Dialog的位置、尺寸、置頂項目,格式為

setnextdialogpos(left,top,width,height,topmost)

如在括號中用""值的話,將會用回原來的值,topmost參數為top的話,Input Dialog將會被頂置,而setnextdialogpos命令可以放在腳本中的任何位置。

 

想了解關於其他的Input Dialog窗口按此

在命令前加上n ,s和b變數,它們會得出結果分別是

n =              結果以文字型式出現

s=               結果以數字型式出現

b=               結果以1或0的型式出現

  • 如何設定Input Dialog的位置、尺寸、置頂項目

您可以改變inputdialog, pickstring, pickline, inputdefault, input(title), inputcancel 的位置、尺寸、是否置頂等。

方法是在上面列出的命令前(一定要加在前面) 加入以下的命令

setnextdialogpos(left,top,width,height,topmost)

需要留意的是此命令必須包括五個參數,如果括號中參數值是""的話,它表示用回默認值,topmost參數為top的話,表示窗口將會被頂置。

s = Filemenu


用菜單顯示文字檔案裏每行內容格式為:

s = filemenu(filespec) 

例如

filemenu(?"C:\pornrank.txt"),它將會彈一菜單顯示pornrank.txt每一行的內容,但如要執行每行的命令。需將格式改為do(filemenu(?"C:\pornrank.txt"))

menu.showfile(?"C:\pornrank.txt")

  • 複製檔案行數的文字

命令keys {fast} {filemenu "C:\pornrank.txt"}             留意"C:\pornrank.txt"前面不需加上?

能夠複製顯示菜單的內容,而Powerpro默認的傳送keys的方式是{slow},但經本人測試如用{slow}方式傳送方式的話,是不能完整複製整行文字的。想了解更多*keys命令按此

如還是不行的話,網上也提議了其他方法如下:

  1. 用win外掛插件和嘗試加上{sinp}參數

win.sendkeys("{sinp}{to *Notepad}{filemenu "++?Zc:\filename.textZ++"}")

    2. 在Configure -> Advanced Setup -> Limits -> Delay in milliseconds for fist and subsequent sent keys form *keys方框嘗試改變延遲的時間

 

Inputtext、Input("title")和InputCacel("title")三者都是在彈出窗口中輸入文字作為變數,而它們的不同之處如下:

inputtext                


           

必須將它定義方法是在inputtext前加上變數,它才能被成功執行讓你輸入所需文字,例如s= inputtext

註:Inputtext不能設立窗口標題的

input(title)    


                     

和inputtext一樣。但input(title)可以限制輸入文字的字數,方法是在title前加上=n,n表示限制的字數,例如

input("=15Enter up to 15 chars")

當你在窗口中按下cancel按鈕的話,它的值是將是""。

inputcancel(title)


       

和input(title)完全一樣。除了當你點擊cancel按鈕的話,它會Cancel(離開)正在運行的腳本,因此Inputcancel的名稱亦由此而來。

n = InputColor


需要首先將它定義,它才會彈窗口讓你選擇所需顏色例如

s = inputcolor

Input Dialog - Y偉 - chunwaihome 的博客

選取上圖的顏色得出結果為16744703

想了解更多關於顏色的原理和相關知識按此

n = InputDate / InputDatetime


inputdate           顯示Calendar Calculator Dialog輸入你所需日期結果為yymmdd

Input Dialog - Y偉 - chunwaihome 的博客

inputdatetime     顯示Calendar Calculator Dialog輸入你所需日期和時間結果為yymmddhhmmss

Input Dialog - Y偉 - chunwaihome 的博客

s = inputdefault("default","title")


Dafault的值將會是在Edit box所顯示的文字,title將是窗口標題,你可以限制輸入文字的數目,方法是在title前加上=n,n為限制文字的數目。你亦可以放auto complete作為第三參數,它的作用是完成自動輸入的功能。

Inputdialog


語法:[b=] inputdialog("var1=title1","var2=title2",........."dialogtitle")

Inputdialog最多支援六個Edit boxes,check boxescombo boxes

Input Dialog也有幾種不同的顯示方式

  1. 如果您想輸入的文字以*表示讓別人不知道您所輸入的什麼文字

方法是用==代替=,比如

inputdialog("var1==title1","dialogtitle")

 Input Dialog(三) - Y偉 - chunwaihome 的博客

     2.  以check box的方式顯示

如果您想用Check Box代替Edit Box,方法是在Title(標題)後加上兩個問號,比如

inputdialog("var1==title1??,"dialogtitle")

Input Dialog(三) - Y偉 - chunwaihome 的博客

    3.   以combo box的方式顯示用

如果您想用Combo Box代替Edit Box,方法是在Title(標題)後加上兩個問號,再用|加上各項目,比如

inputdialog("var1=title1??item1|item2|third item","dialogtitle")

Input Dialog(三) - Y偉 - chunwaihome 的博客

    4.      為了隱藏FIle和Folder按鈕選項在變數前加上~符號,比如

inputdialog("~x1 = enter no file","One Variable")

 inputfolder


s = inputfolder 顯示Folder browse dialog 如圖

Input Dialog(三) - Y偉 - chunwaihome 的博客

Inputpath


s = inputpath 顯示File Browse dialog如圖

Input Dialog(三) - Y偉 - chunwaihome 的博客

 

Inputsaveaspath


s = inputsaveaspath(path) 

顯示"另存新檔"窗口例如s = inputsaveaspath("C:/windows")

但窗口所顯示的路徑"我的文件"不是c:windows

inputpathmulti


顯示File browse dialog選取多個檔案,例如你在C:windows選了a.txt,b.txt和c.txt

結果第一行是C:windows,第二行是a.tx,t第三行是b.txt ,第四行是c.txt

C:windows

a.txt

b.txt

c.txt

  评论这张
 
阅读(401)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017