There's a new String type (that's a capital 'S'). These new strings behave like Java/C# strings in that you can easily assign to and manipulate them.
For example, in 2.7 and previous versions, you had to do
string text; StrCopy(text, "This is my text");in 2.71, you can now do:
String text = "This is my text";Furthermore, the == and != operators can be used to compare strings for equality (equivalent to using StrComp but much more intuitive). An additional benefit is that there is no longer a need for GetText() and SetText() methods -- instead, we can now just have Text properties.
All the old-style functions that took a "string buffer" parameter have now been replaced with new ones that return a string instead. Where properties have been created, you should be able to use them like any other property, so:
lblLabel.Text = "Hello"; String buttonValue = btnOK.Text;and so on.
NOTE: Some of the new functions are provided on the Game
object -- for example, the new GetSaveSlotDescription function
needs to be called like this:
String description = Game.GetSaveSlotDescription(10);
This is part of a move towards all built-in functions being object-based, but watch out for it as it could well cause some confusion. The manual will show you which functions require this.
Rather than using old functions like StrCat and StrContains, you now call the functions directly on the strings:
String text = "Hello"; text = text.Append("World");will mean that text now contains "HelloWorld".
In order to maintain backwards compatibility, a new "const" keyword has been added. This applies only to old-style strings, and allows them to interoperate with the new ones. A new-style String can be passed to a function that expects a "const string" (which means that it will not be allowed to change the string's contents), but cannot be passed to a function that expects a "string" (since it could overwrite the string data and mess things up).
So, you may find that any custom functions you have that take a string parameter stop working. If this is the case, change the parameter from "string" to "const string" and that should fix it.
Apologies for the inconvenience, but this is the only way to allow new Strings to interoperate safely with old-style strings.
|Converted from CHM to HTML with chm2web Standard 2.85 (unicode)|