Você pode usar frequentemente AnsiString para strings com objeto pascal, mas outras strings geralmente raramente são usadas.
Aqui estão alguns tipos de strings:
AnsiSring Este é o tipo padrão do Pascal. Não há limite para seu comprimento. E a string termina com null. Ou seja, termina com '/0'.
ShortSring é para compatibilidade com versões anteriores do Delphi. Seu comprimento é limitado a 255 caracteres.
WideSring é semelhante ao AnsiString, mas é composto por caracteres WideChar.
PChar Ponteiro para uma string terminada em nulo. Semelhante a char* ou lpstr em c.
PAnsiChar aponta para um ponteiro de string terminado em AnisChar terminado em nulo.
PWideChar Ponteiro para uma string de WideChar terminada em nulo.
Por padrão é do tipo AnisSring:
var
S:Corda;
Também é possível fazer com que o compilador alterne $H para definir o tipo String como tipo ShortString: exemplo
var
{$H-}
s1:=string;//s1 é do tipo shortstring
{$H+}
s2:=string;//s2 é o tipo sring
Mas quando o comprimento da string especificada é menor que 255, {$H} é sempre AnsiSring.
exemplo:
var
s:string[254];
Abaixo falarei sobre o respectivo uso desses tipos:
1. Tipo AnisSring
É alocado dinamicamente e possui reciclagem automática. Esse recurso é chamado de autogerenciamento vitalício. Não há necessidade de resultados intermediários como em c
Como a string do tipo AnisSring é terminada em nulo, ela é compatível com Win32Api. Na verdade AnisSring é
ponteiro para uma estrutura de string na pilha