初めて投稿します。
Delphi7 で旧漢字(JIS第三水準の文字)を入力しようとすると、"?"になってしまいます。
Delphi7 ではコードページ932を使っているようではありますが、JIS第三水準の文字を入出力できるようにする方法はありませんか?
よろしくお願いします。
OSが不明。Vistaなら標準で扱えるのかな?
WinXP、Win2000でJIS第三水準・第四水準の文字を扱う方法が
↓ここに書いてあるけど、Unicodeに対応させる必要ありなのね。
http://daukan.hp.infoseek.co.jp/code/jisx0213.htm
DelphiでUnicodeを本格的に扱うには、VCLもUnicode対応にすることで、
そのコンポは↓ここに。
http://mh-nexus.de/tntunicodecontrols.htm
OSは?さん、
ありがとうございます。
OSはWinXPです。
ご紹介いただいたMicrosoftのパッチですが、既に当てています。
また、TNT Unicode Controls もDLし試してみましたが、JIS第三水準の文字は
扱えるようにはなりません…
UNICODEはANSIstringではなくWIDEstringで扱わなくてはなりません。
あとAPIはすべてwがつくものを使用しなくてはなりません。
Delphi2007まではデフォルトAPIはすべてANSI型なので全く使えません。
Delphi2008からは標準がUNICODEになる予定だそうです。
急ぎでなければあと100日待ちましょう。
procedure TForm1.Button1Click(Sender: TObject);
var
wc:WideString;
begin
wc :='';
wc :=wc + #$2600;
wc :=wc + #$2601;
wc :=wc + #$2602;
wc :=wc + #$2603;
wc :=wc + #$2604;
//メッセージボックス
MessageBoxW(Handle,PWideChar(wc),'',MB_OK);
//Canvas描画
TextOutW(Canvas.Handle,0,0,PWideChar(wc),Length(wc));
end;
もにゃさん、
ありがとうございます。
> UNICODEはANSIstringではなくWIDEstringで扱わなくてはなりません。
> あとAPIはすべてwがつくものを使用しなくてはなりません。
> Delphi2007まではデフォルトAPIはすべてANSI型なので全く使えません。
Delphi2007までは TEdit の text プロパティなどではunicodeは扱えない、
ということでしょうか?
扱えません。
もちろん、改造すれば扱えますが、
その改造を行ったのものがTNTcontrol群です。
TNT Editをフォームに貼り付けて、
メモ帳からUnicode文字をコピぺしてみてください。
うまく貼り付けられると思います。
プログラム上でそれらの文字を扱う場合はstringではなくwidestringを指定してあげてください。
もにゃさん、
度々ありがとうございます。
TntEditを使うことで解決できました。
お忙しい中、ありがとうございました!
ツイート | ![]() |