В версии Lazarus 0.9.26, не удаётся инвертировать строки, содержащие русскую раскладку. В версии Lazarus 0.9.24 подобной проблемы не было.
unit Unit1; {$mode objfpc}{$H+}
interface
uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,
  StdCtrls, Buttons;
type
  { TForm1 }
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    Label1: TLabel;
    label2: TLabel;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
    procedure InvertString(var InputSTR, OutputSTR: string);
  end; 
var
  Form1: TForm1;
  s, s1: UTF8String;
implementation
{ TForm1 }
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
InvertString(s, s1);
label2.Caption:=s1;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
s:=''; s1:='';
s:= AnsiToUtf8(inputbox('Введите строчку для инвертирования', 'Ваша строка:', ''));
label1.Caption:= Utf8ToAnsi(s);
end;
procedure TForm1.InvertString(var InputSTR, OutputSTR: string);
 var i, j, k :integer;
    b       :string;
begin
 i:=1; j:=0; k:=0; OutputSTR:='';
b:=InputSTR;
for i:=1 to length(InputSTR) do j:=j+1;
for k:=j downto 1 do
OutputSTR:=OutputSTR+b[k];
end;
initialization
  {$I unit1.lrs}
end.
Алгоритм этот ранее я подвязывал, чтобы имя файла узнавать при выборе его через OpenDialog, до 1-ого "\" символы в строке считал. А теперь пути Windows, содержащие русские символы не работают. *DONT_KNOW*