playbook/docs/tsl/syntax_book/function/08_gui.md

17 KiB
Raw Blame History

GUI函数

内容

  • GUI函数简介
  • GUI功能函数
  • 消息对话框的类型控制字
  • 消息对话框的图标控制字
  • 消息对话框的默认按钮控制字
  • 消息对话框的模式控制字
  • 消息对话框的其他控制字
  • 消息对话框的返回字

GUI函数简介

GUI函数目前只能用于本地化执行如WORD模板中以及其他本地执行的应用中。GUI函数为TSL语言与用户提供一个运行中的交互提供了可能。如显示消息对话框显示文件打开对话框显示输入对话框等等。

GUI功能函数

内容
  • 对话框数据类别函数
  • InputQuery
  • PromptForFileName
  • MessageBox
  • InputDialog
  • BuildOptionComboValue
  • ShowValue
对话框数据类别函数
内容
  • uiInteger
  • uiBoolean
  • uiString
  • uiDate
  • uiDouble
  • uiMarketList
  • uiIndexList
  • uiStockList
  • uiSelfBkList
  • uiSysBkList
  • uiRightStyle
  • uiCycle
  • uiReportDate
  • uiBasicIDList
  • uiUserDefine
  • uiOneDimArray
  • uiTwoDimDoubleArray
  • uiOneDimStringArray
  • uiTwoDimStringArray
  • uiOneDimDateArray
  • uiTwoDimDateArray
  • uiTable
  • uiUserData
  • uiRightDay
  • uiBasicID
  • uiYear
  • uiMonth
  • uiDay
uiInteger

范例

return rdo2 uiInteger();

//结果0
uiBoolean

范例

return rdo2 uiBoolean();

//结果1
uiString

范例

return rdo2 uiString();

//结果2
uiDate

范例

return rdo2 uiDate();

//结果3
uiDouble

范例

return rdo2 uiDouble();

//结果4
uiMarketList

范例

return rdo2 uiMarketList();

//结果5
uiIndexList

范例

return rdo2 uiIndexList();

//结果6
uiStockList

范例

return rdo2 uiStockList();

//结果7
uiSelfBkList

范例

return rdo2 uiSelfBkList();

//结果8
uiSysBkList

范例

return rdo2 uiSysBkList();

//结果9
uiRightStyle

范例

return rdo2 uiRightStyle();

//结果11
uiCycle

范例

return rdo2 uiCycle();

//结果12
uiReportDate

范例

return rdo2 uiReportDate();

//结果13
uiBasicIDList

范例

return rdo2 uiBasicIDList();

//结果14
uiUserDefine

范例

return rdo2 uiUserDefine();

//结果17
uiOneDimArray

范例

return rdo2 uiOneDimArray();

//结果18
uiTwoDimDoubleArray

范例

return rdo2 uiTwoDimDoubleArray();

//结果19
uiOneDimStringArray

范例

return rdo2 uiOneDimStringArray();

//结果20
uiTwoDimStringArray

范例

return rdo2 uiTwoDimStringArray();

//结果21
uiOneDimDateArray

范例

return rdo2 uiOneDimDateArray();

//结果22
uiTwoDimDateArray

范例

return rdo2 uiTwoDimDateArray();

//结果23
uiTable

范例

return rdo2 uiTable();

//结果24
uiUserData

范例

return rdo2 uiUserData();

//结果25
uiRightDay

范例

return rdo2 uiRightDay();

//结果27
uiBasicID

范例

return rdo2 uiBasicID();

//结果29
uiYear

范例

return rdo2 uiYear();

//结果31
uiMonth

范例

return rdo2 uiMonth();

//结果32
uiDay

范例

return rdo2 uiDay();

//结果33
InputQuery

范例

if not rdo2 inputquery("输入数据","输入被除数",M1) then

return "未输入被除数";

if not rdo2 inputquery("输入数据","输入除数",M2) then

return "未输入除数";

return strtofloat(M1) / strtofloat(M2);

执行第一个if时弹出如上对话框输入3点击确定这是执行第二个if弹出如下个对话框

输入6点击OK则返回的结果是0.5.

PromptForFileName

范例

 //打开保存文件对话框


