三个有关上下限问题的控件,
它们也是主要控件的组成部分,分别为:
SpinGadget() 数控编辑框
TrackBarGadget() 调节块控件
ProgressBarGadget() 进度条控件
首先,我们开始来认识一下SpinGadget(),
之所以将SpinGadget()翻译成"数控编辑框",并非从英转汉的角度来直译,
而是从其功能入手,可能我翻译得不够好,请大家指点指点. 语 法: [返回值=] SpinGadget(<#控件编号>, <x>, <y>, <宽>, <高>,<下限>,<上限> [,标志])
描述1: 在当前的GadgetList中构建一个数控编辑框.
如果参数<#控件编号>使用#PB_Any,[返回值]为新控件的编号.
EventGadget()函数将返回的编号给<#控件编号>.
描述2: [标志]总是可选的,可以为下列常量之一:
#PB_Spin_ReadOnly : 这个文本框控件是不可编辑的,显示数值文本只能通过箭头来改变.
#PB_Spin_Numeric : 本控件拥有的数值文本是可行变量,因此不需要调用SetGadgetText()函数
描述3: 你可以用GadgetToolTip()为按键添加一个"小帮助"
描述4: 以下函数可用于改变控件.
GetGadgetState(): 获得当前的控件的数值,
SetGadgetState(): 设置控件的数值,为了更新显示必须使用SetGadgetText()
GetGadgetText(): 获取控件的文本内容.
SetGadgetText(): 设置控件的文本内容
GetGadgetAttribute(): 具有下列属性之一:
#PB_Spin_Minimum : 返回下限值
#PB_Spin_Maximum : 返回上限值
SetGadgetAttribute(): 具有下列属性之一:
#PB_Spin_Minimum : 设置下限值
#PB_Spin_Maximum : 设置上限值
描述5: 这个控件支持EventType()函数,允许以下事件:
#PB_EventType_Change: 在编辑区的文本被用户修改
1: 在"向上"按钮被按下.
-1: 在"向下"按钮被按下.
描述6: 这个控件支持SetGadgetColor()和GetGadgetColor()函数,允许以下的<着色类型>
#PB_Gadget_FrontColor : 文本色
#PB_Gadget_BackColor : 背景色
例子:
hwnd = OpenWindow(0,0,0,200,150,"数控编辑框 - 迷路制作",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
If CreateGadgetList(hwnd)
SpinGadget (0, 50, 50, 100, 25, 0, 30)
SetGadgetState (0, 5) : SetGadgetText(0, "5") ;初始化并设置显示
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
If EventGadget() = 0
SetGadgetText(0,Str(GetGadgetState(0))) ;更新显示
EndIf
EndIf
Until Event=#PB_Event_CloseWindow
EndIf
这个控件在设备界面或设置中可以用得到:
TrackBarGadget() 调节块控件
语 法: [返回值=] TrackBarGadget(<#控件编号>, <x>, <y>, <宽>, <高>,<下限>,<上限> [,标志])
描述1: 在当前的GadgetList中构建一个调节块控件.
如果参数<#控件编号>使用#PB_Any,[返回值]为新控件的编号.
EventGadget()函数将返回的编号给<#控件编号>.
描述2: 你可以选择一个数值的滑动范围,如多媒体播放器的播放进度条.
上下限的范围为0至10000.
描述3: [标志]总是可选的,可以为下列常量之一:
#PB_TrackBar_Ticks : 显示调节的刻度.
#PB_TrackBar_Vertical : 设置调节块为垂直模式(来替代默认的水平模式).
描述4: 你可以用GadgetToolTip()为按键添加一个"小帮助"
描述5: 这个控件支持EventType()函数,允许以下事件:
- GetGadgetState() : 返回当前滑片位置
- SetGadgetState() : 设置滑片位置
- GetGadgetAttribute() : 具有下列属性之一:
#PB_TrackBar_Minimum : 返回下限值
#PB_TrackBar_Maximum : 返回上限值
- SetGadgetAttribute() : 具有下列属性之一:
#PB_TrackBar_Minimum : 设置下限值
#PB_TrackBar_Maximum : 设置上限值
例子:
hwnd = OpenWindow(0,0,0,320,200,"调节块控件 - 迷路制作",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
If CreateGadgetList(hwnd)
TextGadget (3, 10, 20, 250, 20,"标准调节块控件", #PB_Text_Center)
TrackBarGadget(0, 10, 40, 250, 20, 0, 10000)
TextGadget (4, 10, 100, 250, 20, "显示进度刻度", #PB_Text_Center)
TrackBarGadget(1, 10, 120, 250, 20, 0, 30, #PB_TrackBar_Ticks)
TextGadget (5, 90, 180, 200, 20, "垂直模式", #PB_Text_Right)
TrackBarGadget(2, 270, 10, 20, 170, 0, 10000, #PB_TrackBar_Vertical)
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
这个控件的用途相当广泛,一副降燥的好中药:
ProgressBarGadget()进度条控件 语 法: [返回值=] ProgressBarGadget(<#控件编号>, <x>, <y>, <宽>, <高>,<下限>,<上限> [,标志])
描述1: 在当前的GadgetList中构建一个调节块控件.
如果参数<#控件编号>使用#PB_Any,Result的返回值为新控件的编号.
描述2: 进度条的值只能在上下限之间的任意值.
描述3: [标志]总是可选的,可以为下列常量之一:
#PB_ProgressBar_Smooth : 进度条用平滑模式替代块模式,(在XP中启动皮肤,并不受影响)
#PB_ProgressBar_Vertical : 进度条为垂直模式。
描述4: 你可以用GadgetToolTip()为按键添加一个"小帮助"
描述5: 这个控件支持EventType()函数,允许以下事件:
- SetGadgetState() : 设置进度条的值.
- GetGadgetState() : 获取当前进度条的值.
- SetGadgetAttribute() : 具有下列属性之一:
#PB_ProgressBar_Minimum : 设置下限值
#PB_ProgressBar_Maximum : 设置上限值
- GetGadgetAttribute() : 具有下列属性之一:
#PB_ProgressBar_Minimum : 返回下限值
#PB_ProgressBar_Maximum : 返回上限值
描述6: 这个控件支持SetGadgetColor()和GetGadgetColor()函数,允许以下的<着色类型>
#PB_Gadget_FrontColor : 进度条颜色
#PB_Gadget_BackColor : 背景色
例子:
hwnd = OpenWindow(0,0,0,320,200,"进度条控件 - 迷路制作",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
If CreateGadgetList(hwnd)
TextGadget (3, 10, 10, 250, 20, "标准进度条控件 (50/100)", #PB_Text_Center)
ProgressBarGadget(0, 10, 30, 250, 30, 0, 100)
SetGadgetState (0, 50) ; 设置进度为50/100处
TextGadget (4, 10, 70, 250, 20, "滑片模式进度条 (50/200)", #PB_Text_Center)
ProgressBarGadget(1, 10, 90, 250, 30, 0, 200, #PB_ProgressBar_Smooth)
SetGadgetState (1, 50) ; 设置进度为50/200处
TextGadget (5, 100,135, 200, 20, "垂直模式进度条 (100/300)", #PB_Text_Right)
ProgressBarGadget(2, 270, 10, 30, 120, 0, 300, #PB_ProgressBar_Vertical)
SetGadgetState (2, 100) ; 设置进度为100/300处
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf