voorbeeld 1:
Delphi Code:
  1. Tfoo = record
  2.   regel1 : string[10];
voorbeeld 2:
Delphi Code:
  1. Tfoo = record
  2.   regel1 : string;
Welk voorbeeld is het meest logisch om te gebruiken?

Voorbeeld 1 resulteert tot een vaste lengte van een variable. Als er drie karakters worden gebruikt in variabele, wordt er toch 255 karakters gereserveerd in het geheugen (wat eigenlijk zinloos is, omdat er maar maximaal tien worden gebruikt).
Voorbeeld 2 geeft een pointer terug naar de variabele. Tijdens het vullen van deze variabele wordt er geheugen @runtime gereserveerd naar mate het aantal tekens. Dit kan een vertraging oplopen.

In Delphi wordt string[10] gezien als een shortstring (zelfs in D10 rio). Dit resulteert tijdens het compileren een warning:
W1057 Implicit string cast from 'ShortString' to 'string'
Waarom wordt een shortstring in Delphi nog steeds niet gezien als een string? Als je dit zelfde verhaal verwerkt in Lazarus, komt deze zonder warning terug. Klaarblijkelijk wordt daar anders met strings omgegaan.