E2198 %s cannot be applied to a long string (Delphi)

From RAD Studio
Jump to: navigation, search

Go Up to Error and Warning Messages (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.