rdo2 PromptForFileName(data,'Excelfiles


(*.xls)|*.xlsx|(*.XLS)|TSLfiles (*.tsl)|*.TSL','.xls','保存对话框','C:\\DataStore',1);


return data;


//打开打开文件对话框


rdo2 PromptForFileName(data,'Excelfiles


(*.xls)|*.xlsx|(*.XLS)|TSLfiles (*.tsl)|*.TSL','.xls','打开对话框','C:\\DataStore',0);


return data;
MessageBox

范例

范例1

a:=3;

if a>2 then b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',rdo2 mb_YesNo());

if b=6 then return 1;

else return 0;

显示的消息对话框如下:

其中mb_YesNo()函数为控制字函数,各控制字函数可以参考链接:

http://www.tinysoft.com.cn/tsdn/helpdoc/display.tsl?id=1380

范例2

两个控制字函数相加的消息显示框,两个控制字函数相加用位或的运算符号.|,程序如下:

a:=3;

c:=rdo2 mb_YesNo().|rdo2 mb_IconWarning();

if a>2 then

b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);

if b=7 then return 1;

else return b;

弹出的消息显示框则如下:

比范例1多了一个警告图标即mb_IconWarning()是警告图标控制字函数参考消息对话框的返回字。

InputDialog

范例

Define:=array();

define[0]['Name']:='Years';

define[0]['Comment']:='年数';

define[0]['Type']:=rdo2 uiInteger();

define[0]['Value']:=10;

define[1]['Name']:='NeedFunds';

define[1]['Comment']:='是否需要基金';

define[1]['Type']:=rdo2 uiBoolean();

define[1]['Value']:=True;

define[2]['Name']:='Name';

define[2]['Comment']:='输入名称';

define[2]['Type']:=rdo2 uiString();

define[2]['Value']:='天软';

define[3]['Name']:='GenDate';

define[3]['Comment']:='生成日期';

define[3]['Type']:=rdo2 uiDate();

define[3]['Value']:=now();

if rdo2 InputDialog('测试输入','测试',define,Result) then

rdo2 ShowValue('测试显示',Result,False);

显示如下:

当选择了确认之后ShowValue的结果显示出来如下

BuildOptionComboValue

范例

//返回结果值为1的Value值


s:='abcd=0\r bcde=1\r';


return rdo2 BuildOptionComboValue(s,1);


//返回结果值为0的Value值


s:='abcd=0\r bcde=1\r';


return rdo2 BuildOptionComboValue(s,0);
ShowValue

范例

//显示一个数组数据

a:=rand(10,10);

  b:=rdo2 ShowValue('测试显示',a,False);

return b;


//显示一个字符串

a:='测试ABC';


b:=rdo2 ShowValue('测试显示',a,False);


return b;

消息对话框的类型控制字

内容
  • mb_AbortRetryIgnore
  • mb_Ok
  • mb_OkCancel
  • mb_RetryCancel
  • mb_YesNo
  • mb_YesNoCancel
mb_AbortRetryIgnore

范例

a:=3;


b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',rdo2 mb_AbortRetryIgnore());


return b;

弹出如下消息对话框选择“中止”则返回“中止”按钮id的返回字选择“重试”则返回“重试”按钮id的返回字。选择“忽略”及返回“忽略”按钮Id的返回字。

mb_Ok
  • mb_AbortRetryIgnore
  • mb_Ok
  • mb_OkCancel
  • mb_RetryCancel
  • mb_YesNo
  • mb_YesNoCancel
mb_OkCancel

范例

a:=3;

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',rdo2 mb_OkCancel());

return b;

弹出如下消息对话框选择“确定”则返回“确定”按钮id的返回字选择“取消”则返回“取消”按钮id的返回字。

mb_RetryCancel

范例

a:=3;

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',rdo2 mb_RetryCancel());


return b;

弹出如下消息对话框选择“重试”则返回“重试”按钮id的返回字选择“取消”则返回“取消”按钮id的返回字。

mb_YesNo

范例

a:=3;


b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',rdo2 mb_YesNo());

return b;

弹出如下消息对话框选择“是”则返回“是”按钮id的返回字选择否则返回“否”按钮id的返回字。

参考MessageBox

mb_YesNoCancel

范例

a:=3;

   b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',rdo2 mb_YesNoCancel());

return b;

弹出如下消息对话框选择“是”则返回“是”按钮id的返回字选择“否”则返回“否”按钮id的返回字选择“取消”则返回“取消”按钮id的返回字。

消息对话框的图标控制字

内容
  • mb_IconInformation
  • mb_IconExclamation
  • mb_IconWarning
  • mb_IconInfomation
  • mb_IconAsterisk
  • mb_IconQuestion
  • mb_IconStop
  • mb_IconError
  • mb_IconHand
mb_IconInformation

范例

a:=3;


c:= rdo2 mb_YesNo().| rdo2mb_IconInformation();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);


