Юникод в Delphi 4

Я работаю над локализацией давно существующего приложения Delphi 4. Проблема в том, что я не могу найти компоненты Unicode для Delphi 4. Я действительно хотел бы остаться с Delphi 4 по нескольким нетривиальным причинам.

Кто-то порекомендовал мне TNTWare Delphi Unicode Components, но они предназначены для Delphi 6+.

Кто-нибудь знает, что компоненты, которые могут помочь, или способ сделать это без необходимости создавать новые компоненты самостоятельно?


person adlabac    schedule 15.10.2014    source источник
comment
Какие компоненты вам нужны? Согласно ответу здесь есть способ обработки Unicode строки в Delphi, вам просто нужно позаботиться о правильном преобразовании.   -  person R-D    schedule 15.10.2014
comment
Обычные, такие как TLabel, TEdit, TPanel, TListBox, TMenuItem ... Я имел в виду не передачу строк.   -  person adlabac    schedule 15.10.2014
comment
Есть и другие альтернативы локализации приложений Delphi-4. Они могут поменять местами весь текст в строках ресурсов в exe-файле в зависимости от текущей локали. Multilizer - это один инструмент, есть пара других.   -  person LU RD    schedule 15.10.2014
comment
Delphi 4, возможно, является второй худшей версией из всех выпущенных (при этом Delphi 8, вероятно, является худшей). Почему вообще кто-то мог добровольно остаться с ним?   -  person Ken White    schedule 15.10.2014
comment
Delphi 4 хорошо служит мне с прошлого века. Я написал буквально сотни заявок, и это меня ни разу не подвело. Второй худший? Никогда об этом не слышал и, честно говоря, не возражаю, даже если это так.   -  person adlabac    schedule 15.10.2014
comment
@LURD Похоже, что спрашивающий хочет, чтобы элементы управления графическим интерфейсом с поддержкой Unicode, а не локализация   -  person David Heffernan    schedule 15.10.2014
comment
Вот ссылка на TNT Unicode Controls, где Delphi-5 поддерживается.   -  person LU RD    schedule 15.10.2014
comment
Какие еще пути вы могли бы предложить в качестве решений, если бы не использование библиотеки, которая уже существует (одна нет), или написания / переноса библиотеки самостоятельно? В первом случае этот вопрос не по теме, потому что он требует предложений по сторонним компонентам. В последнем случае это также не по теме, потому что инструкции по написанию или переносу библиотеки Unicode слишком широки для формата Q / A. Дэвид дал вам лучший ответ, который вы собираетесь получить.   -  person J...    schedule 16.10.2014


Ответы (1)


Delphi 4 древний. Вы не найдете компонентов, которые делают то, что вам нужно, и компилируются на Delphi 4. Ваш наиболее жизнеспособный путь - начать с компонентов TNT Unicode и перенести их на Delphi 4.

person David Heffernan    schedule 15.10.2014
comment
Да, моя заявка древняя с точки зрения того, что она проработала 20 лет в отмеченном, но при этом лидирующая в своем нишевом сегменте. Но он по-прежнему великолепен и популярен, как никогда. Я пытался портировать исходный код TNT Unicode, но это оказалось непростой задачей. - person adlabac; 15.10.2014
comment
Это может быть непросто, но это ваш лучший вариант. Кроме, конечно, обновления до последней версии Delphi. - person David Heffernan; 15.10.2014
comment
@adlabac - я не уверен в ваших нетривиальных причинах отказа от обновления. Они тоже мешают вам перейти на более старую версию Delphi? На самом деле я думаю о Delphi 7. Это был самый популярный выпуск Delphi (с поддержкой WideString - компоненты TNT Unicode, набор компонентов Indy, поддержка Kylix и т. Д.). Он также вышел в 2002 году и поддерживает Windows 95/98. (Единственная причина, по которой я мог придумать, использовать старую версию dev env.) - person mg30rg; 15.10.2014
comment
@adlabac, если он действительно ведущий и популярный, почему вы не хотите вкладывать в него (усилия или деньги)? - person Free Consulting; 15.10.2014
comment
@adlabac Дэвид не сказал, что ваше приложение было древним, но что ваша среда разработки (Delphi 4) - древняя. Если это ведущее приложение, отлично! Но вы накопили огромный технический долг, позволив своей разработке настолько устареть. Я бы посоветовал купить копию XE7 и перейти на нее - вы получите не только Unicode, но и значительно улучшенную среду IDE, множество замечательных новых языковых функций, новые элементы управления, доступ к современным библиотекам и т. Д. - person David; 15.10.2014
comment
Я знаю, что сказал Дэвид, я просто сказал, что мое приложение тоже старое, что экономит время на рынке (даже из эпохи DOS). Я, конечно, думал о переходе на более новую версию Delphi, но это было бы моим последним средством. Мне не нужны отличные новые языковые функции, поскольку я не буду использовать их (кроме поддержки Unicode), по крайней мере, не для этого приложения, которое имеет дело с некоторыми сложными математическими вычислениями. Проще говоря, поскольку Unicode - моя единственная проблема, я бы не стал пытаться исправить то, что не сломано (а это легко может быть). - person adlabac; 15.10.2014
comment
Я не уверен, почему вы впервые проголосовали за этот ответ. Как вы думаете, мой ответ неверен? - person David Heffernan; 15.10.2014
comment
Еще одно предложение: обновитесь как минимум до Delphi 5 и используйте инструменты ITE / ETM (интегрированная среда перевода / внешний диспетчер переводов), предоставляемые начиная с D5. (Насколько я помню, изначально они были немного глючными, но этого достаточно, чтобы я / нам удалось сделать вполне удовлетворительную японскую локализацию для приложения, использующего инструменты D7 и ITE / ETM в комплекте с Delphi около 10 лет назад.) - person W.Prins; 15.10.2014