Delphi2005で欧文の文字(UTF-8)をTEditに表示


お世話になります  2012-09-25 15:39:16  No: 43011  IP: 192.*.*.*

Delphi2005でプログラムを作っています。
UTFコードの文字(ドイツ語)をTEditに表示させたいのですが、文字化けしてしまいます(ウムラウト等)。
なにかいい方法があるでしょうか?

編集 削除
igy  2012-09-25 17:08:20  No: 43012  IP: 192.*.*.*

UNICODE対応のDelphi2009以降を使うのは、だめですか?
# 最新の DelphiXE3 体験版がダウンロードできるので、それで試してみるとか・・・

編集 削除
igy  2012-09-25 17:37:35  No: 43013  IP: 192.*.*.*

Delphi2005で、ということでしたら、

TMS Unicode Component Pack(英語版)
http://www.componentsource.co.jp/products/tms-unicode-component-pack/index.html

のようなコンポーネントもあるようです。
# 実際、使ったことはないので、“お世話になります”さんが希望されることができるかわかりませんが・・・

編集 削除
お世話になります  2012-09-26 07:56:44  No: 43014  IP: 192.*.*.*

igyさん、ありがとうございます。
今はあまりお金がないので、体験版でやってみます。
ところで、Delphi2005のプログラムはそのまま使えるのでしょうか?
(TEditに表示する部分以外は)正常に動いているソフトを修正して使いたいのです。

編集 削除
igy  2012-09-26 11:25:45  No: 43015  IP: 192.*.*.*

>ところで、Delphi2005のプログラムはそのまま使えるのでしょうか?
>(TEditに表示する部分以外は)正常に動いているソフトを修正して使いたいのです。

思いつくことを、挙げてみると・・・

・Delphi2005にコンポーネントをインストールして使用しているなら、XE3に対応したものが必要です。
・Delphi2005には標準搭載されていたが、XE3に搭載されなくなったコンポーネントがあれば、
  その処理の部分の書き換えか、
  (Starter版以外の製品版のXE3には旧バージョンの2009〜XE2もダウンロードして使用できますので、)
  Delphi2009〜XE2で搭載されているなら、XE3ではなく、搭載しているほうのDelphiを使用するなど、検討する必要があります。
・UNICODE対応のための修正
  DEKOさんの資料
  http://ht-deko.minim.ne.jp/tech045.html#tech093
  あたりを参照してみてください。

でしょうか。

編集 削除
au  2012-09-26 11:38:46  No: 43016  IP: 192.*.*.*

TMS Unicode Component Packの元になったTNT Unicode Controlsが下記からダウンロード出来るようなので、Delphi2005で行くならこちらを使うのもありかと思います。
http://www.yunqa.de/delphi/doku.php/products/tntunicodecontrols/index

編集 削除
お世話になります  2012-09-28 16:57:22  No: 43017  IP: 192.*.*.*

XE3の体験版を使ってみようかと思ったんですが、いろいろと変更するところが多いみたいで、私にはハードルが高いです。
1ヶ月という制限もあります。
TNT Unicode Controlsを使ってみようかと思って検索していたんですが、いまいちよくわからず、調べているうちにRichEditでもいける(Delphi2005でも?)ようなことを書いていたので、RichEditに表示させようとしたのですが、やはり文字化けしました。
RichEditでエンコードを指定する方法でもあるのでしょうか?

編集 削除
けど  2012-09-28 22:56:15  No: 43018  IP: 192.*.*.*

表示するのが目的なら TWebBrowser 使っちゃうとか
  WebBrowser1.Navigate('D:\中身がUNICODE.txt');
右クリックとかできちゃうけど

編集 削除
お世話になります  2012-09-29 05:50:52  No: 43019  IP: 192.*.*.*

けどさん、ありがとうございます。
試してみます。

編集 削除
takana  2012-09-29 07:46:47  No: 43020  IP: 192.*.*.*

WebBrowserを使った方法で、右クリックの内容を変更したいなら以下のコードで可能です。

PopupMenu1: TPopupMenu;
を追加したら、右クリックメニューを自由にカスタマイズすることが可能です。
ただし、クリップボードへのコピーを可能にしたいなら以下を参照して下さい
https://www.petitmonte.com/bbs/answers?question_id=4744


procedure TForm1.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate('D:\中身がUNICODE.txt');

  Application.OnMessage := HookWndProc;
end;

procedure TForm1.HookWndProc(var Msg: TMsg; var Handled: Boolean);
//var
//  Pos: TPoint;
begin
  with msg do
  begin
    if (message = WM_CONTEXTMENU) or (message = WM_RBUTTONUP) then
    begin
      if GetParent(GetParent(hwnd)) = WebBrowser1.Handle then
      begin
//        GetCursorPos(Pos);
//        PopupMenu1.Popup(Pos.x, Pos.y);
        Handled := true;
        Exit;
      end;
    end;
  end;
end;

編集 削除
こんぽ  2012-09-29 08:43:03  No: 43021  IP: 192.*.*.*

SpTBXLibとか
http://www.silverpointdevelopment.com/

編集 削除