return b;

弹出对话框如下:

mb_IconExclamation

范例

a:=3;


c:= rdo2 mb_YesNo().| rdo2 mb_IconExclamation();


b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);


return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个感叹号图标。

mb_IconWarning

范例

a:=3;


c:= rdo2 mb_YesNo().| rdo2 mb_IconWarning();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);


return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个警告图标。

mb_IconInfomation
  • mb_IconInformation
  • mb_IconExclamation
  • mb_IconWarning
  • mb_IconInfomation
  • mb_IconAsterisk
  • mb_IconQuestion
  • mb_IconStop
  • mb_IconError
  • mb_IconHand
mb_IconAsterisk

范例

a:=3;


c:= rdo2 mb_YesNo().| rdo2 mb_IconAsterisk();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);


return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个星号图标。

mb_IconQuestion

范例

a:=3;


c:= rdo2 mb_YesNo().| rdo2mb_IconQuestion ();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);


return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个问好图标。

mb_IconStop

范例

a:=3;


c:= rdo2 mb_YesNo().| rdo2mb_IconStop();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);


return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个停止图标。

mb_IconError

范例

a:=3;


c:= rdo2 mb_YesNo().| rdo2mb_IconError();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);


return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个错误图标。

mb_IconHand

范例

a:=3;


c:= rdo2 mb_YesNo().| rdo2mb_IconHand();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);


return b;

弹出消息显示框如下图在控制字mb_YesNo()显示框的基础上加了一个手图标。

消息对话框的默认按钮控制字

内容
  • mb_DefButton1
  • mb_DefButton2
  • mb_DefButton3
  • mb_DefButton4
mb_DefButton1

范例

a:=3;


c:= rdo2 mb_YesNo().| rdo2mb_DefButton1() ;

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);


return b;

弹出消息显示框如下图控制字mb_YesNo()消息显示框的第一个按钮呈浅蓝色。

mb_DefButton2

范例

a:=3;


c:= rdo2 mb_YesNo().| rdo2mb_DefButton2() ;

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);


return b;

弹出消息显示框如下图控制字mb_YesNo()消息显示框的第二个按钮呈浅蓝色。

mb_DefButton3

范例

a:=3;


c:= rdo2 mb_AbortRetryIgnore().| rdo2mb_DefButton3() ;

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);


return b;

弹出消息显示框如下图控制字mb_AbortRetryIgnore()消息显示框的第三个按钮呈浅蓝色。

mb_DefButton4

范例

如没有第四个按钮则从超出按钮个数起重新从第一个按钮数如mb_AbortRetryIgnore()

在默认第四个按钮由于mb_AbortRetryIgnore()只有三个按钮,则第四个显示的是第一个。

a:=3;


c:= rdo2 mb_AbortRetryIgnore().| rdo2mb_DefButton4() ;

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);


return b;

弹出消息显示框如下图控制字mb_AbortRetryIgnore()消息显示框的第一个按钮呈浅蓝色。

消息对话框的模式控制字

内容
  • mb_ApplModal
  • mb_AppModal
  • mb_SystemModal
  • mb_TaskModal
mb_ApplModal

范例

a:=3;

c:= rdo2 mb_AbortRetryIgnore().|rdo2mb_ApplModal();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);

return b;

弹出消息显示框如下图:

mb_AppModal
  • mb_ApplModal
  • mb_AppModal
  • mb_SystemModal
  • mb_TaskModal
mb_SystemModal

范例

a:=3;

