Форум: "KOL";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
ВнизТеперь у нас есть Юникод?! Найти похожие ветки
← →
Gandalf (2002-10-24 18:39) [0]Ну не у нас (пока у меня), и не факт что есть... Вообщем я перевел Windows.pas на поддержку Юникода, по условной компиляции. Т.е. если компилишь с
{$DEFINE UNICODE}. То у тебя все SuperAPIFunc это SuperAPIFuncW, а так SuperAPIFuncA. Вот так. Мне пока для CE достаточно. Но лед тронулся.
← →
SPeller (2002-10-25 01:03) [1]Это очень даже хорошо. Поддержка Юникода не помешает.
← →
Alexander (2002-10-25 08:22) [2]Не то, что не помешает, а очень даже поможет писать нормальные программы с встроенной изначально поддержкой разных причудливых (для нас) кодировок.
← →
Gandalf (2002-10-25 09:36) [3]Рад что воспринято с энтузиазмом, может где выложить результат трудов? А вообще какие еще модули надо перевести для поддержки Unicode.
Если кто хочет получить модуль Windows.pas(Unicode) делай так:
var
F1,F2:Text;
N1,N2,str,tmpstr,tmpstr2:String;
begin
N1:="Windows.pas";
N2:="WindowsU.pas";
AssignFile(F1,N1);
AssignFile(F2,N2);
Reset(F1);
Rewrite(F2);
While not eof(F1) do
begin
Readln(F1,str);
Writeln(F2,str);
if (pos("function",str)<>0) then
begin
tmpstr:=str;
tmpstr2:=Parse(tmpstr,";");
if (tmpstr2[Length(tmpstr2)]="A") then
begin
// may be find it!
Readln(F1,str);
Writeln(F2,str);
tmpstr:=str;
tmpstr2:=Parse(tmpstr,";");
if (tmpstr2[Length(tmpstr2)]="W") then
begin
// find it!
Writeln(F2,"{$IFDEF UNICODE}");
Readln(F1,str);
str[Length(str)-2]:="W";
Writeln(F2," "+str);
Writeln(F2,"{$ELSE}");
str[Length(str)-2]:="A";
Writeln(F2," "+str);
Writeln(F2,"{$ENDIF}");
end;
end;
end;
end;
CloseFile(F1);
CloseFile(F2);
end;
Можно еще и процедуры(procedure"s) перевести, но вроде Юникод таких нет. Так сказать модифицируем по вкусу.
← →
Alexander (2002-10-25 10:09) [4]Но это не всё...
Таким способом можно только консольные или имеющие формы программы писать.
Следующим шагом должна быть реализована поддержка Unicode во всех компонентах MCK - иначе не получится Unicode отобразить визуально на форме.
И ещё, я пока не работал с Delphi 7 но судя по анонсам там сделан большой шаг в сторону поддержки Unicode.
← →
Gandalf (2002-10-25 14:54) [5]>Но это не всё...
>Таким способом можно только консольные или имеющие формы >программы писать.
>Следующим шагом должна быть реализована поддержка Unicode во >всех компонентах MCK - иначе не получится Unicode отобразить >визуально на форме.
Знаю. Но пока не до этого.
>И ещё, я пока не работал с Delphi 7 но судя по анонсам там >сделан большой шаг в сторону поддержки Unicode.
Интересно что имеенно, в их WhatsNew листе об этом не слова.
← →
Alexander (2002-10-25 15:38) [6]Anatoly Podgoretsky постарался:
http://delphiplus.nagano.ru/articles/delphi/whats_new_in_delphi7.html
раздел про StrUtils а с VCL похоже пока никак.
← →
Alexander (2002-10-26 10:37) [7]Ещё вопрос: а нужны ли эти директивы условной компиляции для Unicode? Ведь во всех модулях можно при желании вызывать <...>W функции. Может лучше сосредоточиться на написании MCKW (MCKU) и на реализации юникодных списков и прочих вещей?
← →
Vox (2002-10-26 11:49) [8]
> раздел про StrUtils а с VCL похоже пока никак
Написано: Для поддержки multibyte character set (MBCS) в модуль StrUtils внесены следующие изменения:
Но насколько я знаю MSCS - это не Юникод. А, например, кодировки китайского языка.
← →
Alexander (2002-10-26 11:55) [9]MBCS - multibyte character set, т.е. мультибайтовые символы, а это и есть Unicode (WideChar и WideString)
← →
Gandalf (2002-10-26 13:01) [10]>Ещё вопрос: а нужны ли эти директивы условной компиляции для >Unicode? Ведь во всех модулях можно при желании вызывать ><...>W функции. Может лучше сосредоточиться на написании MCKW
>(MCKU) и на реализации юникодных списков и прочих вещей?
В том-то и дело, не нужны тогда MCKW(U) и MCKA, можно сделать так что есть MCK, поставил флаг стал Юникод, снял - у тебя ANSI. Тем более, что метод с Кладовым согласован.
← →
Alexander (2002-10-26 15:27) [11]А как это можно в Designtime в Object Inspector поменять например свойство Caption с string на widestring только изменив директиву условной компиляции?
← →
Gandalf (2002-10-26 21:26) [12]>А как это можно в Designtime в Object Inspector поменять >например свойство Caption с string на widestring только >изменив директиву условной компиляции?
Твоя правда - никак. Конечно MCK придется править.
А вообще кто как себе представляет поддержку Юникода?
← →
Alexander (2002-10-27 08:34) [13]Я представляю так: набор зеркальных компонент (может их можно сделать наследниками от существующик, как это сделано для VCL http://home.ccci.org/wolbrink/tnt/delphi_unicode_controls.htm). Также набор невизуальных вещей типа PWStrList и прочее ну и джентельментский кабор процедур - аналогичных стринговым.
← →
SPeller (2002-10-27 14:32) [14]
> А вообще кто как себе представляет поддержку Юникода?
Универсальный вариант - если система старая (Вин95 апример), то используем ANSI, если более новая - то Юникод (программно определяется). Это однако потребует значительных ресурсов. Вообще, мне идея с условной компиляцией более приемлема. Можно встроить во многие объекты Юникод, но это опять же - лишие байты конечного кода. Лучше всего мне кажется пока сделать эксперимент с директивами компилятора, а там уже по мере поступления предложений и накопления наработок общения с юникодом делать выводы и строить конечный вариант.
← →
Alexander (2002-10-27 15:23) [15]Я тут немного подумал и сделал вывод, что можно обойтись и директивами условной компиляции. Только нужно будет для unicode немного по другому собирать *.inc файлы - где в Designtime попадается string - там подставлять юникодные поля компонентов.
← →
Gandalf (2002-10-27 16:26) [16]Спасибо за идеи. Поскольку видимо KOL+CE=загнусля, так как Дельфя только под x86 компилит, а CE в основном под MIPS и SH (мда, а жаль).
То видимо я буду Юникодом заниматься.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c