Важная информация
Показано с 1 по 5 из 5

Тема: Греческие буквы и прочий юникод.

  1. #1 Греческие буквы и прочий юникод. 
    Профи Аватар для Dimon012
    Регистрация
    09.02.2011
    Адрес
    Владивосток
    Сообщений
    850
    Сказал(а) спасибо
    29
    Поблагодарили 130 раз(а) в 108 сообщениях
    Записей в блоге
    3
    Может кто знает, разбирался, с выводом греческих или других букв (и прочих символов юникода) в паскале или лазарусе. Вывожу на StaticText.caption или на канву формы, вроде все должно быть просто, но выводятся только русские и латинница. Буду очень признателен за примеры!
    Ответить с цитированием  
     

  2. #2  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,240
    Сказал(а) спасибо
    306
    Поблагодарили 192 раз(а) в 156 сообщениях
    Записей в блоге
    5
    Как понимаю, их нужно выводить специальным шрифтом, в котором есть поддержка греческого алфавита. В обычных то шрифтах их изначально нет..
    Дружба-магия-радость!
    Ответить с цитированием  
     

  3. #3  
    Профи Аватар для Dimon012
    Регистрация
    09.02.2011
    Адрес
    Владивосток
    Сообщений
    850
    Сказал(а) спасибо
    29
    Поблагодарили 130 раз(а) в 108 сообщениях
    Записей в блоге
    3
    Ну если верить Word-у, открываем "вставка символа", видим латынь, можно переключится на русские буквы или греческие или наконец математические символы, очевидно это все в одном шрифте, и думается что это юникод, во всяком случае я просмотрел виндовский шрифт "arial". Вышеназванные символы там есть и word их показывает, а вот в lazarus-е, вывожу по кодам выводится только латынь, или в лучшем случае латынь и кириллица.
    Последний раз редактировалось Dimon012; 30.06.2011 в 03:24.
    Ответить с цитированием  
     

  4. #4  
    Профи Аватар для nik_1
    Регистрация
    03.08.2014
    Сообщений
    290
    Сказал(а) спасибо
    162
    Поблагодарили 145 раз(а) в 109 сообщениях
    Записей в блоге
    1
    Цитата Сообщение от Абадябер Посмотреть сообщение
    Как понимаю, их нужно выводить специальным шрифтом, в котором есть поддержка греческого алфавита. В обычных то шрифтах их изначально нет..
    нет все проще

    unit Unit1;

    {$mode objfpc}{$H+}

    interface

    uses
    Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

    type

    { TForm1 }

    TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    private
    { private declarations }
    public
    { public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.lfm}

    { TForm1 }

    procedure TForm1.Button1Click(Sender: TObject);
    var i: integer;

    begin
    i:=1;
    if Edit1.Text ='' then ShowMessage ('Введите греческий символ из таблицы символов')
    else
    while i<= Length (Edit1.Text) do
    begin
    memo1.Lines.Add(Edit1.Text[i]+Edit1.Text[i+1]+'= chr('+IntToStr(ord(Edit1.Text[i]))+')+chr('+IntToStr(ord(Edit1.Text[i+1]))+')');
    i:=i+2;
    end;
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Memo1.Lines.Clear;
    Memo1.ScrollBars:=ssBoth;
    Memo1.ReadOnly:=true;
    Button1.Width:=250;
    Button1.Caption:='Показать код греческого символа';
    Label1.Caption:='Вставте в поле греческий символ из таблицы символов';
    Edit1.Text :='' ;
    end;

    end.
    Ответить с цитированием  
     

  5. #5  
    Новичок
    Регистрация
    19.05.2015
    Сообщений
    1
    Сказал(а) спасибо
    0
    Поблагодарили 2 раз(а) в 1 сообщении
    Pascal Code:
    1. procedure TForm1.Button1Click(Sender: TObject);
    2. Var
    3.   i,j,k,N : integer;
    4.   S,z : String;
    5. Begin
    6.   N:=0;
    7.   for j:=0 to Memo1.Lines.Count-1 do  //считает строки в тексте
    8.    begin
    9.      s:=Memo1.Lines.Strings[j]; //выбирает строку
    10.      for k:=1 to UTF8Length(s) do //находит конец строки
    11.     Begin
    12.       if UTF8Copy(s, k, 1) = ord(s[k]) then inc(N); //как тут использовать юникод?
    13.  
    14.  
    15.     End;
    16.      Memo2.Lines.Add(IntToStr(N)); //выводим на экран
    17.  
    18.   End;
    19.     for i := $0410 to $042F do
    20.     Memo2.Lines.Add(UTF16ToUTF8('' + WideChar(i)));
    21.  
    22. end;

    программа должна анализировать текст и выводить русский алфавит с количеством встречаемости букв в тексте, вот наработка, но не знаю как использовать Юникод
    Ответить с цитированием  
     

  6. 2 пользователя(ей) сказали cпасибо:

    Free Admin (20.05.2015), nik_1 (20.05.2015)

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •