mud_sanc 板


LINE

  這是自製的簡易製作 MiniWindow 模組,弄這個是為了省卻一些參數設定上的 麻煩,如:標題列的寬高估算,關閉鈕的製做等等重複卻常常必須微調的東西,好 專心去弄要顯示的內容,及功能。雖然參數還是有點多,但比重頭做起方便多了。 當然還是很粗糙就是了... 它用三個函數分出三個部份: CreateMiniWin:建立 MiniWindow 的基本框架。基本上只會用到一次。 CreateBU:簡易製作按鈕的外型和文字。如果按鈕很多,就會常常用到,       文字是置中的,左右基本上會等寬,上下就比較沒把握。要用       圖片的話,請自行大編修(其實也不是很大...),但我認為       文字還是比較直觀,圖有時候還是無法意會。 Button_Operation:按鈕的功能。裡面有關閉鈕的功能先寫在裡面,但它是          隱藏而非移除,因為視窗不能移除自己,即使用timer 也不能。這個函數是用MUSHclient的作者定義的函數:          WindowAddHotspot 中,滑鼠行為對應參數的"鼠鍵壓下"          參數。如果要讓按鈕更生動,更像一般按鈕,請自行修          改 CreateBU 裡的 WindowAddHotspot,把沒設的對應參          數全加上名字,一個個額外新增動作函數吧!設法跟本 項一樣。我只要實用就好了...好吧!我承認我不會弄...   寫的格式就像這樣: <script> <![CDATA[ --資料檔,如果必需有的話,請寫在最上 local tablename = {...} --下面就是函數,基本上沒順序問題,整齊好找最重要! --建立視窗的函數 function CreateMiniWin (...) end --建立按鈕的函數 function CreateBU (...) end --按鈕功能的函數,模組裡的關閉按鈕功能己先寫在這裡。 function Button_Operation(flags,hotspot_id) end --按鈕功能的函數2,若想區別各個按鈕的程式碼,就分別去寫。 function Button_Operation2(flags,hotspot_id) end --按鈕功能的函數3,依此類推... function Button_Operation3(flags,hotspot_id) end --觸發、別名或計時器的功能函數 function Universal_Alias (name, line, wildcards) --三個固定的參數名 CreateMiniWin(...) CreateBU (...) 主要內容,如果有資料表,建議寫在同一個<script>標籤裡,這樣可以 用 local 來將用完的資料從記憶體卸載,也能讓別的函數去載入表。但 必須寫在函數的前頭,不然它會找不到表。 name 是 timer trigger 及 alias 的 label,沒設定的話,MUSHclient 會自己生成。 wildcards是一個table表,只有別名和觸發才有(應該啦!),它就是 %1、%2、%3...這些參數的內容,要取出這些內容,使用wildcards[1]、 wildcards[2]、wildcards[3]...順序一模一樣,叫法不一樣而己。 WindowShow (WinID,true) --顯示 Mini 視窗!!這個要最後執行,才能顯示完整內容。 end ]]></script> <aliases> <alias match="^(spn)(t|co|ch|n|r|hh|h)(\S*)$" enabled="y" echo_alias="y" script="Universal_Alias" regexp="y" send_to="12" sequence="100" > <send></send> </alias> </aliases> .類推下去 . .   裡 15 > 3 > 1 > 1 有 MiniWindow 的函數介紹,因為這個資源只有 官方的英文版,必須自行翻譯(多虧有Google),出發點是讓"本人"方便查閱用 的,所以是"不負責任"編撰,自然也不會發文(絕對不是避免洗版和被噓~)。   內容如下,直接複製到 plugin 檔案裡的<script><![CDATA[ ]]></script> 標籤,注意!角色檔的觸發、別名、計時器無法使用 MiniWindow 函數,一定要 寫在 plugin 裡面。 --==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== --如果不需要標題列,將"標題文字"參數設為""即可。 --加外框為選項,需要時設為1,不需要時設為0,不需""。 --立刻顯示也是選項,但依流程,這時顯示也只有空白視窗,其實也不太實用。方法同上。 --預設關閉按鈕也是選項,基本上普遍都會設,所以也把它列入,不過 --它必須有 CreateBU Button_Operation 兩個函數在才能夠發揮作用。方法同上。 --顯示位置是採九宮格,設了這個左,上兩參數就沒什麼用。參數對應位置如下: -- 說明 Lua標記 --0 延展顯示 miniwin.pos_stretch_to_view --1 延展顯示 miniwin.pos_stretch_to_view_with_aspect --2 延展顯示 miniwin.pos_stretch_to_owner --3 延展顯示 miniwin.pos_stretch_to_owner_with_aspect --4 左上 miniwin.pos_top_left --5 中上 miniwin.pos_top_center --6 右上 miniwin.pos_top_right --7 右中 miniwin.pos_center_right --8 右下 miniwin.pos_bottom_right --9 中下 miniwin.pos_bottom_center --10左下 miniwin.pos_bottom_left --11左中 miniwin.pos_center_left --12正中 miniwin.pos_center_all --13瓷磚式排列 miniwin.pos_tile --└─┴───────┴─────────────────────┘ --其它設定內容如下: -- 說明 Lua標記 --1 置底 miniwin.create_underneath --2 絕對位置 miniwin.create_absolute_location --4 透明 miniwin.create_transparent --8 忽略鼠標 miniwin.create_ignore_mouse --16保持現有的熱點miniwin.create_keep_hotspots --└─┴───────┴─────────────────────┘ --需要多種特性時,使用它們加法的合即可。參數2會導致顯示位置參數無效,並採用 --左、上兩個參數的設定。 --[[function CreateMiniWin ( 視窗ID , 左 ,上 ,寬 ,高 , 顯示位置 , 其它設定 , 底色 , 字型,字型大小,字型ID, 標題文字? , 標題列底色 , 標題文字顏色, 加外框? , 立刻顯示? , 預設關閉按鈕?)]] function CreateMiniWin ( WinID , WinL , WinU , WinW , WinH , Location , OtherSet , BackColour, Font , FontSize , FontID , TitleText , TitleBarColour , TitleTextColour , RectOpSet , ShowNow,CrOFF ) --建立視窗 WindowCreate (WinID,WinL, WinU, WinW, WinH, Location, OtherSet, ColourNameToRGB(BackColour)) --載入字型 WindowFont (WinID, FontID, Font, FontSize, false, false, false, false, 1,4) --字型高度 FontH = WindowFontInfo(WinID,FontID,1) --是否要外框 if RectOpSet == 1 then WindowRectOp (WinID, 5, 0, 0, 0, 0, 10, 15) end --是否要標題列 if TitleText ~= "" then WindowRectOp (WinID, 2, 3, 3, WinW-3, FontH+8, ColourNameToRGB(TitleBarColour)) WindowText (WinID,FontID,TitleText, 35,5,0,0, ColourNameToRGB(TitleTextColour), false) end --建立關閉視窗的按鈕 if CrOFF == 1 then CreateBU (WinID,"Button_Operation",'Hideit_'..WinID, WinW-(WindowTextWidth (WinID, FontID,"關 閉")*1.5),3,WinW-3,4, FontID,TitleBarColour,"關 閉", "",TitleTextColour) end --是否是立刻顯示 if ShowNow == 1 then WindowShow (WinID,true) end end --function CreateMiniWin --==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== --[[建立按鈕CreateBU ( 視窗ID , 滑鼠行為函數ID , 熱點ID , 左 , 上 , 右 ,上下間距「不含字高」 , 字型ID , 字型顏色 , 按鈕名稱 , 氣泡提示 , 按鈕顏色 )]] function CreateBU ( winID , funcName , keyID , buL , buU , buR , buD , FONT , FONT_COLOUR , BuName , BuNote , Bu_Colour ) --熱點 WindowAddHotspot(winID,keyID , buL,buU,buR,buU+WindowFontInfo(winID,FONT,1)+buD/2, "", "", funcName, "", "", BuNote, 1, 0) --按鈕顏色 if Bu_Colour ~= nil then WindowRectOp (winID, 2 , buL,buU,buR,buU+WindowFontInfo(winID,FONT,1)+buD/2, ColourNameToRGB(Bu_Colour)) end --Bu_Colour 判斷 --按鈕外框 WindowRectOp (winID, 5 , buL-1,buU,buR,buU+WindowFontInfo(winID,FONT,1)+(buD), 5, 15) --按鈕文字 WindowText (winID, FONT,BuName , buL+(buR-buL-WindowTextWidth (winID, FONT,BuName))/2, buU+buD/2, 0 ,0 , ColourNameToRGB(FONT_COLOUR), false) end --end function CreateBU --==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== --flags為滑鼠點擊行為的辨認值,方便的有四種: --flags : 16 單擊滑鼠左鍵 --flags : 32 單擊滑鼠右鍵 --flags : 18 Ctrl + 滑鼠左鍵 --flags : 34 Ctrl + 滑鼠右鍵 --完整的請去看 --hotstpot_id : 按鈕的ID。如果要簡單設定,直接用別名的名稱當ID。 -- 用按鈕來執行別名是比較容易的設定方式。 function Button_Operation (flags , hotspot_id) if string.match(hotspot_id , 'Hideit_') then hotspot_id = string.match(hotspot_id , 'Hideit_(.+)') WindowShow (hotspot_id , true) end end -- function Button_Operation --==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.196.45
1F:推 justinj :推 11/23 08:09
2F:推 elvrael :推,這東西好用 11/23 16:03
3F:推 Hamano :推~ 11/30 23:19







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP