Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перевод проекта на UNICODE... [Delphi, Windows]


Страницы:   1 2 3

MTsv DN ©   (2006-10-26 18:04:00) 

Начал переводить свой проект... Объявил UNICODE_CTRLS естественно многое перестало работать... Меня сейчас интересует вот что, достаточно ли заменить String на KOLString, или надо на KOLChar...


L`Autour   (2006-12-04 06:42:00) [1]

В KOL.pas ошибка:
//[procedure TWStrList.Insert]
procedure TWStrList.Insert(Idx: Integer; const W: WideString);
var P: Pointer;
begin
 while Idx < Count-2 do
   fList.Add( nil );
 GetMem( P, (Length( W ) + 1) * Sizeof(WideChar) );
 fList.Insert( Idx, P );
 WStrCopy( P, PWideChar( W ) );
end;

при Idx < Count-2 программа входит в зацикливание.


L`Autour   (2006-12-01 11:59:00) [2]

Пробую заставить работать демку KOLHilightEdit UNICODE_CTRLS.
При переходе на UNICODE-проект возникает некоторая путаница с определенными в KOL функциями для обработки строк. Раньше все были для работы с String и Char и отдельно было дублирование части этих функций под Unicode. Сейчас в части из них используется KOLString и KOLChar и после включения UNICODE_CTRLS они сразу переходят на WideString и WideChar (взникла куча неявных перекодирований ANSI <-> Unicode).


vampir_infernal   (2006-11-30 21:48:00) [3]

нашел все-таки я этот шрифт в дистрибе офиса. Буду пробовать.


ANTPro   (2006-11-30 20:30:00) [4]

> [44] vampir_infernal   (30.11.06 17:40)
> Перерыл всю папку с виндой, с офисом и установочный пакет
> офиса (2003),

Пиратские? :) У меня есть Arial Unicode MS...

C:\WINDOWS\Fonts\ARIALUNI.TTF [22,1 МБ]


vampir_infernal   (2006-11-30 17:40:00) [5]

Перерыл всю папку с виндой, с офисом и установочный пакет офиса (2003), никакого Arial Unicode не нашел. В ворде в диалоге выбора шрифта тоже такого нет. Уважаемые, вышлите мне его пожалуйста на почту.


MTsv DN   (2006-11-30 16:57:00) [6]

Я просто коряво выразился... Для отображения UNICODE-языков везде...и в именах файлов,и в метках дисков и т.д. и т.п.


MTsv DN   (2006-11-30 16:57:00) [7]

Я просто коряво выразился... Для отображения UNICODE-языков везде...и в именах файлов,и в метках дисков и т.д. и т.п.


L`Autour   (2006-11-30 12:50:00) [8]

Мне для отображения китайского хватило "Arial Unicode MS", а он как универсальный шрифт идет в составе MS-офисов.


MTsv DN   (2006-11-30 09:48:00) [9]

1. L'Autour прав... Есть,конечно,только-UNICODE шрифты,но в остальных,поддержка определяется наличием кодовой страницы. Но и это еще не все... Для корректного отображения,например,китайского,японского или арабского языка,надо включить систему отображения их в приложениях. Для этого,в "Панель Управления->Языки и Регион. настройки->Дополнительно" устанавливаются два флажка (их лэйбла не помню,а компа под рукой нет). Вставляешь диск с Виндой и ждешь... Установится ~230мб.
2. Если 100% уверен,что UNICODE-символов не будет,то можно и String поставить...


L`Autour   (2006-11-30 09:27:00) [10]

vampir_infernal
1) Все шрифты и так Unicode, только содержащие конкретные кодовые страницы [неподдерживаемые сиволы отображаются вопросами]. Наиболее полный "Arial Unicode MS". RichEdit умеет при необходимости подключает дполнительный шрифт.


vampir_infernal   (2006-11-30 08:54:00) [11]

