Ok, ya me queda mas claro,
al final he montado un codigo que hace lo que quiero aunque se complica demasiado
Código:
procedure TFXY.Button5Click(Sender: TObject);
var
cadena1:string;
cadena2:string;
cadena3:string;
siguiente:string;
posicion:integer;
posicion1:integer;
posicion2:integer;
chivato:integer;
chivato2:integer;
a: Integer;
b: Integer;
label
kk;
begin
chivato:=0;
chivato2:=0;
cadena1:='ENTITIES';
posicion:=pos(cadena1,mtexto.Text);
a:=posicion;
while chivato=0 do
begin
kk:
a:=a+1;
cadena2:=mtexto.Text[a+7];
if (cadena2=' ')or
(cadena2=#10) or
(cadena2=#13) or
(Cadena2=#0) then
BEGIN
b:=a+1;
siguiente:=mtexto.text[b+7];
if (siguiente=' ')or
(siguiente=#10) or
(siguiente=#13) or
(siguiente=#0) then
goto kk
else
begin
posicion1:=a+7;
chivato:=1;
end;
END;
end;
while chivato2=0 do
begin
a:=a+1;
cadena2:=mtexto.Text[a+7];
if (cadena2=' ')or
(cadena2=#10) or
(cadena2=#13) or
(Cadena2=#0) then
BEGIN
posicion2:=a+7;
chivato2:=1;
END;
end;
mtexto.SelStart:=posicion1;
mtexto.SelLength:=posicion2-posicion1;
Mtexto.SetFocus;
cadena3:=mtexto.SelText;
memo1.Text:=cadena3;
Para aprender me ha venido GENIAL pero esta claro que si tubiera que hacer un tecto de configuraciones lo mas sencillo desde luego seria trabajar por lineas y usar IndexOf que te arregla todo el código, muchas gracias por la ayuda.