Конференция "KOL" » А можно ли на KOL писать нативные Unicode приложения [Delphi, KOL, Windows]
 
  • CBR919RR © (16.02.12 18:36) [0]
    Собственно сабж. Приложения только для Win2K и выше чтобы только юникод без анси вообще, безо всяких преобразований.
  • RusSun © (16.02.12 19:59) [1]
    {$IFDEF UNICODE_CTRLS}
    Panel1.SetUnicode(TRUE);
    {$ENDIF UNICODE_CTRLS}

  • CBR919RR © (16.02.12 20:32) [2]
    Я указываю
    {$DEFINE UNICODE_CTRLS}


    А инифайлы грузят все равно анси
    Caption тоже анси. Это с чем только столкнулся.
  • CBR919RR © (16.02.12 20:33) [3]
    это мне каждому компоненту надо еще дополнительно задавать SetUnicode(True);
  • RusSun © (16.02.12 20:54) [4]
    Символ UNICODE_CTRLS предназначен для превращения визуальных объектов TControl в окна, работающие непосредственно в кодировке Unicode. Данная работа выполнена практически полностью (хотя периодически обнаруживаются некоторые неполадки, но они устраняются). Достаточно включить в проект эту опцию, и приложение практически полностью будет поддерживать кодировки UNICODE. Все вызовы к API-функциям перенаправляются на UNICODE-версии этих функций (с окончанием W). Контролы типа TREEVIEW и LISTVIEW начинают работать с UNICODE-версиями оконных сообщений. И так далее.

    из Книги о KOL http://kolmck.net/docs/KOLBook.rar

    http://s1.ipicture.ru/uploads/20120216/RxovV3TK.png
  • RusSun © (16.02.12 21:01) [5]
    {$IFDEF UNICODE_CTRLS}
    контрол.SetUnicode(TRUE);
    {$ENDIF UNICODE_CTRLS}

    Если использовать мск то автоматически будет назначено.
  • CBR919RR © (16.02.12 22:34) [6]
    Да я Unicode_ctrls дефайном задаю.
    А как же текст сам, он же в анси, дельфа уникод не понимает до 2009.
    В студии пишу в проекте Use Unicode, и к каждому тексту добавляю L"Текст".
    И там препроцессор переводит из анси в уникод. А в паскале ведь отсутствует препроцессор. Книгу по кол постоянно читаю. Что-то мне библиотека все больше и больше нравится.
  • rdnks (19.02.12 04:06) [7]
    Попробывал в mck, d7 winXP sp2. Грузит из ini без проблем. Без разницы как он был сохранен - cp1251 или utf16-le. Шрифт контролов - arial unicode, иероглифы есть.
  • QAZ (19.02.12 20:23) [8]

    > В студии пишу в проекте Use Unicode, и к каждому тексту
    > добавляю L"Текст".

    var s:Widestring;
  • rdnks (19.02.12 20:33) [9]
    да, и не понял, как понять 'дельфа уникод не понимает до
    2 009.' вроде же с 3 чтоли версии юникод прекрасно понимает. А вообще Владимир давно всё продумал. Есть KOLString, который в зависимости от флагов будет ansi или wide. И компилятор далеко не тупой.
  • CBR919RR © (20.02.12 21:02) [10]
    Я имею ввиду редактор в делфи он дает редактировать только анси.
    Мекрософт выходили из положения препроцессором.
  • CBR919RR © (20.02.12 21:09) [11]
    Делфи начиная с 2009 все уникод Text, Caption et... и редактор кода редактирует извините за тавтологию и в анси и в уникоде, и еще в нескольких кодировках. А не только вызов функций в W на конце.
  • rdnks (20.02.12 23:16) [12]
    да, сам редактор не понимает юникод, но трудно представить себе ситуацию в которой могут понадобится спецсимволы.
    Со включеным флагом UNICODE_CTRLS при использовании mck все контролы используют WideString

    Так как
    var S: WideStrig = 'текст'; // есть юникод

    Компилятор правильно приведет. Проверьте в отладчике.
  • QAZ (21.02.12 12:18) [13]

    > CBR919RR ©   (20.02.12 21:09) [10]

    ты че по китайски пишеш в дельфе?
  • Vladimir Kladov © (22.02.12 20:05) [14]
    А вообще Владимир давно всё продумал. Есть KOLString,
    Это не я придумал. Я просто применил. Конкретно не помню кто именно придумал.
  • Rirk (01.04.12 11:08) [15]
    Ничего не выходит

    UNICODE_CTRLS на месте
    И файл деклараций есть.

    Бросаю на форму RichEdit
    Пишу элементарный код в кнопке

    procedure TForm1.Button1Click(Sender: PObj);

    var
    S:WideString;
    //S:KOLString;
    begin
    S:= #$74C1;
    RichEdit1.Font.FontName:='Arial Unicode MS';
    RichEdit1.Font.FontHeight:=30;
    RichEdit1.Add(S);
    end;

    Вместо иероглифа знак вопроса. Причем пробовал и на 7 делфи и на 2009
    Подставлял все возможные юникодовские шрифты
    Ноль эмоций. Выводит знак вопроса.
    Ну что я делаю не так?
  • Дмитрий К © (01.04.12 12:39) [16]

    > Ну что я делаю не так?

    Вот это:
    > RichEdit1.Add(S);

    RichEdit1.RE_Text[reTextUnicode, False] := S;

  • Rirk (01.04.12 13:44) [17]
    Бесполезно. Вообще очищается и всё. И ни одного символа, даже тех, которые были.
    А как на канвас выводить? А в метку? В другие компоненты?
    в RichEdit по идее юникодовский текст при загрузке должен сразу же отобразится, но этого не происходит.
    Вы бы написали полноценный примерчик. Я же не первый кто спрашивает как это сделать.
  • Rirk (02.04.12 20:54) [18]
    И тишина... Значит невозможно включить юникод.
  • QAZ (03.04.12 15:57) [19]
    все операции с текстом производятся посредством RE_ функций,а ты тупо назначил текст контролу,которомы это по барабану
 
Конференция "KOL" » А можно ли на KOL писать нативные Unicode приложения [Delphi, KOL, Windows]
Есть новые Нет новых   [118476   +38][b:0][p:0.001]