作者rexx ()
站内EzHotKey
标题Re: [AHK-] mile <-> KM 小小转换
时间Wed Jul 23 18:12:56 2008
刚刚无聊也写了一个
当做gui的简单范例XD
--8<------
#^C::
;如果gui已经存在就关闭
IfWinExist, ahk_class AutoHotkeyGUI
IfWinExist, a.ahk
{
Gosub, GuiClose
return
}
;否则建立gui
Gui, Add, Edit, x010 y11 w50 h21 vkm gkcal Number
;Edit是可以输入的文字框
;x y w h 为座标以及宽高
;v为variable,取名为km,用来储存这个control的内容
;g为gosub,取名为kcal,这个control内容改变时会呼叫
;Number表示只能输入数字
Gui, Add, Text, x065 y14 w30 h14, KM =
;Text是文字标签
Gui, Add, Edit, x100 y11 w50 h21 vmi gmcal Number
Gui, Add, Text, x155 y14 w30 h14, Mile
;改变一些视窗外观(去标题、加框)
Gui, -Caption +Border
;显示gui
Gui, Show, h42 w185
return
kcal:
;确定目前的focus是在km这边,表示是人输入的,才去作换算
ControlGetFocus, focus
if focus = Edit1
{
;取得新的资料(改变後的km)
Gui, Submit, NoHide
mi:=km/1.609344
;换算後更新mile的内容
GuiControl,, mi, %mi%
}
return
mcal:
ControlGetFocus, focus
if focus = Edit2
{
Gui, Submit, NoHide
km:=mi*1.609344
GuiControl,, km, %km%
}
return
;关闭gui
GuiClose:
Gui, Destroy
GuiEscape:
Gui, Destroy
--8<------
※ 引述《sodeass (基米拉)》之铭言:
: 小弟刚接触没很久
: 不过看棒球时,常无法把mile(哩)转成我们习惯的公里(KM), 所以拿AHK试看看
: 顺便把MessageBox, String处理, 字串<->数值, 判断式 都一起练一下
: Ctrl + M : 出现对话窗, 可以填入 m100 或 k100 或1000
: m100 : 把100 mile 转为 公里
: k100 : 把100 KM 转为 mile
: 100 : 不加字首,就直接把数字转为 KM
: ----><---------
: ^m::
: InputBox, input_string, Mile <-> KM Convert, e.g.m100/k100/100,
: StringMid, input_unit, input_string, 1, 1
: StringMid, input_value, input_string, 2,
: if input_unit = m
: {
: ;字首为m,则由"哩"转成"公里"
: output := input_value*1.61
: }
: else if input_unit = k
: {
: ;字首为k, 则由"公里"转为"哩"
: output := input_value*0.621
: }
: else
: {
: ;没有加字首的话,直接"哩"转成"公里"
: StringMid, input, input_string, 1,
: output := input*1.61
: }
: msgbox %output%
: return
: -----><--------------------------------------------
: 其中StringMid是AHK内部function, 用来抓取任意字串里的特定单字或字串
: StringMid (S1, S2, S3, S4)
: S1: 变数名, StringMid抓出来的字串要给哪一个变数
: S2: 要处理的字串
: S3: 要S2字串里的第几个字(空白也算一个字喔)
: S4: (可以不加), 从S3位置开始要抓多少个"字母"
: 来个例子吧
: SrtingMid (var, "AHK is good", 2)
: 则var就是H
: StringMid (var, "AHK is good", 5, 4)
: 则var就是is g (有空格喔)
: 也就是从第1个字後,抓2个字母出来
: 小小心得, 和大家分享
: (会不会太简单了 >< )
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.72.42
1F:推 sodeass:这才是真正GUI版 XD 小弟又学到东西了 推~ 07/24 11:28