2008-11-18 4 views
5

Delphi 2006에서 완전히 유니 코드 호환되는 응용 프로그램이 있습니다. 모든 AnsiString을 WideString으로 대체하고 모든 VCL 컨트롤을 TNT 컨트롤로 대체했으며 모든 문자열 함수를 AnsiStrings에서 WideStrings. 그 모든 일은 아무것도 아닌 것처럼 보입니다. 왜냐하면 나는 그것을 전부 되돌려 야 할 것이기 때문입니다. Widestrings이 실제로 UnicodeString 인 것을 생각하면 Delphi 2009를 트릭 할 수 있습니까?유니 코드를 Delphi 2009에서 Delphi 2009로 포팅

+0

그런데 대답을 받아 들일 수 있다면 ..... –

답변

13

아니요, 실제로 없습니다. 그러나 진정으로 유니 코드로 응용 프로그램을 사용할 수 있도록 작업을 후회하지 않아도됩니다.

TNT 컨트롤은 일반 VCL 컨트롤로 쉽게 대체 할 수 있습니다. 하나의 제어 유형을 다른 제어 유형으로 자동 대체하는 GExperts (http://www.gexperts.org)의 마법사를 사용하면 간단하게 처리 할 수 ​​있습니다.

그런 다음 모든 WideString 선언을 일반 문자열로 변경할 수 있습니다. String은 이제 UnicodeString의 별칭이므로 모든 문자열에 유니 코드 데이터를 저장할 수 있습니다.

BTW, TNT 컨트롤 작성자 인 Troy Wolbrink는 현재 자신의 컨트롤보다 Delphi 2009를 크게 선호합니다.

+1

그리고 내가 말할 수있는 한, 코드를 유니 코드 델피로 변환하기위한 최선의 리소스 중 일부는 어떤 사람이 작성한 백서입니다 명명 된 닉. 또한, 깊이있는 전환을 다루는 Marco Cantu의 꽤 좋은 책이 있습니다. 많은 이유가 있으며, 응용 프로그램이 기본 유니 코드 델파이로 이동할 수 있도록 많은 돈을 지불해야합니다. 적어도 12 개 이상의 주요 앱을 위해 해왔습니다. –

+0

글쎄, 망할, 워렌. :-) –

0

TNT Controls의 주요 장점은 Windows 9x에서 Ansi 프로그램으로 작동 할 수 있다는 것입니다. 그것은 완전한 유니 코드가 아닙니다. 어디에나 완전한 유니 코드 지원 (예 : Stringlist.LoadFromFile, Form.OnKeyPress)을 원한다면 Delphi 2009로 이동하는 것이 좋습니다.

+0

나는 심지어 문자열리스트를 WideStringLists로 대체했다. Delphi 2009에서 텍스트 파일이 유니 코드입니까? 나는 텍스트 파일을 Filestreams로 대체했다. – Steve

+0

widestringlist를 사용하여 유니 코드 텍스트를로드 할 수 있지만 ansi 파일 이름을 사용하는 것처럼 파일 이름이 아닌 파일의 텍스트를로드 할 수 없습니다. – samir105

0

입력으로 다른 XML 파일을 사용하는 응용 프로그램에서 동일한 작업을 수행했습니다. 필자는 프로그램 전체에서 UTF-8 (표준 문자열을 사용할 수 있음)을 사용하고 있었고 디스플레이 목적으로 만 WideString으로 변환했습니다 (TNT 컨트롤).

WideString과 UTF-8 사이에서 앞뒤로 변환을 제거하고 소수의 양식 만 있으므로 TNT 컨트롤을 일반 VCL 컨트롤로 손으로 교체했습니다.

변환 작업은 테스트와 함께 약 1 시간이 걸렸습니다. 코드가 더 간단하고 프로그램이 눈에 띄게 빠릅니다.