c:= rdo2 mb_AbortRetryIgnore().|rdo2mb_SystemModal();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);

return b;

弹出消息显示框如下图,如不返回选择按钮,消息显示框总是在最前端。

mb_TaskModal

范例

a:=3;

c:= rdo2 mb_AbortRetryIgnore().|rdo2mb_TaskModal();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);

return b;

弹出消息显示框如下图,如不返回选择按钮,将无法继续操作天软系统。

消息对话框的其他控制字

内容
  • mb_TopMost
  • mb_Default_Desktop_Only
  • mb_Help
  • mb_Right
  • mb_RtlReading
  • mb_SetForeGround
  • mb_SetTopMost
  • mb_Service_Notification
  • mb_Service_Notification_NT3X
mb_TopMost

范例

a:=3;

c:= rdo2 mb_AbortRetryIgnore().|rdo2mb_TopMost();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);

return b;

弹出对话框如:

mb_Default_Desktop_Only

范例

a:=3;

c:= rdo2 mb_AbortRetryIgnore().|rdo2mb_Default_Desktop_Only();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);

return b;

弹出消息显示框如下图

mb_Help

范例

a:=3;

c:= rdo2 mb_AbortRetryIgnore().|rdo2mb_Help();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);

return b;

弹出消息显示框如下图

mb_Right

范例

a:=3;

c:= rdo2 mb_AbortRetryIgnore().|rdo2mb_Right();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);

return b;

弹出消息显示框如下图

mb_RtlReading

范例

a:=3;

c:= rdo2 mb_AbortRetryIgnore().|rdo2mb_RtlReading();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);

return b;

弹出消息显示框如下图

mb_SetForeGround

范例

a:=3;

c:= rdo2 mb_AbortRetryIgnore().|rdo2mb_SetForeGround();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);

return b;

弹出消息显示框如下图

mb_SetTopMost
  • mb_TopMost
  • mb_Default_Desktop_Only
  • mb_Help
  • mb_Right
  • mb_RtlReading
  • mb_SetForeGround
  • mb_SetTopMost
  • mb_Service_Notification
  • mb_Service_Notification_NT3X
mb_Service_Notification

范例

a:=3;

c:= rdo2 mb_AbortRetryIgnore().|rdo2mb_Service_Notification();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);

return b;
mb_Service_Notification_NT3X

范例

a:=3;

c:= rdo2 mb_AbortRetryIgnore().|rdo2mb_Service_Notification_NT3X();

  b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',c);

return b;

弹出消息显示框如下图

消息对话框的返回字

内容
  • idAbort
  • idCancel
  • idIgnore
  • idNo
  • idOk
  • idRetry
  • idYes
idAbort

范例

a:=3;


b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',rdo2 mb_AbortRetryIgnore());


if b=rdo2 idAbort () then return 1;


else return 0;

返回结果如选择Abort按钮则返回1否则返回0 。

idCancel

范例

a:=3;


b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',rdo2 mb_OkCancel());


if b=rdo2 idCancel () then return 1;


else return 0;

返回结果如选择Cancel按钮则返回1否则返回0 。

idIgnore

范例

a:=3;


b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',rdo2 mb_AbortRetryIgnore ());


if b=rdo2 idIgnore () then return 1;


else return 0;

返回结果如选择Ignore按钮则返回1否则返回0 。

idNo

范例

a:=3;


b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',rdo2 mb_YesNo ());


if b=rdo2 idNo () then return 1;


else return 0;

返回结果如选择No按钮则返回1否则返回0 。

idOk

范例

a:=3;


b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',rdo2 mb_OkCancel ());


if b=rdo2 idOk() then return 1;


else return 0;

返回结果如选择OK按钮则返回1否则返回0 。

idRetry

范例

a:=3;


b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',rdo2 mb_AbortRetryIgnore());


if b=rdo2 idRetry () then return 1;


else return 0;

返回结果如选择Retry按钮则返回1否则返回0 。

idYes

范例

a:=3;


b:=rdo2 MessageBox('a>2,要继续吗?','测试对话框',rdo2 mb_YesNo());


if b=rdo2 IdYes() then return 1;


else return 0;

返回结果如选择Yes按钮则返回1否则返回0 。