RAD Studio (Common)
ContentsIndex
PreviousUpNext
E2198: %s cannot be applied to a long string (Delphi)

It is not possible to use the standard function HIGH with long strings. The standard function HIGH can, however, be applied to old-style short strings. 

Since long strings dynamically size themselves, no analog to the HIGH function can be used. 

This error can be caused if you are porting a 16-bit application, in which case the only string type available was a short string. If this is the case, you can turn off the long strings with the $H command line switch or the long-form directive $LONGSTRINGS. 

If the HIGH was applied to a string parameter, but you still wish to use long strings, you could change the parameter type to 'openstring'.

program Produce;
  var
    i : Integer;
    s : String;

begin
  s := 'Hello Developers of the World';
  i := HIGH(s);
end.

In the example above, the programmer attempted to apply the standard function HIGH to a long string variable. This cannot be done.

(*$LONGSTRINGS OFF*)
program Solve;
  var
    i : Integer;
    s : String;

begin
  s := 'Hello Developers of the World';
  i := HIGH(s);
end.

By disabling long string parameters, the application of HIGH to a string variable is now allowed.

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!