In many cases you can avoid doing this calculation. For example, if you just need to display something after the string, you can pass multiple arguments to Text(, e.g. Text(row,col,Str1,Str2).
If you need to display Str1 then at a later point display Str2 after it, then instead of trying to measure Str1, just display it a second time when displaying Str2, and use the method above (this is useful in custom input, for instance).
If you need to display lots of text to the screen and you want it to wrap, assign a special character to mean "wrap the string here" and use inString( and sub( to separate the text into lines. Sometimes it might save on space to pad each line of text to a fixed length with spaces, and then know that every line is 30 characters long.
You might be able to simulate the calculation builderboy describes by drawing a horizontal line under the text, writing the text, and then measuring how much of it has been erased using pxl-Test(. The process of finding the last white pixel in the line can be sped up if, instead of a For( loop, you started with a 'guess' in the middle of the screen, and adjusted the guess in increments of 24, 12, 6, 3, 1, 1. I don't know if this is going to be very fast, though, and it has to be for it to not look ugly when you do it.