Appendix A
Corel® PerfectScript Examples
8072
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate REGIONRESETLIST command
Loop = 1
Yes = 6
WM_SYSCOMMAND = 274
DIALOGDEFINE(1000; 20; 20; 107; 125; NoFrame!; "RegionResetList")
DIALOGADDFRAME(1000; 100; 10; 10; 10; 10; Frame! | Filled! | Gray!)
DIALOGADDHOTSPOT(1000; 101; 10; 10; 10; 10; Click!)
DIALOGADDTEXT(1000; 0; 28; 10; 75; 15; Left!; "Click to clear list")
DIALOGADDLISTBOX(1000; 102; 10; 35; 85; 75; Sorted!; var)
CALL(AddItems)
DIALOGSHOW(1000; 101; Msg)
WHILE(Loop = 1)
ENDWHILE
DIALOGDESTROY(1000)
QUIT
LABEL(Msg)
IF(Msg[5] = WM_SYSCOMMAND)
Loop = 0
ENDIF
IF(Msg[3] = 101)
REGIONRESETLIST("1000.102")
MESSAGEBOX(vResult; "Macro Example"; "Do
you want to start over?"; IconQuestion! | YesNo!)
IF(vResult = Yes)
CALL(AddItems)
ELSE
Loop = 0
ENDIF
ENDIF
RETURN
LABEL(AddItems)
FOREACH(vList; {"Apples"; "Bananas"; "Oranges"; "Grapes"; "Pears"})
DIALOGADDLISTITEM(1000; 102; vList)
ENDFOR
RETURN
8073
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate REGIONSELECTLISTITEM command
Loop = 1
lParam = 7
WM_SYSCOMMAND = 274
DIALOGDEFINE(1000; 50; 50; 205; 125; Percent! | NoFrame!; "RegionSelectListItem")
DIALOGADDTEXT(1000; 0; 0; 15; 107; 15; Center!; "Select a fruit")
DIALOGADDLISTBOX(1000; 100; 11; 35; 85; 75; Sorted!; var)
DIALOGADDLISTBOX(1000; 101; 108; 35; 85; 75; UnSorted!; var)
FOREACH(vList; {"Oranges"; "Grapes"; "Apples"; "Pears"; "Watermelon"; "Grapefruit";
"Peaches"; "Bananas"})
DIALOGADDLISTITEM(1000; 100; vList)
DIALOGADDLISTITEM(1000; 101; vList)
ENDFOR
DIALOGHANDLE(hItem; 1000; 100)
DIALOGSHOW(1000; 100; Msg)
WHILE(Loop = 1)
ENDWHILE
DIALOGDESTROY(1000)
QUIT
LABEL(Msg)
IF(Msg[5] = WM_SYSCOMMAND)
Loop = 0
ENDIF
IF(LWORD(Msg[lParam]) = hItem)
REGIONGETSELECTEDTEXT(vSelectItem; "1000.100")
REGIONSELECTLISTITEM("1000.101"; vSelectItem)
ENDIF
RETURN
FUNCTION LWORD(vNum)
vNum = vNum & 65535
RETURN(vNum)
ENDFUNC
8074
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate REGIONSETCHECK command
Loop = 1
WM_SYSCOMMAND = 274
vCheck = 1
DIALOGDEFINE(1000; 50; 50; 160; 75; Percent! | NoFrame!; "RegionSetCheck")
DIALOGADDFRAME(1000; 100; 10; 10; 10; 10; Frame! | Filled! | Gray!)
DIALOGADDHOTSPOT(1000; 101; 10; 10; 10; 10; Click!)
DIALOGADDTEXT(1000; 0; 28; 10; 125; 15; Left!; "Click to select/deselect
check box")
DIALOGADDCHECKBOX(1000; 102; 60; 35; 50; 15; "Check Box"; var)
DIALOGSHOW(1000; 101; Msg)
WHILE(Loop = 1)
ENDWHILE
DIALOGDESTROY(1000)
QUIT
LABEL(Msg)
IF(Msg[5] = WM_SYSCOMMAND)
Loop = 0
ENDIF
IF(Msg[3] = 101)
IF(vCheck = 1)
REGIONSETCHECK("1000.102"; Check!)
vCheck = 0
ELSE
REGIONSETCHECK("1000.102"; UnCheck!)
vCheck = 1
ENDIF
ENDIF
RETURN
8075
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate REGIONSETFOCUS command
Loop = 1
lParam = 7
WM_SYSCOMMAND = 274
DIALOGDEFINE(1000; 20; 30; 107; 110; NoFrame!; "RegionSetFocus")
DIALOGADDTEXT(1000; 0; 0; 15; 107; 15; Center!; "Select a button")
DIALOGADDLISTBOX(1000; 100; 10; 35; 85; 35; Sorted!; var)
FOREACH(vList; {"Radio Button 1"; "Radio Button 2"; "Radio Button 3"})
DIALOGADDLISTITEM(1000; 100; vList)
ENDFOR
DIALOGHANDLE(hItem; 1000; 100)
DIALOGADDRADIOBUTTON(1000; 101; 10; 75; 15; 15; "1"; var)
DIALOGADDRADIOBUTTON(1000; 102; 40; 75; 15; 15; "2"; var)
DIALOGADDRADIOBUTTON(1000; 103; 70; 75; 15; 15; "3"; var)
DIALOGSHOW(1000; 100; Msg)
WHILE(Loop = 1)
ENDWHILE
DIALOGDESTROY(1000)
QUIT
LABEL(Msg)
IF(Msg[5] = WM_SYSCOMMAND)
Loop = 0
ENDIF
IF(LWORD(Msg[lParam]) = hItem)
REGIONGETSELECTEDTEXT(vRB; "1000.100")
SWITCH(vRB)
CASEOF "Radio Button 1": vFocus = "101"
CASEOF "Radio Button 2": vFocus = "102"
CASEOF "Radio Button 3": vFocus = "103"
ENDSWITCH
REGIONSETFOCUS("1000." + vFocus)
ENDIF
RETURN
FUNCTION LWORD(vNum)
vNum = vNum & 65535
RETURN(vNum)
ENDFUNC
8076
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate REGIONASETWINDOWTEXT command
Loop = 1
vNmbr = 2
WM_SYSCOMMAND = 274
DIALOGDEFINE(1000; 50; 50; 150; 50; Percent! | NoFrame!; "RegionSetWindowText")
DIALOGADDFRAME(1000; 100; 10; 10; 10; 10; Frame! | Filled! | Gray!)
DIALOGADDHOTSPOT(1000; 101; 10; 10; 10; 10; Click!)
DIALOGADDTEXT(1000; 102; 28; 10; 125; 15; Left!; "Click to change text")
DIALOGSHOW(1000; 101; Msg)
WHILE(Loop = 1)
ENDWHILE
DIALOGDESTROY(1000)
QUIT
LABEL(Msg)
IF(Msg[5] = WM_SYSCOMMAND)
Loop = 0
ENDIF
IF(Msg[3] = 101)
ChangeTitle
ENDIF
RETURN
LABEL(ChangeTitle)
vChange = "Click " + vNmbr
REGIONSETWINDOWTEXT("1000"; vChange)
REGIONSETWINDOWTEXT("1000.102"; vChange)
ASSIGN(vNmbr; vNmbr + 1)
RETURN
8077
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate REGIONSHOWWINDOW command
Loop = 1
WM_SYSCOMMAND = 274
vDisable = 1
DIALOGDEFINE(1000; 50; 50; 175; 75; Percent! | NoFrame!; "RegionShowWindow")
DIALOGADDFRAME(1000; 100; 10; 10; 10; 10; Frame! | Filled! | Gray!)
DIALOGADDHOTSPOT(1000; 101; 10; 10; 10; 10; Click!)
DIALOGADDTEXT(1000; 0; 28; 10; 125; 15; Left!; "Click to hide/show the
following text")
DIALOGADDTEXT(1000; 102; 0; 35; 175; 15; Center!; "Novell GroupWise* 4.1")
DIALOGSHOW(1000; 101; Msg)
WHILE(Loop = 1)
ENDWHILE
DIALOGDESTROY(1000)
QUIT
LABEL(Msg)
IF(Msg[5] = WM_SYSCOMMAND)
Loop = 0
ENDIF
IF(Msg[3] = 101)
IF(vDisable = 1)
REGIONSHOWWINDOW("1000.102"; Hide!)
vDisable = 0
ELSE
REGIONSHOWWINDOW("1000.102"; Show!)
vDisable = 1
ENDIF
ENDIF
RETURN
8078
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate COPYFILE, DOESFILEEXIST, GETCURRENTDIRECTORY, and DOESDIRECTORYEXIST
commands
VARERRCHK(Off!)
HRt = NTOC(0F90Ah)
CALL(GetFileNames)
CALL(CheckNames)
CALL(CopyFiles)
QUIT
LABEL(GetFileNames)
GETSTRING(vSource; "Current directory: " + GETCURRENTDIRECTORY + HRt +
HRt + "File to copy:"; "Copy File"; 100)
GETSTRING(vDestination; "File to copy: " + vSource + HRt + HRt + "To:";
"Copy File"; 100)
RETURN
LABEL(CheckNames)
IF(NOT(DOESFILEEXIST(vSource) = True))
ErrorMsg(vSource + " does not exist")
ENDIF
vLen = STRLEN(vDestination)
vCnt = vLen
WHILE(NOT(vResult = "\") OR (vStrLen = 0))
vResult = SUBSTR(vDestination; vCnt; 1)
vCnt = vCnt - 1
ENDWHILE
// parsed filename is not used vFilename = SUBSTR(vDestination; vCnt +
2; vLen - vCnt)
vDirectoryName = SUBSTR(vDestination; 1; vCnt)
IF(DOESDIRECTORYEXIST(vDirectoryName) = True)
RETURN
ELSE
ErrorMsg(vDirectoryName + " does not exist")
ENDIF
LABEL(CopyFiles)
IF(COPYFILE(vSource; vDestination; NoPrompts!) = True)
MESSAGEBOX(x; "COPYFILE"; "File copied successfully";
IconInformation!)
ELSE
ErrorMsg("File not copied")
ENDIF
RETURN
PROCEDURE ErrorMsg(Msg)
BEEP
MESSAGEBOX(x; "Error"; Msg; IconExclamation!)
QUIT
ENDPROC
8079
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate GETCURRENTDIRECTORY and SETCURRENTDIRECTORY command
ONCANCEL(QuitMacro)
HRt = NTOC(0F90Ah)
LABEL(SetCurrentDir)
GETSTRING(vNewDir; "Current directory: " + GETCURRENTDIRECTORY + HRt +
Hrt
+ "New directory:"; "Directory Commands"; 100)
IF(SETCURRENTDIRECTORY(vNewDir) = False)
BEEP
MESSAGEBOX(x; "Error"; "Invalid directory";
IconExclamation!)
GO(SetCurrentDir)
ELSE
MESSAGEBOX(x; "Current Directory"; vNewDir;
IconInformation!)
ENDIF
QUIT
LABEL(QuitMacro)
MESSAGEBOX(x; "End Macro"; "You chose Cancel or pressed Esc"; IconInformation!)
QUIT
8080
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate CREATEDIRECTORY and DELETEDIRECTORY commands
ONCANCEL(QuitMacro)
HRt = NTOC(0F90Ah)
LABEL(CreateDir)
GETSTRING(vCreateDir; "Current directory: " + GETCURRENTDIRECTORY + HRt
+ Hrt
+ "New directory:"; "Create New Directory"; 100)
IF(CREATEDIRECTORY(vCreateDir) = False)
BEEP
MESSAGEBOX(x; "Error"; "Directory not created";
IconExclamation!)
GO(CreateDir)
ELSE
MESSAGEBOX(vYesNo; "New Directory"; vCreateDir
IF(vYesNo = 6)
MESSAGEBOX(x; "Delete Directory"; "Directory
deleted: " + DELETEDIRECTORY(vCreateDir))
ENDIF
ENDIF
QUIT
LABEL(QuitMacro)
MESSAGEBOX(x; "End Macro"; "You chose Cancel or pressed Esc"; IconInformation!)
QUIT
8081
APPLICATION(WP; "WordPerfect"; Default; "US")
// Create a directory named c:\test
// Demonstrate RENAMEDIRECTORY command
ONCANCEL(QuitMacro)
HRt = NTOC(0F90Ah)
CREATEDIRECTORY ("c:\test";Prompts!)
GETSTRING(vNewName; "Type a new name for directory c:\test:"; "Rename a
Directory"; 100)
RENAMEDIRECTORY ("c:\test";vNewName;Prompts!)
MESSAGEBOX(vYesNo; "Renamed Directory"; "Delete " + vNewName + " now?";IconQuestion!|YesNo!)
IF(vYesNo = 6)
DELETEDIRECTORY(vNewName)
MESSAGEBOX(x;"Delete Directory";"Directory " + vNewName + " deleted.")
ELSE
MESSAGEBOX(x;"Renamed Directory";"Directory " + vNewName + " not deleted.")
ENDIF
QUIT
LABEL(QuitMacro)
MESSAGEBOX(x;"End Macro"; "You chose Cancel or pressed Esc";IconInformation!)
QUIT
8082
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate GETFILEATTRIBUTES command
ONCANCEL(QuitMacro)
HRt = NTOC(0F90Ah)
GETSTRING(vFilename; "File:"; "Get File Attributes"; 100)
IF(NOT(vFilename = ""))
MESSAGEBOX(x; ""; GETFILEATTRIBUTES(vFilename))
ENDIF
QUIT
LABEL(QuitMacro)
MESSAGEBOX(x; "End Macro"; "You chose Cancel or pressed Esc"; IconInformation!)
QUIT
8083
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate SETFILEATTRIBUTES command
ONCANCEL(QuitMacro)
HRt = NTOC(0F90Ah)
GETSTRING(vFilename; "Set read-only attribute." + HRt + Hrt + "File:";
"SETFILEATTRIBUTES"; 100)
IF(NOT(vFilename = ""))
MESSAGEBOX(x; "SETFILEATTRIBUTES"; "Read-only status: " + SETFILEATTRIBUTES(vFilename;
ReadOnly!; Prompts!))
ENDIF
QUIT
LABEL(QuitMacro)
MESSAGEBOX(x; "End Macro"; "You chose Cancel or pressed Esc"; IconInformation!)
QUIT
8084
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate GETFILEDATEANDTIME command
ONCANCEL(QuitMacro)
HRt = NTOC(0F90Ah)
GETSTRING(vFilename; "Date and time." + HRt + Hrt + "File:"; "GETFILEDATEANDTIME";
100)
IF(NOT(vFilename = ""))
MESSAGEBOX(x; "Number of seconds since Jan 1, 1980"; GETFILEDATEANDTIME(vFilename))
ENDIF
QUIT
LABEL(QuitMacro)
MESSAGEBOX(x; "End Macro"; "You chose Cancel or pressed Esc"; IconInformation!)
QUIT
8085
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate SETFILEDATEANDTIME command
ONCANCEL(QuitMacro)
HRt = NTOC(0F90Ah)
GETSTRING(vFilename; "Date and time." + HRt + Hrt + "File:"; "GETFILEDATEANDTIME";
100)
IF(NOT(vFilename = ""))
MESSAGEBOX(x; "New File Date and Time Stamp"; "Result: " + SETFILEDATEANDTIME(vFilename;
485780000) + " (Jun 30, 1994 / 7:02a)")
ENDIF
QUIT
LABEL(QuitMacro)
MESSAGEBOX(x; "End Macro"; "You chose Cancel or pressed Esc"; IconInformation!)
QUIT
8086
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate DELETEFILE command
ONCANCEL(QuitMacro)
GETSTRING(vFilename; "File:"; "DELETEFILE"; 100)
IF(NOT(vFilename = ""))
IF(NOT(DELETEFILE(vFilename; Prompts!) = True))
Msg = vFilename + " not deleted"
ELSE
Msg = vFilename + " successfully deleted"
ENDIF
MESSAGEBOX(x; "DELETEFILE"; Msg; IconInformation!)
ENDIF
QUIT
LABEL(QuitMacro)
MESSAGEBOX(x; "End Macro"; "You chose Cancel or pressed Esc"; IconInformation!)
QUIT
8087
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate RENAMEFILE command
ONCANCEL(QuitMacro)
HRt = NTOC(0F90Ah)
LABEL(begin)
GETSTRING(vOldName; "Old file name:"; "RENAMEFILE"; 100)
IF(vOldName = "")
GO(begin)
ENDIF
GETSTRING(vNewName; "Old file: " + vOldName + HRt + HRt + "New file name:";
"RENAMEFILE"; 100)
IF(NOT(vNewName = ""))
IF(NOT(RENAMEFILE(vOldName; vNewName; Prompts!)
= True))
Msg = vOldName + " not renamed"
ELSE
Msg = "New file name: " + vNewName
ENDIF
MESSAGEBOX(x; "RENAMEFILE"; Msg; IconInformation!)
ENDIF
QUIT
LABEL(QuitMacro)
MESSAGEBOX(x; "End Macro"; "You chose Cancel or pressed Esc"; IconInformation!)
QUIT
8088
APPLICATION(WP; "WordPerfect"; Default; "US")
// Before playing this macro, create a file named File_IO, amd save it
in the default macros
//directory in ANSI (Windows) Text format
// Demonstrate OPENFILE, CLOSEFILE, FILEWRITE, FILEREAD, FILEPOSITION,
FILEISEOF, and FILESIZE commands
CALL(OpenInfo)
CALL(WriteToFile)
CALL(ReadFromFile)
CALL(QuitMacro)
LABEL(OpenInfo)
HRt = NTOC(0F90Ah)
ASSIGN(vPath; EnvPaths(Macros!))
hFile = OPENFILE(vPath + "FILE_IO.DOC"; ReadWrite!; DenyNone!; AnsiText!)
IF(hFile 0)
ErrorMsg("opening"; hFile)
ELSE
vIsEOF = "Postion marker (EOF): " + FILEISEOF(hFile)
vSize = "File size: " + FILESIZE(vPath +
"FILE_IO.DOC")
MESSAGEBOX(X;"File Information"; vIsEOF +
HRt + HRt + vSize)
ENDIF
RETURN
LABEL(WriteToFile)
FORNEXT(z; 1; 10; 1)
IF(FILEWRITE(hFile; "WordPerfect is a great product! ";
NoNewLine!) 0)
ErrorMsg("writing to"; hFile)
ENDIF
ENDFOR
RETURN
LABEL(ReadFromFile)
FILEPOSITION(hFile; 0; FromBeginning!)
IF(FILEREAD(hFile; vText) 0)
ErrorMsg("reading from"; hFile)
ELSE
MESSAGEBOX(x; "File I/O"; vText)
ENDIF
RETURN
PROCEDURE ErrorMsg(Msg; hFile)
BEEP
MESSAGEBOX(x; "Error"; "Error " + Msg + " file"; IconExclamation!)
ENDPROC
LABEL(QuitMacro)
IF(NOT(CLOSEFILE(hFile)) = True)
BEEP
MESSAGEBOX(x; "Error"; "Error closing file";IconExclamation!)
ELSE
MESSAGEBOX(x; "File I/O"; "File successfully
closed")
ENDIF
QUIT
8089
APPLICATION(WP; "WordPerfect"; Default; "US")
// Before playing this macro, create a file named File_IO in the default
macros directory,
// and save the file in ANSI (Windows) Text format
// Demonstrate FILETRUNCATE command
CALL(OpenWriteToReadFromFile)
CALL(QuitMacro)
LABEL(OpenWriteToReadFromFile)
HRt = NTOC(0F90Ah)
ASSIGN(vPath; EnvPaths(Macros!))
hFile = OPENFILE(vPath + "FILE_IO.DOC"; ReadWrite!;
DenyNone!; AnsiText!)
IF(hFile 0)
MESSAGEBOX(x; "Error"; "Error opening file";
IconExclamation!)
QUIT
ENDIF
Test(FILEWRITE(hFile; "WordPerfect is a wonderful product!"; NoNewLine!);
"FILEWRITE")
Test(FILEPOSITION(hFile; 0; FromBeginning!); "FILEPOSITION")
Test(FILEREAD(hFile; vText); "FILEREAD")
Test(FILEPOSITION(hFile; 20; FromBeginning!); "FILEPOSITION")
Test(FILETRUNCATE(hFile); "FILETRUNCATE")
Test(FILEPOSITION(hFile; 0; FromBeginning!); "FILEPOSITION")
Test(FILEREAD(hFile; vTruncate); "FILEREAD")
MESSAGEBOX(x; "File I/O - Truncate File"; vText+HRt+HRt+vTruncate)
RETURN
PROCEDURE Test(vError; vStr)
// vError = value returned from FILE command
IF(vError 0)
BEEP
MESSAGEBOX(x; "Error"; vStr; IconExclamation!)
GO(QuitMacro)
ENDIF
ENDPROC
LABEL(QuitMacro)
IF(NOT(CLOSEFILE(hFile)) = True)
BEEP
MESSAGEBOX(x; "Error"; "Error closing file";
IconExclamation!)
ELSE
MESSAGEBOX(x; "File I/O"; "File successfully
closed")
ENDIF
QUIT
8090
APPLICATION(WP; "WordPerfect"; Default; "US")
// Demonstrate FILEERROR and FINDFILE commands
vPath = EnvPaths(Macros!)
vFilename = FILEFIND(vPath + "*.wcm"; Normal!; 1)
WHILE(vFilename != "")
CALL DisplayName(vFilename)
vFilename = FILEFIND("";;1)
ENDWHILE
PROCEDURE DisplayName(vFilename)
MESSAGEBOX(x; "FILEFIND"; vFilename; IconInformation!)
ENDPROC
MESSAGEBOX(x; "Message"; "Error code = " + FILEERROR)
8091
// There are two macros in this example
// The INCLUDE macro is compiled when you play the main macro
// Demonstrate INCLUDE command
// INCLUDE macro: INC.WCM
// Without compiling, save this macro in the macros directory
APPLICATION (A1; "WordPerfect"; Default; "US")
Type("2")
PROCEDURE TestProc(x)
Type(x)
ENDPROC
//Main macro: PARENT.WCM
APPLICATION (A1; "WordPerfect"; Default; "US")
AddTextBox (1600w; 12000w; 9000w; 10000w)
Type("1")
INCLUDE("C:\PRWIN30\MACROS\INC.WCM")
Type("3")
CALL TestProc(4)
QUIT
8093
APPLICATION(A1; "WordPerfect"; Default; "US")
// Demonstrate DIALOGSHOW and DIALOGDISMISS commands
HRt = NTOC(0F90Ah)
WM_COMMAND = 273
WM_SYSCOMMAND = 274
vPopup = "Popup item 1"
vList = "List item 1"
DIALOGSHOW("Dialog1"; "WordPerfect"; Msg)
x := 0
While(x = 0)
Endwhile
QUIT
LABEL(MSG)
IF((Msg[5] = WM_SYSCOMMAND) OR (Msg[3] = "CancelBttn"))
BEEP
x = 1
RETURN
ENDIF
IF(Msg[5] = WM_COMMAND)
DIALOGDISMISS("Dialog1"; "OKBttn")
MsgBox
DIALOGSHOW("Dialog1"; "WordPerfect"; Msg)
ENDIF
RETURN
LABEL(MsgBox)
MESSAGEBOX(z; "Selections"; vList + HRt + HRt + vPopup + HRt)
RETURN
8094
APPLICATION(A1; "WordPerfect"; Default; "US")
// Demonstrate REGIONISVISIBLE, DIALOGSHOW, and DIALOGDISMISS commands
DialogDefine("Dialog"; 50; 50; 200; 200; Percent!; "REGIONISVISIBLE")
DialogAddPushButton("Dialog"; 1; 85; 10; 25; 13; NonDefaultBttn!; "OK")
DialogAddPushButton("Dialog"; 2; 85; 30; 25; 13; DefaultBttn!; "Cancel")
DialogShow("Dialog"; "WordPerfect"; Msg)
x = 0
WHILE(x != 1)
REGIONISVISIBLE (vResult; "Dialog.1")
MESSAGEBOX(z; "OK button"; "Visible: " + CheckResult(vResult))
REGIONSHOWWINDOW ("Dialog.1"; Hide!)
REGIONISVISIBLE (vResult; "Dialog.1")
MESSAGEBOX(z; "OK button"; "Visible: " + CheckResult(vResult))
x = 1
ENDWHILE
DialogDismiss("Dialog"; "CancelBttn")
QUIT
LABEL(Msg)
RETURN
FUNCTION CheckResult(vResult)
IF(vResult = 0)
vResult = "No"
ELSE
vResult = "Yes"
ENDIF
RETURN(vResult)
ENDFUNC
8095
APPLICATION(A1; "WordPerfect"; Default; "US")
OnError (ErrorMsg)
DialogDefine ("Dialog1"; 50; 50; 200; 100; Percent! | OK! | Cancel!; "Dialog
Example")
DialogAddPushButton("Dialog1"; "PushBttn1"; 153; 35; 38; 14; NonDefaultBttn!;
"Add Ctrl")
DialogAddPushButton("Dialog1"; "PushBttn2"; 153; 55; 38; 14; NonDefaultBttn!;
"Get hwnd")
DialogShow ("Dialog1"; "WordPerfect"; Msg)
CallbackWait
Quit
Label(Msg)
If (Msg[5] = 274)
DialogDestroy ("Dialog1")
CallbackResume
Return
Endif
Switch (Msg[3])
CaseOf "OKBttn": MessageBox(x; "OK Button";
"You pressed OK"; IconInformation!)
CaseOf "CancelBttn":
DialogDestroy("Dialog1")
CallBackResume
Return
CaseOf "PushBttn1":
DialogAddProgress ("Dialog1"; "ProgressCtrl"
10;10; 180; 15)
CaseOf "PushBttn2":
hwnd := RegionGetHandle ("dialog1.ProgressCtrl")
MessageBox (x; "Window Handle"; hwnd)
EndSwitch
Return
Label (ErrorMsg)
MessageBox (x; "Error"; "You pressed the Get hwnd button before the Add
Ctrl button."; IconExclamation!)
Return
8096
APPLICATION(A1; "WordPerfect"; Default; "US")
DialogDefine ("Dialog1"; 50; 50; 200; 100; Percent! | OK! | Cancel!; "Dialog
Example")
DialogAddPushButton("Dialog1"; "PushBttn1"; 153; 35; 38; 14; NonDefaultBttn!;
"Run Calc")
DialogAddPushButton("Dialog1"; "PushBttn2"; 153; 55; 38; 14; NonDefaultBttn!;
"Toggle")
DialogAddPushButton("Dialog1"; "PushBttn3"; 153; 15; 38; 14; NonDefaultBttn!;
"Close App")
DialogLoad("Dialog1"; "WordPerfect")
RegionShowWindow ("Dialog1.PushBttn2"; Hide!)
RegionShowWindow ("Dialog1.PushBttn3"; Hide!)
x = 1
DialogShow ("Dialog1"; "WordPerfect"; Msg)
CallbackWait
Quit
Label(Msg)
If (Msg[5] = 274)
DialogDestroy ("Dialog1")
CallbackResume
Return
Endif
Switch (Msg[3])
CaseOf "OKBttn": MessageBox(x; "OK Button";
"You pressed OK"; IconInformation!)
CaseOf "CancelBttn":
DialogDestroy("Dialog1")
CallBackResume
Return
CaseOf "PushBttn1":
AppExecute ("c:\windows\calc.exe")
RegionShowWindow ("Dialog1.PushBttn2"; Show!)
RegionShowWindow ("Dialog1.PushBttn3"; Show!)
CaseOf "PushBttn2":
If(x=1)
AppShow ("Calculator"; Hide!)
x := 0
Else
AppShow ("Calculator"; Restore!)
x := 1
EndIf
CaseOf "PushBttn3":
AppClose ("Calculator")
RegionShowWindow ("Dialog1.PushBttn2"; Hide!)
RegionShowWindow ("Dialog1.PushBttn3"; Hide!)
EndSwitch
Return
8097
APPLICATION(A1; "WordPerfect"; Default; "US")
OnError (ErrorMessage)
DialogDefine ("Dialog1"; 50; 50; 200; 100; Percent! | OK! | Cancel!; "Dialog
Example")
DialogAddPushButton("Dialog1"; "PushBttn1"; 153; 35; 38; 14; NonDefaultBttn!;
"Add Ctrl")
DialogAddPushButton("Dialog1"; "PushBttn2"; 153; 55; 38; 14; NonDefaultBttn!;
"Get Date")
DialogShow ("Dialog1"; "WordPerfect"; Msg)
CallbackWait
Quit
Label(Msg)
If (Msg[5] = 274)
DialogDestroy ("Dialog1")
CallbackResume
Return
Endif
Switch (Msg[3])
CaseOf "OKBttn": MessageBox(x; "OK Button";
"You pressed OK"; IconInformation!)
CaseOf "CancelBttn":
DialogDestroy("Dialog1")
CallBackResume
Return
CaseOf "PushBttn1":
vDay := DateDay()
vMonth := DateMonth()
vYear := DateYear()
DialogAddDate ("Dialog1"; "DateCtrl"; 10
10; 50; 15; Validate!;
var; vYear; vMonth; vDay)
CaseOf "PushBttn2":
MessageBox(x; "Selected Date"; RegionGetWindowText
("Dialog1.DateCtrl"))
EndSwitch
Return
Label(ErrorMessage)
MessageBox(x; "Error"; "You may have selected Get Date before Add Ctrl";
IconExclamation!)
Return
8098
APPLICATION(A1; "WordPerfect"; Default; "US")
DialogDefine ("Dialog1"; 50; 50; 200; 100; Percent! | OK! | Cancel!; "Dialog
Example")
DialogAddPushButton("Dialog1"; "PushBttn1"; 153; 35; 38; 14; NonDefaultBttn!;
"Add Ctrl")
DialogAddPushButton("Dialog1"; "PushBttn2"; 153; 55; 38; 14; NonDefaultBttn!;
"Start")
DialogShow ("Dialog1"; "WordPerfect"; Msg)
CallbackWait
Quit
Label(Msg)
If (Msg[5] = 274)
DialogDestroy ("Dialog1")
CallbackResume
Return
Endif
Switch (Msg[3])
CaseOf "OKBttn": MessageBox(x; "OK Button";
"You pressed OK"; IconInformation!)
CaseOf "CancelBttn":
DialogDestroy("Dialog1")
CallBackResume
Return
CaseOf "PushBttn1":
DialogAddProgress ("Dialog1"; "ProgressCtrl"
10;10; 180; 15)
CaseOf "PushBttn2":
ForNext (vPercent; 1; 100; 1)
RegionSetProgressPercent("Dialog1.ProgressCtrl"
vPercent)
Wait(1)
EndFor
RegionSetProgressPercent("Dialog1.ProgressCtrl"
0)
EndSwitch
Return
8099
APPLICATION(A1; "WordPerfect"; Default; "US")
DialogDefine ("Dialog1"; 50; 50; 200; 100; Percent! | OK! | Cancel!; "Dialog
Example")
DialogAddPushButton("Dialog1"; "PushBttn1"; 153; 35; 38; 14; NonDefaultBttn!;
"Dialog1")
DialogAddPushButton("Dialog1"; "PushBttn2"; 153; 55; 38; 14; NonDefaultBttn!;
"Dialog2")
DialogShow ("Dialog1"; "WordPerfect"; Msg)
//DialogSetProperties ("Dialog1")
CallbackWait
Quit
Label(Msg)
If (Msg[5] = 274)
DialogDestroy ("Dialog1")
CallbackResume
Return
Endif
Switch (Msg[3])
CaseOf "OKBttn": MessageBox(x; "OK Button";
"You pressed OK"; IconInformation!)
CaseOf "CancelBttn":
DialogDestroy("Dialog1")
CallBackResume
Return
CaseOf "PushBttn1":
vAns := DoesDialogExist ("Dialog1")
DialogAddText ("Dialog1"; 101; 10; 10; 100
CaseOf "PushBttn2":
vAns := DoesDialogExist ("Dialog2")
DialogAddText ("Dialog1"; 101; 10; 10; 100
EndSwitch
Return
8100
APPLICATION(A1; "WordPerfect"; Default; "US")
DialogDefine ("Dialog1"; 50; 50; 200; 100; Percent! | OK! | Cancel!; "Dialog
Example")
DialogAddListBox ("Dialog1"; "ListCtrl"; 10; 10; 120; 70; Unsorted!; vItem)
DialogAddPushButton("Dialog1"; "PushBttn1"; 153; 35; 38; 14; NonDefaultBttn!;
"Add Item")
DialogAddPushButton("Dialog1"; "PushBttn2"; 153; 55; 38; 14; NonDefaultBttn!;
"Get Cnt")
vCount := 1
DialogShow ("Dialog1"; "WordPerfect"; Msg)
CallbackWait
Quit
Label(Msg)
If (Msg[5] = 274)
DialogDestroy ("Dialog1")
CallbackResume
Return
Endif
Switch (Msg[3])
CaseOf "OKBttn": MessageBox(x; "OK Button";
"You pressed OK"; IconInformation!)
CaseOf "CancelBttn":
DialogDestroy("Dialog1")
CallBackResume
Return
CaseOf "PushBttn1":
vItem := "Item" + vCount
RegionAddListItem ("Dialog1.ListCtrl"; vItem)
vCount := vCount + 1
CaseOf "PushBttn2":
vNmbr := RegionGetListCount ("Dialog1.ListCtrl")
MessageBox (x; "List Items"; "Number: " + vNmbr)
EndSwitch
Return
8101
APPLICATION(A1; "WordPerfect"; Default; "US")
OnError (ErrorMsg)
DialogDefine ("Dialog1"; 50; 50; 200; 100; Percent! | OK! | Cancel!; "Dialog
Example")
DialogAddPushButton("Dialog1"; "PushBttn1"; 153; 35; 38; 14; NonDefaultBttn!;
"Add Ctrl")
DialogAddPushButton("Dialog1"; "PushBttn2"; 153; 55; 38; 14; NonDefaultBttn!;
"Modify")
DialogShow ("Dialog1"; "WordPerfect"; Msg)
CallbackWait
Quit
Label(Msg)
If (Msg[5] = 274)
DialogDestroy ("Dialog1")
CallbackResume
Return
Endif
Switch (Msg[3])
CaseOf "OKBttn": MessageBox(x; "OK Button";
"You pressed OK"; IconInformation!)
CaseOf "CancelBttn":
DialogDestroy("Dialog1")
CallBackResume
Return
CaseOf "PushBttn1":
DialogAddEditBox ("Dialog1"; "EditCtrl";
10; 10; 120; 50; Left! | Multiline!; vText; 100)
RegionSetWindowText ("Dialog1.EditCtrl";
"Modify text.")
RegionSetFocus ("Dialog1.EditCtrl")
CaseOf "PushBttn2":
vMod := RegionGetModified ("Dialog1.EditCtrl")
MessageBox (x; "Modify List Box"; vMod)
RegionSetFocus ("Dialog1.EditCtrl")
EndSwitch
Return
Label (ErrorMsg)
MessageBox (x; "Error"; "You pressed Modify before Add Ctrl."; IconExclamation!)
Return
8102
APPLICATION(A1; "WordPerfect"; Default; "US")
OnError (ErrorMsg)
DialogDefine ("Dialog1"; 50; 50; 200; 100; Percent! | OK! | Cancel!; "Dialog
Example")
DialogAddPushButton("Dialog1"; "PushBttn1"; 153; 35; 38; 14; NonDefaultBttn!;
"Add Ctrl 1")
DialogAddPushButton("Dialog1"; "PushBttn2"; 153; 55; 38; 14; NonDefaultBttn!;
"Add Ctrl 2")
DialogShow ("Dialog1"; "WordPerfect"; Msg)
CallbackWait
Quit
Label(Msg)
If (Msg[5] = 274)
DialogDestroy ("Dialog1")
CallbackResume
Return
Endif
Switch (Msg[3])
CaseOf "OKBttn": MessageBox(x; "OK Button";
"You pressed OK"; IconInformation!)
CaseOf "CancelBttn":
DialogDestroy("Dialog1")
CallBackResume
Return
CaseOf "PushBttn1":
DialogAddBitmap ("Dialog1"; "BCtrl"; 10;
10; 50; 50; SizeBmpToCtl!; "c:\windows\cars.bmp")
CaseOf "PushBttn2":
RegionSetBitmapFilename ("Dialog1.BCtrl"
"c:\windows\arcade.bmp")
EndSwitch
Return
Label (ErrorMsg)
MessageBox (x; "Error"; "You pressed Add Ctrl 2 before Add Ctrl 1"; IconInformation!)
Quit