Занялся переводом нескольких своих проектов на unicode. Возникло несколько вопросов:
1) какие шрифты нужны для отображения юникод-символов на форме\контролах?
2) есть метод объекта GetSomething, который возвращает строку. В этой строке заведомо не могут содержаться юникод-символы (возвращаемые значения объявлены константами в коде и содержат только символы латиницы). Есть ли необходимость менять этот метод на GetSomething: KOLString, или можно оставить GetSomething: string?


L`Autour   (2006-11-01 12:34:00) [12]

Мда. Просто, хотя его и обновили, а дату рядом изменить забыли.


MTsv DN   (2006-11-01 11:34:00) [13]


> Начали матюгаться что хотят PAnsiChar параметры вместо PWideChar,
>  хотя ссылаются нормально на:
>
> KOL_unicode.inc:
> function LoadCursor; external user32 name 'LoadCursorW';

Надо новый KOL_unicode.inc скачать было... Там добавлений море...


L`Autour   (2006-11-01 07:12:00) [14]

Кстати в редакторе AkelPad есть такая особенность установки шрифта. Выбранный шрифт меняет отображение только тех символов, которые в нем поддерживаются, а остальные отображаются вроде с помощью Arial Unicode MS.
Такое отображение текста можно добавить в KOL?


L`Autour   (2006-11-01 06:59:00) [15]

Пришлось еще исправить:

KOL.PAS:
3348: aAddText: procedure( Sender: PControl; const S: string);

После этого еще все String в объекте REReadText поменять на KOLString

Обращения к функциям типа:
LoadCursor( Inst, ResName );
LoadBitmap( Instance, Rsrc );

Начали матюгаться что хотят PAnsiChar параметры вместо PWideChar, хотя ссылаются нормально на:

KOL_unicode.inc:
function LoadCursor; external user32 name 'LoadCursorW';

Пришлось сделать в них принудительный PAnsiChar:
LoadCursor( Inst, PAnsiChar(ResName));

И наконец-то я увидел в своей проге китайские иероглифы.


Vladimir Kladov   (2006-10-31 21:23:00) [16]

Сейчас, сейчас. Света не было.


Vladimir Kladov   (2006-10-31 15:28:00) [17]

вроде слил. И еще куча исправлений. Взял "какой-попало-проект" (свой) и перевел в unicode. Были еще проблемы с комбо, листбоксом, апплетом, листвью (как раз OnLVData понадобилась). Пришлось еще типов добавить, иначе Delphi упорно хочет создать событие с параметрами Char и String вместо KOLChar и KOLString (а если KOL_Char = type Char, то тогда может). Сейчас вернусь, обновленьице делать буду.


Vladimir Kladov   (2006-10-31 04:51:00) [18]

точно разные, мой косяк. Забыл, что обновление не делал, и взял папку из приготовленных к обновлению файлов, которой не удалось воспользоваться. А когда проверял на финише, еще делал правки. Вечером закончу сливать.


MTsv DN   (2006-10-30 21:47:00) [19]


> А здесь перестарался:
>
> {$IFNDEF UNICODE_CTRLS} // Удалить
> function CreateWindowEx(dwExStyle: DWORD; lpClassName: PChar;
>
>  lpWindowName: PChar; dwStyle: DWORD; X, Y, nWidth, nHeight:
>  Integer;
>  hWndParent: HWND; hMenu: HMENU; hInstance: HINST; lpParam:
>  Pointer): HWND;
>  stdcall; external user32 name 'CreateWindowExA';
> {$ENDIF}                         // Удалить
> {$ENDIF}

Ошибся... Здесь ВСЕ В ПОРЯДКЕ!!!


MTsv DN   (2006-10-30 21:16:00) [20]

И в некоторых функциях, забыл:
var Buf: String;-> var Buf: KOLString;

Например в:
function TStrList.LoadFromFile(const FileName: KOLstring): Boolean;
function TStrList.AppendToFile(const FileName: KOLstring): Boolean;
function TStrList.SaveToFile(const FileName: KOLstring): Boolean;


Ну, вроде все свои "косяк" упомянул...


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо