D2009 Превью не понятно почему так.

отредактировано 05:00 Раздел: FastReport 4.0
При переходе на 2009 в Дизайнере все русские буквы отображаются нормально
в ChartName забит русский текст

Но если запустить в Превью то почему то
в ChartName приходит - 'РўРµСС‚'
И печатается уже с этими безобразием.
Как это лечется?

  TfrxTest = class(TfrxView)
  private
     FChartName: String;
  public
    constructor Create(AOwner: TComponent); override;
    procedure Draw(Canvas: TCanvas; ScaleX, ScaleY, OffsetX, OffsetY: Extended); override;
    procedure DrawChartText; virtual;

  published

    property ChartName  :String read FChartName write FChartName;

  end;

implementation

uses frxChBoxRTTI, frxDsgnIntf, frxRes, StrUtils;

constructor TfrxTest.Create(AOwner: TComponent);
begin
  inherited;
  Font.Name  := 'Tahoma';
  Font.Color := clWindowText;
  Font.Style := [];
  Font.Size  := 10;
  Font.CharSet := RUSSIAN_CHARSET;

end;


procedure TfrxTest.Draw(Canvas: TCanvas; ScaleX, ScaleY, OffsetX,
  OffsetY: Extended);
begin
  BeginDraw(Canvas, ScaleX, ScaleY, OffsetX, OffsetY);
  DrawChartText;
end;



procedure TfrxTest.DrawChartText;
var
  s: String;
begin
   with FCanvas do
   begin
        s := FChartName; // В дизайнере нормально а в превью нет русских символов.
   end;

end;

initialization

  frxObjects.RegisterCategory('Схема', nil, '', 6);
  frxObjects.RegisterObject1(TfrxTest, nil, '', 'Схема', 0, -1);
end.

Комментарии

  • отредактировано 05:00
    Поправил.
    Новый билд будет предположительно завтра утром.
  • отредактировано 05:00
    написал: »
    Поправил.
    Новый билд будет предположительно завтра утром.

    Спасибо. скажи в каком месте...

    а то мне сильно много перелапачивать надо будет.
    Скрипт с профайлером + навороченное TfsSyntaxMemo + в Дизайнере..
  • отредактировано 05:00
    frxClass.pas -> TfrxComponent.AllDiff :
    Заменить s := TStringStream.Create('') на :
    {$IFDEF Delphi12}
      s := TStringStream.Create('', TEncoding.UTF8);
    {$ELSE}
      s := TStringStream.Create('');
    {$ENDIF}
    
  • отредактировано 05:00
    написал: »
    Заменить s := TStringStream.Create('') на :

    Все нормально - Работает.

    Спасибо.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.