URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 46455
[ Назад ]

Исходное сообщение
"Решение проблем с русским языком в Lazarus IDE"

Отправлено opennews , 07-Дек-08 10:18 
Решение проблем с русским языком в Lazarus, Delphi-подобной среда разработки для FreePascal (http://iar.spb.ru/tips/lazarus-in-linux).

URL: http://iar.spb.ru/tips/lazarus-in-linux
Новость: http://www.opennet.me/opennews/art.shtml?num=12206


Содержание

Сообщения в этом обсуждении
"Решение проблем с русским языком в Lazarus IDE"
Отправлено Labuzhskiy , 07-Дек-08 10:18 
В версии 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*