|
"Two-key" macros can
help organize macros under a common keystroke combination. Press
one key to play the macro, then another to perform some action. |
|
NOTE: The following
material assumes you know how to edit macros and make changes.
See the bottom of this page about copying macro code from a web
page into WordPerfect. |
Here are some of "2-key"
macros for WP. They can be assigned to a keystroke combination.
For help assigning macros to keys, click here.
When the first macro is played
it will wait for any alphanumeric key (as well as Backspace,
Delete, and Ctrl+Enter) and then take whatever action is set
up for that key in the CaseOf commands.
The second macro uses the Char()
command to display a small dialog and get the second keystroke.
It will then take whatever action is set up for that key in the
CaseOf commands.
The third macro, written by Roy
Lewis and posted on WP Universe, uses push buttons on a menu
as the second keystroke.
Another macro on this site, QWIKSET, uses a push-button
menu, where the push buttons can also be "pushed" with
a keyboard key -- making the macro a "2-key" macro.
You press a key combination (e.g., <Alt+Z>) then press
a second letter or number. With QwikSet, this causes the macro
to dismiss the menu and execute the command.
|
SAMPLE MACRO
#1 |
|
// Macro begins
here -
OnCancel(End@)
OnError(End@)
PauseKey(Any!) // Wait for any
key to be pressed
// Depending on which key is
pressed, carry out the action(s) below - Switch(?PauseKey)
// Note the following 6 examples:
// They are intended to demonstrate the general command format.
// However, if the macro is played "as is," they would
simply
// cause the macro to terminate, so you must insert macro
// commands that perform some action after each CaseOf command
// Note that since there is a
Default command at the end of
// all commands to terminate the macro, any keys that are
// not assigned to a CaseOf statement will cause the macro to
end.
CaseOF ("0"):
CaseOF ("1"):
CaseOF ("2"):
CaseOF ("a"):
CaseOF ("b"):
CaseOF ("c"):
// ... etc.
// The following Default command
executes if the second key is
// something other that a key specified in the CaseOF commands
above
Default: vKey:=?Pausekey
MessageBox(; "No key assigned"; "The second key
you just pressed, < " +vKey+ " >, has not been
assigned to this macro." +NToC(0F90Ah)+ "Edit this
macro and assign the key inside the macro's Switch command.")
Quit
Endswitch
Label(End@)
Quit
// Macro ends
here |
|
If, for example, the macro had
this CaseOf statement-
CaseOF ("q"): If(?Substructure)
SubstructureExit Endif CloseNoSave() Go(End@)
- and the macro was saved and
assigned to the <Ctrl+k> keys, then pressing <Ctrl+kq>
would cause the current file to be closed without saving it (i.e.,
it would "quit" the file). (Remember WordStar? This
is one of WordStar's commands.) |
|
SAMPLE MACRO
#2
The next macro is slightly less
complicated, and has the virtue of prompting the user with a
dialog box. However, some people are annoyed with such a dialog,
and may prefer the first dialog-less macro above.
Note that
the accented letters used in the CaseOf commands shown in the
example below were entered using the numeric keypad. For example,
the è between the quote marks in the third Type() command
was entered using <Alt+0232> on the numeric keypad. A list
of the numerical values for these special characters can be found
in the Windows character map (Start, Programs, Accessories, System
Tools, Character Map). |
|
// Macro begins
here -
OnCancel(End@)
OnError(End@)
Char(nextc; "Enter a vowel:
")
vKey:=NToC(nextc)
Switch(NToC(nextc))
CaseOf "a": Type("à")
CaseOf "A": Type("À")
CaseOf "e": Type("è")
CaseOf "E": Type("È")
CaseOf "u": Type("ù")
CaseOf "U": Type("Ù")
Default: MessageBox(;
"No key assigned"; "The second key you just pressed,
< " +vKey+ " >, has not been assigned in this
macro." +NToC(0F90Ah)+ "Edit this macro and assign
the key inside the macro's Switch command.") Quit
EndSwitch
Label(End@)
Quit
// Macro ends
here |
|
TIP
- inserting accented characters:
Since the Sample Macro #2 above
inserts accented letters, you might want to know that there are
at least three alternative ways to create accented characters
without using a macro or prompts.
According to Charles Rossiter,
Corel C_Tech:
1. "Get an International
Keyboard, or apply [in Control Panel, Keyboard] the US International
keyboard definition to a standard US keyboard. This then works
in all applications. [Windows XP users: For instructions, see
the Microsoft Support Article # 306560, "How To Use the
United States-International Keyboard Layout in Windows XP,"
at http://support.microsoft.com/default.aspx?scid=kb;en-us;306560]
2. In WPWin, create a series
of keyboard keystrokes. For example, I use Alt+e for e-acute,
Ctrl+Shift+E for E-grave, Alt+a for a-umlaut, Alt+Shift+O for
O-umlaut, Alt+Shift+C for C-cedilla, etc. There is no conflict
with other Alt-key shortcuts (eg Alt+a for T_a_ble): Alt+a gives
a-umlaut; Alt,a gives T_a_ble (i.e., press and release the Alt
key, then press a)."
NOTE: To use the second method
(assign the accented letter to a key combination), follow the
steps outlined here (see especially
the section, "For keystrokes").
3. Use a utility such as the
free program, AllChars, at http://allchars.zwolnet.com/.
See the Introduction link on the home page for more information.
(Not tested by this author, but recommended by other knowledgeable
WordPerfect users.)
A more broadly useful program
(not free, but a trial version is available) is As-U-Type
at http://www.asutype.com/,
which works well with WordPerfect's QuickCorrect, too.
|
|
SAMPLE MACRO
#3
See Roy Lewis's macro on WP Universe
at http://www.wpuniverse.com/vb/showthread.php?postid=40594#post40594.
When a button is pushed from the macro's main dialog, this example
macro types a word corresponding to the button's label. You will
need to modify the macro's menu and other commands, but those
familiar with writing WP macros should have little trouble doing
this. |
|
TO COPY A MACRO
from a newsgroup message or web page:
Select all text from beginning
to end, and copy it to the Windows clipboard with Ctrl+C or Edit,
Copy. Next, open a blank document in WordPerfect and click on
Tools, Macro, Macro Toolbar to display the Macro Toolbar. Position
your cursor after any codes in Reveal Codes, and click on Edit,
Paste Special, Unformatted Text to paste the macro code into
the WP document.
Be sure to check for long lines
that may have been wrapped into two or more lines with a hard
return (HRt) between them; remove the hard return(s) to "glue"
the lines back together.
Save it with the Save & Compile
button on the Macro Toolbar. This will save it to your default
macros folder.
Note that you may need to edit
the Application() command at the top of the code (if one exists)
to change the language code from "EN" (or "US")
to the language version you are using.
Or, if you are using just one
language version of WP, just delete the last semicolon along
with the "EN," to get something like this: Application
(WordPerfect; "WordPerfect"; Default) |
|