MakaPakaTobyHannah Posted February 28, 2020 Report Share Posted February 28, 2020 I recently developed an insane script of about 4,000 lines (ca. 80 pages) converting abstruse musical input code into a completely different language. I will make a video of that at some point and post it on YouTube. Anyway: of course, I use text boxes as stops copiously to debug my scripts. I wish there were a preference setting with which to color code certain items; I color code all my text boxes dark blue background, bright yellow text font. Annoying to have to do that individually each time. In a script of 4,000 lines, it is often necessary to activate a bunch of text boxes to find out where the error occurs. When a text box finally displays a faulty message, I know that somewhere before that text box, the error occurs. In a script of thousands of lines, and multiple text boxes displaying, how to you know where that particular text box is located? I have come to put line numbers at the top of all my debugging text boxes. But when the code then changes (additions or deletions), those line numbers are then off. Can you all confirm that, in fact, there is no way to put some kind of integer variable into a text box that identifies the line number of the text box? I think that would be cool to have. Cheers. Quote Link to comment Share on other sites More sharing options...
Cory Posted February 28, 2020 Report Share Posted February 28, 2020 I don't think there's a way to get the line number. I never have this problem because I avoid writing any long macros. My macros tend to be no more than a couple visible pages and I create a multitude of sub-macros for distinct functions. It also helps keep the variables manageable. I also will log the entrance to each of these with some information. "Starting file upload" and at the end "File uploaded in X seconds". Of course for X and other variables, I will put them in the log file So the log file entry might be "Uploading c:\users\cory\somefile.txt". I also log errors. Have you explored all the debug features? Why don't you use breakpoints? I've helped many people in the past and they come up with all these strange ways of keeping track of what is happening when they could be using built in tools. Like the "Log Messages" feature or the Show Variables window. Quote Link to comment Share on other sites More sharing options...
rberq Posted February 28, 2020 Report Share Posted February 28, 2020 Like Cory, I prefer to write lots of trace information to the log file. For example, you could break up your code into logical sections, numbered sequentially. Put a comment line at the beginning of each section, containing the section number. Right after the section-number comment, write a generic "entering section xxxx" trace message to the log file. Also include the section number in each of the error text box displays so you will know right where it failed. For normal operation vs. a debugging situation, you can turn the trace logging on and off. Just define a variable -- TRACE for example -- at the beginning of the macro and set its value to zero (no trace) or one (trace). Then at the beginning of each numbered section, the logic would be: IF TRACE = 1 WRITE SECTION NUMBER TO LOG FILE ENDIF You could do the same to activate/deactivate the diagnostic text boxes: IF TRACE = 1 DISPLAY TEXT BOX ENDIF When you need to debug (or not), simply change the single line at the start of the macro setting TRACE to 1 or 0. Lots easier than going through thousands of lines of code activating or deactivating logging commands and text box displays. It takes some initial effort to set it all up, but in the long run you will save effort. Quote Link to comment Share on other sites More sharing options...
acantor Posted February 29, 2020 Report Share Posted February 29, 2020 19 hours ago, MakaPakaTobyHannah said: I wish there were a preference setting with which to color code certain items; I color code all my text boxes dark blue background, bright yellow text font. Annoying to have to do that individually each time. No need to repeat these repetitive steps. Write a macro! Here is the MEP script I use to change the background colour of selected lines to yellow. As I read through the code, I don't remember why the line to "unfurl" the Edit menu is there. I've been using the macro for years, and my guess is that the line is superfluous. But you can test that yourself! Anyways, you can adapt the script to format or set Macro Express instructions anyway you like. Text Type (Simulate Keystrokes): <ALT>e // Activate &Edit menu Delay: 100 milliseconds Text Type (Simulate Keystrokes): <ARROW UP><ARROW DOWN> // Unfurl menu... Text Type (Simulate Keystrokes): <END> // Go to last item on menu Repeat Start (Repeat 6 times) // Select "Background Color" Text Type (Simulate Keystrokes): <ARROW UP> End Repeat Text Type (Simulate Keystrokes): <ENTER> Wait for Window Title: Color Text Type (Simulate Keystrokes): <HOME> // Go to top left corner... Text Type (Simulate Keystrokes): <ARROW RIGHT> // Navigate to Yellow Text Type (Simulate Keystrokes): <SPACE> // Select Yellow Text Type (Simulate Keystrokes): <ENTER> // Done! <TEXT TYPE Action="0" Text="<ALT>e" _COMMENT="Activate &Edit menu"/> <DELAY Flags="\x02" Time="100"/> <TEXT TYPE Action="0" Text="<ARROW UP><ARROW DOWN>" _COMMENT="Unfurl menu..."/> <TEXT TYPE Action="0" Text="<END>" _COMMENT="Go to last item on menu"/> <REPEAT START Start="1" Step="1" Count="6" Save="FALSE" _COMMENT="Select \"Background Color\""/> <TEXT TYPE Action="0" Text="<ARROW UP>"/> <END REPEAT/> <TEXT TYPE Action="0" Text="<ENTER>"/> <WAIT FOR WINDOW TITLE Title="Color" Partial="FALSE" Wildcards="FALSE" Indefinite="FALSE" Hours="0" Minutes="0" Seconds="2"/> <TEXT TYPE Action="0" Text="<HOME>" _COMMENT="Go to top left corner..."/> <TEXT TYPE Action="0" Text="<ARROW RIGHT>" _COMMENT="Navigate to Yellow"/> <TEXT TYPE Action="0" Text="<SPACE>" _COMMENT="Select Yellow" _BACK="0080FFFF"/> <TEXT TYPE Action="0" Text="<ENTER>" _COMMENT="Done!"/> Quote Link to comment Share on other sites More sharing options...
kunkel321 Posted March 2, 2020 Report Share Posted March 2, 2020 Conditional formatting to colorize lines of code based on different properties would be pretty cool. I thought maybe saving snippets would work too, but that doesn't seem to retain the colors. Maybe Acantor's script could be adapted to look for properties (like whether the line of code is a message box.) Quote Link to comment Share on other sites More sharing options...
acantor Posted March 2, 2020 Report Share Posted March 2, 2020 6 hours ago, kunkel321 said: Maybe Acantor's script could be adapted to look for properties (like whether the line of code is a message box.) The script can be adapted. Select a line in an MEP script and this script will report if it's a Text Type, If Variable, Message Box, or Comment Clipboard Copy Delay: 100 milliseconds Variable Set String %x% from the clipboard contents If Variable %x% Contains "<TEXT TYPE" Text Box Display: This line is a Type Text! End If If Variable %x% Contains "<IF VARIABLE" Text Box Display: This line is an If Variable! End If If Variable %x% Contains "<MESSAGEBOX" Text Box Display: This line is a Message Box! End If If Variable %x% Contains "<COMMENT" Text Box Display: This line is a Comment! End If // TEST LINES // Check the ability to check the content of an MEP instruction by selecting one of these four lines, then running this macro. MessageBox: Testing Text Type (Simulate Keystrokes): If Variable %x% Contains "<IF VARIABLE" <CLIPBOARD COPY/> <DELAY Flags="\x02" Time="100"/> <VARIABLE SET STRING Option="\x02" Destination="%x%" NoEmbeddedVars="FALSE"/> <COMMENT/> <IF VARIABLE Variable="%x%" Condition="\x06" Value="<TEXT TYPE" IgnoreCase="FALSE"/> <TEXT BOX DISPLAY Title="This line is a Type Text!" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0"/> <END IF/> <COMMENT/> <IF VARIABLE Variable="%x%" Condition="\x06" Value="<IF VARIABLE" IgnoreCase="FALSE"/> <TEXT BOX DISPLAY Title="This line is an If Variable!" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0"/> <END IF/> <COMMENT/> <IF VARIABLE Variable="%x%" Condition="\x06" Value="<MESSAGEBOX" IgnoreCase="FALSE"/> <TEXT BOX DISPLAY Title="This line is a Message Box!" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0"/> <END IF/> <COMMENT/> <IF VARIABLE Variable="%x%" Condition="\x06" Value="<COMMENT" IgnoreCase="FALSE"/> <TEXT BOX DISPLAY Title="This line is a Comment!" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0"/> <END IF/> <COMMENT/> <COMMENT/> <COMMENT Value="TEST LINES"/> <COMMENT Value="Check the ability to check the content of an MEP instruction by selecting one of these four lines, then running this macro." _BACK="0080FFFF"/> <MESSAGEBOX Caption="Testing" Message="%x%" Icon="0" _ENABLED="FALSE" _BACK="0080FFFF"/> <TEXT TYPE Action="0" _ENABLED="FALSE" _BACK="0080FFFF"/> <IF VARIABLE Variable="%x%" Condition="\x06" Value="<IF VARIABLE" IgnoreCase="FALSE" _ENABLED="FALSE" _BACK="0080FFFF"/> Quote Link to comment Share on other sites More sharing options...
kunkel321 Posted March 2, 2020 Report Share Posted March 2, 2020 1 hour ago, acantor said: The script can be adapted. Select a line in an MEP script and this script will report if it's a Text Type, If Variable, Message Box, or Comment It does indeed! Quote Link to comment Share on other sites More sharing options...
kunkel321 Posted March 2, 2020 Report Share Posted March 2, 2020 Re: "Unfurl menu," Didn't older versions of Windows collapse (furl) menus such that less-frequently used items were hidden? Quote Link to comment Share on other sites More sharing options...
kunkel321 Posted March 2, 2020 Report Share Posted March 2, 2020 For fun I tried to combine Acantor's two scripts (code box below). WARNING -- It doesn't stop looping at the end like it's supposed to. It's supposed to ... Set clipboard to %currLine% at the start of the loop, then set %prevLine% to %currLine% at the end. And keep looping until prevLine = currLine. So once the last line is checked twice in a row, they should be the same.. It think that logic is correct(???) Anyway, the coloring part works (there has to be a message box and/or comment for it to do anything). Assign a hotkey to the macro, then open your other macro (that you want to color) and click on line 1, then do the hotkey. Note: Acantor's "If %x%" macro above looks to 4 different things. I only used 2 of them.... I guess in theory a person could colorize as many different types of things as they wanted. If you had a bunch though, it would probably be good to have most of that code in a different macro, then call it with the main macro. Maybe(?) Repeat Until %currLine% Equals "prevLine" Clipboard Copy Delay: 100 milliseconds Variable Set String %currLine% from the clipboard contents If Variable %currLine% Contains "<MESSAGEBOX" Text Type (Simulate Keystrokes): <ALT>e // Activate &Edit menu Delay: 100 milliseconds Text Type (Simulate Keystrokes): <END> // Go to last item on menu Repeat Start (Repeat 6 times) // Select "Background Color" Text Type (Simulate Keystrokes): <ARROW UP> End Repeat Text Type (Simulate Keystrokes): <ENTER> Wait for Window Title: Color Text Type (Simulate Keystrokes): <HOME> // Go to top left corner... Text Type (Simulate Keystrokes): <ARROW RIGHT> // Navigate to Yellow Text Type (Simulate Keystrokes): <SPACE> // Select Yellow Text Type (Simulate Keystrokes): <ENTER> // Done! End If If Variable %currLine% Contains "<COMMENT" Text Type (Simulate Keystrokes): <ALT>e // Activate &Edit menu Delay: 100 milliseconds Text Type (Simulate Keystrokes): <END> // Go to last item on menu Repeat Start (Repeat 6 times) // Select "Background Color" Text Type (Simulate Keystrokes): <ARROW UP> End Repeat Text Type (Simulate Keystrokes): <ENTER> Wait for Window Title: Color Text Type (Simulate Keystrokes): <HOME> // Go to top left corner... Text Type (Simulate Keystrokes): <ARROW RIGHT><ARROW RIGHT> // Navigate to Green Text Type (Simulate Keystrokes): <SPACE> // Select Yellow Text Type (Simulate Keystrokes): <ENTER> // Done! End If Variable Set String %prevLine% to "%currLine%" Text Type (Simulate Keystrokes): <ARROW DOWN> // Down to next line of code. End Repeat MessageBox: All lines checked. <REPEAT UNTIL Variable="%currLine%" Condition="\x00" Value="prevLine"/> <CLIPBOARD COPY/> <DELAY Flags="\x02" Time="100"/> <VARIABLE SET STRING Option="\x02" Destination="%currLine%" NoEmbeddedVars="FALSE"/> <COMMENT/> <IF VARIABLE Variable="%currLine%" Condition="\x06" Value="<MESSAGEBOX" IgnoreCase="FALSE"/> <TEXT TYPE Action="0" Text="<ALT>e" _COMMENT="Activate &Edit menu"/> <DELAY Flags="\x02" Time="100"/> <TEXT TYPE Action="0" Text="<END>" _COMMENT="Go to last item on menu"/> <REPEAT START Start="1" Step="1" Count="6" Save="FALSE" _COMMENT="Select \"Background Color\""/> <TEXT TYPE Action="0" Text="<ARROW UP>"/> <END REPEAT/> <TEXT TYPE Action="0" Text="<ENTER>"/> <WAIT FOR WINDOW TITLE Title="Color" Partial="FALSE" Wildcards="FALSE" Indefinite="FALSE" Hours="0" Minutes="0" Seconds="2"/> <TEXT TYPE Action="0" Text="<HOME>" _COMMENT="Go to top left corner..."/> <TEXT TYPE Action="0" Text="<ARROW RIGHT>" _COMMENT="Navigate to Yellow"/> <TEXT TYPE Action="0" Text="<SPACE>" _COMMENT="Select Yellow"/> <TEXT TYPE Action="0" Text="<ENTER>" _COMMENT="Done!"/> <END IF/> <COMMENT/> <IF VARIABLE Variable="%currLine%" Condition="\x06" Value="<COMMENT" IgnoreCase="FALSE"/> <TEXT TYPE Action="0" Text="<ALT>e" _COMMENT="Activate &Edit menu"/> <DELAY Flags="\x02" Time="100"/> <TEXT TYPE Action="0" Text="<END>" _COMMENT="Go to last item on menu"/> <REPEAT START Start="1" Step="1" Count="6" Save="FALSE" _COMMENT="Select \"Background Color\""/> <TEXT TYPE Action="0" Text="<ARROW UP>"/> <END REPEAT/> <TEXT TYPE Action="0" Text="<ENTER>"/> <WAIT FOR WINDOW TITLE Title="Color" Partial="FALSE" Wildcards="FALSE" Indefinite="FALSE" Hours="0" Minutes="0" Seconds="2"/> <TEXT TYPE Action="0" Text="<HOME>" _COMMENT="Go to top left corner..."/> <TEXT TYPE Action="0" Text="<ARROW RIGHT><ARROW RIGHT>" _COMMENT="Navigate to Green"/> <TEXT TYPE Action="0" Text="<SPACE>" _COMMENT="Select Yellow"/> <TEXT TYPE Action="0" Text="<ENTER>" _COMMENT="Done!"/> <END IF/> <COMMENT/> <VARIABLE SET STRING Option="\x00" Destination="%prevLine%" Value="%currLine%" NoEmbeddedVars="FALSE"/> <TEXT TYPE Action="0" Text="<ARROW DOWN>" _COMMENT="Down to next line of code."/> <END REPEAT/> <MESSAGEBOX Caption="All lines checked." Message="All lines checked." Icon="0"/> EDIT LATER.... There were missing %% on the "Repeat until" command. I fixed that, but it's still not working correctly. Quote Link to comment Share on other sites More sharing options...
acantor Posted March 3, 2020 Report Share Posted March 3, 2020 The reason the script isn't working is that there is no code to select the current line. You need to do something like this: <HOME><SHIFT><END> to select the line before copying it to the clipboard Quote Link to comment Share on other sites More sharing options...
MakaPakaTobyHannah Posted March 3, 2020 Author Report Share Posted March 3, 2020 I have been away from the computer for several days, but now I really want to thank everybody for this most valuable feedback! Very cool, indeed. 😉 Quote Link to comment Share on other sites More sharing options...
MakaPakaTobyHannah Posted March 3, 2020 Author Report Share Posted March 3, 2020 10 hours ago, acantor said: The reason the script isn't working is that there is no code to select the current line. You need to do something like this: <HOME><SHIFT><END> to select the line before copying it to the clipboard I played with this a bit and came up with a slightly different approach. Kunkel321’s approach didn’t work because it stayed in an infinite loop. Also, I haven’t inspected this, but I think in theory it’s possible that prevLine = currLine, and this appears somewhere within the script (not just at the end). In that case, the process would abort. So I thought, let’s start by copying the entire script to the clipboard. Assign that to a variable. Then, count all carriage returns and line feeds. That will tell you how many lines there actually are in the script. Use that counter variable for set a repeat loop. When the repeat loop is done, you’re at the end of the script. I have tested this now, and it works just fine on my system. Definitely NOT sexy! I would think it would be better to modify the script code directly for the color coding, rather than navigating through menus. I didn’t attempt that (yet). I did notice that, because the script contained variable definitions (apparently), the "trim" command failed, as apparently the script attempt to locate those variables. So I opted for replacing all % signs with PLACEHOLDER to circumvent that problem. Perhaps someone here can enlighten me how to deal with that issue (it’s come up for me before). Anyway, here is my script now; would love to know if it works for you. This is just set up at the moment to highlight text boxes dark blue background, bright yellow text font. Here it is: <VARIABLE SET TO ASCII CHAR Value="13" Destination="%T13%" _COMMENT="assign carriage return to %T13%"/> <VARIABLE SET TO ASCII CHAR Value="10" Destination="%T10%" _COMMENT="assign line feed to %T10%"/> <VARIABLE SET STRING Option="\x00" Destination="%CRLF%" Value="%T13%%T10%" NoEmbeddedVars="FALSE"/> <KEYSTROKE SPEED Delay="16"/> <TEXT TYPE Action="0" Text="<CONTROL>a"/> <CLIPBOARD COPY/> <VARIABLE SET STRING Option="\x02" Destination="%scriptToClipboard%" NoEmbeddedVars="FALSE"/> <VARIABLE MODIFY STRING Option="\x0F" Destination="%scriptToClipboard%" ToReplace="%" ReplaceWith="PLACEHOLDER" All="TRUE" IgnoreCase="FALSE" NoEmbeddedVars="FALSE"/> <VARIABLE MODIFY STRING Option="\x00" Destination="%scriptToClipboard%"/> <REPEAT UNTIL Variable="%scriptToClipboard%" Condition="\x07" Value="%CRLF%"/> <VARIABLE MODIFY STRING Option="\x0F" Destination="%scriptToClipboard%" ToReplace="%CRLF%" ReplaceWith="BunnyRabbit" All="FALSE" IgnoreCase="FALSE" NoEmbeddedVars="FALSE"/> <VARIABLE MODIFY INTEGER Option="\x07" Destination="%counter%"/> <END REPEAT/> <VARIABLE MODIFY INTEGER Option="\x01" Destination="%counter%" Value1="%counter%" Value2="2"/> <VARIABLE MODIFY STRING Option="\x0F" Destination="%scriptToClipboard%" ToReplace="BunnyRabbit" ReplaceWith="BunnyRabbit%CRLF%" All="TRUE" IgnoreCase="FALSE" NoEmbeddedVars="FALSE"/> <TEXT BOX DISPLAY Title="This is the complete script" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Tahoma;}{\\f1\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20 There are %counter% lines\\f1 \r\n\\par %scriptToClipboard%\r\n\\par }\r\n" Left="Left" Top="Center" Width="1921" Height="592" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0" _ENABLED="FALSE"/> <TEXT TYPE Action="0" Text="<HOME>"/> <CLIPBOARD COPY/> <VARIABLE SET STRING Option="\x02" Destination="%x%" NoEmbeddedVars="FALSE"/> <IF VARIABLE Variable="%x%" Condition="\x06" Value="<TEXT BOX DISPLAY" IgnoreCase="FALSE"/> <TEXT BOX DISPLAY Title="This line is a text box!" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0" _ENABLED="FALSE"/> <TEXT TYPE Action="0" Text="<ALT>e"/> <DELAY Flags="\x02" Time="100"/> <TEXT TYPE Action="0" Text="<END>"/> <REPEAT START Start="1" Step="1" Count="6" Save="FALSE"/> <TEXT TYPE Action="0" Text="<ARROW UP>"/> <END REPEAT/> <TEXT TYPE Action="0" Text="<ENTER>"/> <WAIT FOR WINDOW TITLE Title="Color" Partial="FALSE" Wildcards="FALSE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT TYPE Action="0" Text="<HOME><ARROW RIGHT><ARROW RIGHT><ARROW RIGHT><ARROW RIGHT><ARROW DOWN><ARROW DOWN><ARROW DOWN><SPACE><ENTER>"/> <DELAY Flags="\x02" Time="100"/> <TEXT TYPE Action="0" Text="<ALT>e"/> <DELAY Flags="\x02" Time="100"/> <TEXT TYPE Action="0" Text="<END>"/> <REPEAT START Start="1" Step="1" Count="7" Save="FALSE"/> <TEXT TYPE Action="0" Text="<ARROW UP>"/> <END REPEAT/> <TEXT TYPE Action="0" Text="<ENTER>"/> <WAIT FOR WINDOW TITLE Title="Color" Partial="FALSE" Wildcards="FALSE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT TYPE Action="0" Text="<HOME><ARROW RIGHT><ARROW DOWN><SPACE><ENTER>"/> <END IF/> <REPEAT START Start="1" Step="1" Count="%counter%" Save="FALSE"/> <TEXT TYPE Action="0" Text="<ARROW DOWN>"/> <CLIPBOARD COPY/> <VARIABLE SET STRING Option="\x02" Destination="%x%" NoEmbeddedVars="FALSE"/> <IF VARIABLE Variable="%x%" Condition="\x06" Value="<TEXT BOX DISPLAY" IgnoreCase="FALSE"/> <TEXT BOX DISPLAY Title="This line is a text box!" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0" _ENABLED="FALSE"/> <TEXT TYPE Action="0" Text="<ALT>e"/> <DELAY Flags="\x02" Time="100"/> <TEXT TYPE Action="0" Text="<END>"/> <REPEAT START Start="1" Step="1" Count="6" Save="FALSE"/> <TEXT TYPE Action="0" Text="<ARROW UP>"/> <END REPEAT/> <TEXT TYPE Action="0" Text="<ENTER>"/> <WAIT FOR WINDOW TITLE Title="Color" Partial="FALSE" Wildcards="FALSE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT TYPE Action="0" Text="<HOME><ARROW RIGHT><ARROW RIGHT><ARROW RIGHT><ARROW RIGHT><ARROW DOWN><ARROW DOWN><ARROW DOWN><SPACE><ENTER>"/> <DELAY Flags="\x02" Time="100"/> <TEXT TYPE Action="0" Text="<ALT>e"/> <DELAY Flags="\x02" Time="100"/> <TEXT TYPE Action="0" Text="<END>"/> <REPEAT START Start="1" Step="1" Count="7" Save="FALSE"/> <TEXT TYPE Action="0" Text="<ARROW UP>"/> <END REPEAT/> <TEXT TYPE Action="0" Text="<ENTER>"/> <WAIT FOR WINDOW TITLE Title="Color" Partial="FALSE" Wildcards="FALSE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT TYPE Action="0" Text="<HOME><ARROW RIGHT><ARROW DOWN><SPACE><ENTER>"/> <END IF/> <END REPEAT/> <TEXT BOX DISPLAY Title="Done" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Tahoma;}{\\f1\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\qc\\b\\f0\\fs20 Finished!\\f1 \r\n\\par }\r\n" Left="Center" Top="Center" Width="181" Height="112" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0"/> <MACRO STOP/> <COMMENT Value="Stuff below this kept here for reference."/> <CLIPBOARD COPY/> <DELAY Flags="\x02" Time="100"/> <VARIABLE SET STRING Option="\x02" Destination="%x%" NoEmbeddedVars="FALSE"/> <COMMENT/> <IF VARIABLE Variable="%x%" Condition="\x06" Value="<TEXT TYPE" IgnoreCase="FALSE"/> <TEXT BOX DISPLAY Title="This line is a Type Text!" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0"/> <END IF/> <COMMENT/> <IF VARIABLE Variable="%x%" Condition="\x06" Value="<IF VARIABLE" IgnoreCase="FALSE"/> <TEXT BOX DISPLAY Title="This line is an If Variable!" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0"/> <END IF/> <COMMENT/> <IF VARIABLE Variable="%x%" Condition="\x06" Value="<MESSAGEBOX" IgnoreCase="FALSE"/> <TEXT BOX DISPLAY Title="This line is a Message Box!" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0"/> <END IF/> <COMMENT/> <IF VARIABLE Variable="%x%" Condition="\x06" Value="<COMMENT" IgnoreCase="FALSE"/> <TEXT BOX DISPLAY Title="This line is a Comment!" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0"/> <END IF/> <IF VARIABLE Variable="%x%" Condition="\x06" Value="<TEXT BOX DISPLAY" IgnoreCase="FALSE"/> <TEXT BOX DISPLAY Title="This line is a text box!" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0"/> <END IF/> <COMMENT Value="TEST LINES"/> <COMMENT Value="Check the ability to check the content of an MEP instruction by selecting one of these four lines, then running this macro."/> Quote Link to comment Share on other sites More sharing options...
kunkel321 Posted March 3, 2020 Report Share Posted March 3, 2020 13 hours ago, acantor said: The reason the script isn't working is that there is no code to select the current line. You need to do something like this: <HOME><SHIFT><END> to select the line before copying it to the clipboard Are you sure this is right Acantor? If I navigate manually, I can just do <down arrow> then <ctrl>c, and it copies the line of code to the clipboard. Quote Link to comment Share on other sites More sharing options...
acantor Posted March 3, 2020 Report Share Posted March 3, 2020 When you press the arrow key to navigate to a line of text, does pressing Ctrl + c copy the entire line to the clipboard without the need to select the line? Quote Link to comment Share on other sites More sharing options...
terrypin Posted March 4, 2020 Report Share Posted March 4, 2020 On 2/29/2020 at 5:44 PM, acantor said: Here is the MEP script I use to change the background colour of selected lines to yellow Hi Alan, This command caused failure for me: Wait for Window Title: Color That has me fascinated, especially as I see that you personally spell 'colour' the same as I do! Is your version of MEP indeed AmericaniZed in that way? Using 6.1.3.1 here, and your macro works fine when I use the correct spelling 🙂 Terry Quote Link to comment Share on other sites More sharing options...
acantor Posted March 4, 2020 Report Share Posted March 4, 2020 Terry, Do you mean that this is what is working? Wait for Window Title "Colour" I don't think this would work for me, as the text of the MEP window title is "Color" not "Colour"! The instruction is actually not 100% necessary. The script should be reliable enough by substituting a short delay for a wait for window instruction. Quote Link to comment Share on other sites More sharing options...
terrypin Posted March 4, 2020 Report Share Posted March 4, 2020 Yes. That's what prompted my surprise that our respective MEP versions are apparently 'localised'. Quote Link to comment Share on other sites More sharing options...
acantor Posted March 4, 2020 Report Share Posted March 4, 2020 Terry, Are you sure you're not pulling an early April Fool's gag? Terry, because I regard you as an accurate reporter, your finding is very surprising! Quote Link to comment Share on other sites More sharing options...
terrypin Posted March 4, 2020 Report Share Posted March 4, 2020 Let's see if a few others from various countries can join the discussion! I'm guessing it's a Windows OS setting? Quote Link to comment Share on other sites More sharing options...
kunkel321 Posted March 5, 2020 Report Share Posted March 5, 2020 On 3/3/2020 at 9:15 AM, acantor said: When you press the arrow key to navigate to a line of text, does pressing Ctrl + c copy the entire line to the clipboard without the need to select the line? I think so(?) Here's a quick screencast. https://www.screencast.com/t/9zClrYOvVC EDIT: In the screencast I click on the top line, then arrow-down, then ctrl+c, then ctrl+v. The clipboard contents are shown in the Ditto clipboard extender. Quote Link to comment Share on other sites More sharing options...
acantor Posted March 5, 2020 Report Share Posted March 5, 2020 Ah ha! I forgot we were talking about the Macro Express Script Editor. Indeed, pressing the down arrow automatically selects the entire next line. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.