Mam problem procedura w Delphi wszytsko działa a w Lazarusie (Free Pascalu) występują błedy:

w 1 i 2 linijce: Incompatible types: Got "LongInt" except "TPage"
w 3,8 linijce: Operator is not overloaded
w 6 i 11 linijce: Ordinal expression excepted

procedure TFMain.Poprawnosc;
var
Start, Koniec :Integer;
A:String
begin
  Start := Pos(':\', A); //1 linijka
  Koniec := Length(A);
   if Start > 0 then
  begin
    repeat
      Dec(Start);
    until (not (A[Start] in ['a'..'z','A'..'Z','0'..'9',' ','\','-','+','_','.',':','&','(',')','[',']','ł','Ł','ą','Ą','ó','Ó','ń','Ń','Ś','ś','Ć','ć','ę','Ę','ż','Ż','ź','Ź','~','!']));
   A := Copy(A, Start+1, Koniec-Start);
   end;

   for Start:=0 to Koniec do // 11 linijka
   if (not (A[Start] in ['a'..'z','A'..'Z','0'..'9',' ','\','-','+','_','.',':','&','(',')','[',']','ł','Ł','ą','Ą','ó','Ó','ń','Ń','Ś','ś','Ć','ć','ę','Ę','ż','Ż','ź','Ź','~','!'])) then
   Delete(A, Start, 99);
end;

Jak powinna wyglądać ta procedura aby wszystko działało pod FreePascalem. Z góry dziękuje. :)