The story of a teenage scripter


Monday, April 14, 2014

Last week I was just browsing the TMS site, looking at the version numbers of existing products, when I saw TMS Scripter current version: 6.3. I see those numbers often and I’m used to them, but this time, I was a little bit shocked. Just like a father whose son is born and, in the blink of an eye, watches this son going to college in his eighteen, I was astonished to see how far TMS Scripter went, and for so long. It’s true that my oldest son is just about to turn 5 years-old, but for that my eyes didn’t even have to blink – they were wide open – so I can imagine how it might be for a father of a grown-up son. My second son is only 12 days old, and got me so worried last week to the point I went to the gym with a different tennis shoe in each foot and only noticed it when I came back home. I’m trying not to blink an eye. But I digress.

Thing is TMS Scripter is already a teenager. I have to face it. First version was released in 2001, but it was being already used in internal projects for at least three years. It’s interesting to see old family pictures, and the following one shows version 1.5 from November, 2001, when it was still called TatPascalScripter and had just a new featured added: COM interfaces support.

Since then, it had fourty-six – fourty-six! – releases, which added the following main features (in chronological order) that transformed TMS Scripter over the years:

  • Support for COM Interfaces
  • Basic Syntax
  • Delphi classes import tool
  • Debugger
  • Syntax highlight memo with breakpoints, etc.
  • Events support
  • Code completion
  • WebScripter
  • Watches
  • Thread support
  • Script-based libraries
  • DLL importing from script
  • Source explorer
  • Script-based forms
  • Complete IDE with form designer and object inspector
  • Automatic class import using new RTTI
  • Parameter hints
  • Script-based classes
  • Undo/Redo in form designer
  • Windows 64-bit support
  • Firemonkey Forms
  • Mac OS support

Besides, of course, constant language improvements, introduced over the releases, and support to all the new Delphi versions released, until the latest one, XE6, with no exception.

Over all those years and versions, full backward compatibility was kept, regression bugs were minimized and fixed, and I believe most of TMS Scripter users had a safe and peaceful life like, with full support and compatibility – including the famous migration from ANSI to UNICODE.

But what brings more satisfaction is to see the different way TMS Scripter affects many users. Yes, TMS customers are overall satisfied, enjoy the high number of features in our products, and appreciate the support we provide. But TMS Scripter is, of the products I manage, the one that receives more “emotional” comments. Users mention to be surprised every day with it, and comment how it constantly opens new doors in their applications. I believe one of the reasons for that is the fact that TMS Scripter is an “open” product, with so many different ways to use and applications, that it often requires (and allows) a great amount of creativity from its users, making them a kind of “artist” of their own software.

Yes, TMS Scripter is already a teenager. But more exciting things will come and its story doesn’t end here.

Wagner R. Landgraf


This blog post has received 3 comments. Add a comment.

Scripter Studio IDE with Office 2003 and Office 2007 themes


Wednesday, May 13, 2009

The latest release of TMS Scripter Studio Pro allows you to define a theme for the IDE (Integrated Development Environment). This feature requires other TMS products, like TMS AdvMenus and TAdvOfficeTabSet. So, if you are a TMS Component Pack customer or if you have a TMS VCL Subscription, you can get benefit for this new feature. It's very easy to do so. First of all, change AScript.Inc file to have the THEMED_IDE directive defined:

AScript.Inc file:
Now, when using TIDEDialog component, you can assign a TAdvAppStyler component to its AppStyler property. This way you link the TIDEDialog with the AppStyler, and whenever you change the style of AppStyler, the whole IDE theme will be changed:
{Running the Scripter IDE with Office 2003 Blue theme}
IDEDialog1.AppStyler := AdvAppStyler1;
AdvAppstyler1.Style := tsOffice2003Blue;

Wagner R. Landgraf


This blog post has not received any comments yet. Add a comment.

Scripter Studio - new language features for VBScript / Visual Basic users

Bookmarks:  The latest releases of TMS Scripter Studio and TMS Scripter Studio Pro included several improvements in Basic language syntax. End-users that are used to VBScript and Visual Basic programming will feel much more comfortable with the recent releases. Here is a summary of the improvements:

new statement

To create instances of new classes, you can use new statement with the same parameters as the Create constructor:
MyVar = new TLabel(Self)

const and var declarations

In previous versions you couldn't declare constants in Basic syntax using the "const" keyword. Now you can do that, and even better, you can also initialize variables with default values
  Msg = "Hello World"

Dim A as Integer = 5

Private and Public declaration

You can now define private variables, subs and functions. When a variable or function is declared as private, it is not accessible by other scripts. The default is public. Some examples:
DIM A as Integer    'public
Private B as String  'private
Public C as Char  'public

'public sub
SUB DoSomething
End Sub
'private function
Private Function MyFunction
End Function

Return statement

You can use Return statement to leave a sub of function, and return a value (only in functions, of course):
Function Max(A, B)
  If (A > B) Then
    Return A
    Return B
  End if
End Function

Single line If

There is no need anymore to end an "If" statement with "End If" if the whole statement is in a single line:
If (A > B) then MsgBox("A is higher the B")

Try..Catch..End Try

Just like in Pascal you could use Try..Except..End keywords in Basic to build a exception-catching block. This is still valid, but now you can also use Catch..End Try keywords:
  C = A / B
  MsgBox("Wrong division")
end try

Wagner R. Landgraf


This blog post has not received any comments yet. Add a comment.

Previous  |  Next  |  Index