November 28, 201411 yr Newbies How many times a day do you double-click to select text in a "Specify Calculation" window, and it selects the space at the end of the text? And then if you double-click a field it consumes the selected space character, and the next time you double-click the ")" or the ";" gets selected and consumed.  I find myself fumbling over entering function parameters all the time, on the Windows platform, so I finally broke down and created an AutoHotKey script that helps me select the parameter without selecting parentheses, spaces and semicolons.  Typical Double-click gives me this selection: or this  AutoHotKey Control-key+Single-click gives me this selection:  or this  AutoHotKey Script:   ;;;; Written by Jim Dee ;;;; For use with FileMaker's variously named Calculation Windows ;;;; Control + Left Mouse Button click on a parameter in the calculation window and your ;;;; selection will be reselected without the trailing Parentheses, Spaces and Semicolons ;;;; #If WinActive("Edit Expression") or WinActive("Specify Calculation") or WinActive("Edit Custom Function") ~^lbutton:: {  keywait, Ctrl  CB_Old := Clipboard  Send, ^{Left}  Send, +^{Right}  Send, ^c  clipwait ; sleep 2000  CB := Clipboard  Length := StrLen(CB)  Send, ^{Left}  Count := 1  loop %length% {   nC := SubStr(CB, Count, 1)   if (nC = "(") {    Send, {Right}   } else if (nC = ";") {    Break   } else if (nC = " ") {    Break   } else if (nC = ")") {    Break   } else {    Send, +{Right}   }   Count := Count + 1  }  Clipboard = %CB_Old% ; msgbox %length% %CB%- } return #IfWinActive Return   AutoHotKey Website:  http://www.autohotkey.com/  I hope someone else can make use of this too.  Jim Dee
November 29, 201411 yr That sounds cool, Jim, I'll try it. I use AHK just for text expansion and it's great. Sometimes I'll get a little fancy with stuff like: ::ie::IsEmpty( ){Left}{Left} ... or inserting the date within a text string but that's about it. Working with Windows has caused me to get compulsive about surrounding text strings with spaces, just so I can easily select them later.
November 29, 201411 yr Author Newbies Tom, I hadn't used AutoHotKey for FileMaker (used it for lots of other things) until very recently so I'm definitely going to expand my use for things like this in FM. I'm going to change a couple things about your key and use it too. I usually use the *, which will cause the keys to fire immediately after they are entered, however I also use two spaces after the key "ie " so that it takes two keys to fire the result. This way it won't accidentally fire when I type a word like Christie or Smoothie with a space after it. #If WinActive("Edit Expression") or WinActive("Specify Calculation") or WinActive("Edit Custom Function") :*:ie ::IsEmpty( ){Left}{Left} :*:gf ::GetField ( ){Left}{Left} ... #IfWinActive Return I really wanted to change the double-click in the calculation windows but I couldn't figure out a way to do it without messing up the double-click for the fields and functions lists. Also, the Control-key+Single-click takes some getting used to since the script doesn't fire until the Control-key is released. If anyone has some ideas to make it better, please let me know. Thank you, Jim
November 30, 201411 yr Author Newbies Also, below is for formatting Case, Let and If statements... You'll need to type "case", "let" or "if" followed by two spaces to trigger. :*:Case :: { Send, Case ({enter} Send, ^{Tab}test1 `; result1 `;{enter} Send, ^{Tab}test2 `; result2 `;{enter} Send, ^{Tab}test3 `; result3 `;{enter} Send, ^{Tab}test4 `; result4 `;{enter} Send, ^{Tab}defaultResult{enter} Send, ){enter} } return :*:let :: { Send, Let ({enter} Send, ^{Tab}[{enter} Send, ^{Tab}^{Tab}var1 = expression1 `;{enter} Send, ^{Tab}^{Tab}var2 = expression2{enter} Send, ^{Tab}] `;{enter} Send, ^{Tab}calculation{enter} Send, ){enter} } return :*:if :: { Send, If ( test `;{enter} Send, ^{Tab}resultOne `;{enter} Send, ^{Tab}resultTwo{enter} Send, ){enter} } return
December 1, 201411 yr Nice. Here's my little collection of AHK for FileMaker. The last one doesn't work, the part after "text" is omitted when it expands. Do you happen to know the correct syntax? ; FILEMAKER ::getkey::Get(ActiveModifierKeys) ::getrow::Get(ActivePortalRowNumber) ::getcd::Get(CurrentDate) ::getct::Get(CurrentTime) ::getfc::Get(FoundCount) ::getle::Get(LastError) ::getlm::Get(LastMessageChoice) ::getln::Get(LayoutName) ::getrn::Get(RecordNumber) ::getsp::Get(ScriptParameter) ::getsr::Get(ScriptResult) ::getwh::Get(WindowHeight) ::getwl::Get(WindowLeft) ::getwm::Get(WindowMode) ::getwn::Get(WindowName) ::getwt::Get(WindowTop) ::getww::Get(WindowWidth) ::fmm::FileMaker ::ie::IsEmpty( ){Left}{Left} ::su::Substitute( text ; [ "" ; "" ]; [ "" ; "" ]; [ "" ; "" ] )
December 1, 201411 yr Author Newbies You'll need to escape the quotes and semicolons, like this... :*:su ::Substitute( text `; [ `"`" `; `"`" ]; [ `"`" `; `"`" ]; [ `"`" `; `"`" ] )
December 2, 201411 yr Thanks for that. Not working quite right for me, though -- I've tried all kinds of escaping combos and it expands the way I want, except it appends this extra bit at the end: """"]""""]""""]) It's weird. I found the docs, and I see that you only need to escape semicolons that are preceded by a space. And pairs of quotes normally resolve to a single quote. But even if I "normalize" the command so it has no escapes at all, like so: ::su::Substitute( text; [ "aaa"; "bbb" ]; [ "ccc"; "ddd" ] ) The result is: Substitute( text; [ "aaa"; "bbb" ]; [ "ccc"; "ddd" ] ) """"]""""])
December 2, 201411 yr Author Newbies What version of AUTOHOTKEY are you using? I currently have version v1.1.13.00. Is that still that last line in your AHK file? I added the key defined exactly as it is above - :*:su ::Substitute( text `; [ `"`" `; `"`" ]; [ `"`" `; `"`" ]; [ `"`" `; `"`" ] ) - and it works perfectly.
December 2, 201411 yr I figured it out -- it's the auto-complete settings of Notepad++, which is how I was testing. Argh! Works just fine in FileMaker. Thanks again!
Create an account or sign in to comment