DelFusa Blog 総本山

プログラミングの話題とかです。

NEW | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

"あいうえお"#9"かきくけこ"


今日もソースみてるっすか?

 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
   ∧,,∧    タノシイネ
  ミ,, ゚Д゚彡 
   〃つl⌒|⌒l
 ~ミ,,[ ̄ ̄ ̄.]
      ̄ ̄ ̄

さて、
ちょっとした、誰もしらない(たぶん)
RADStudioテクをご披露するです。
俺は、数年間気がつかなかったよ。


Delphiでラベルをコピーすると
文字列として取得できて
こういう風にエディタで編集できるのは知ってるよね。当然。

object Label1: TLabel
 Caption = 'Label'
end
※位置情報は省略

で、こいつを、現在のRADStudio Delphi2007で日本語で行うと
むかつく事が発生します。
object Label1: TLabel
 Caption = #12354#12356#12358#12360#12362
end

これでは、何がかかれているのかさっぱりわかりません。
実は[あいうえお]と5文字書かれているのですが
これはいったい、何をどう変換したらこうなるのですか?

…ああ、unicodeを10進数で表現しているんだな。
全く不愉快な数字の羅列です。

D6とかでは起きませんか?起きませんね。RADStudioになってからです。

こういう所の作りがいい加減で、、、
ローカライズされていないというかなんというか。ぶつぶつぶつぶつ。


なんで、Labelをコピーしてわざわざ
エディタに貼り付けているかと申しますと

おれは、LabelのCaptionに
  あいうえお
  かきくけこ
と、改行を入れて複数行にしたいんです!

改行コードである#13を文字の間に挟めばいいのですが

このコンポーネントコピーして文字列として編集という技が
unicode化されているので、
日本語文字についてはつかえない。がっかりです。
ラベルに改行コードいれるのはどう工夫しようか…

と、思いこんでしまっていました。

実はですね。

object Label1: TLabel
 Caption = 'あいうえお'#13'かきくけこ'
end

この文字列をコピーしてFormに貼り付けてください。
ちゃんと、Formにラベルが出てきます。

IDE上で、Formをテキスト表示した時はSJISでの編集は無理みたいですが
クリップボード経由で部品を貼り付けた場合、
以前のVersionと互換性があるように
SJIS文字で編集したものでも動作してくれます。

…知ってたかな?
スポンサーサイト

| 未分類 | 14:10 | comments:4 | trackbacks:0 | TOP↑

COMMENT

>クリップボード経由の場合は以前のVersionと同じようにSJIS文字が張り付いて、
じゃなくて、クリップボードサービスが ANSI-UNICODE 変換をしてくれる。が正解だ

| とおりすがり | 2008/02/11 22:51 | URL | ≫ EDIT

書き換えてみたよ。指摘ありがとう。

| ミ・д・彡 | 2008/02/11 23:00 | URL | ≫ EDIT

複数行にするだけなら、フォームを右クリックして「エディタで表示」を選んでCaption に#13#10を入れればOKですよね。
……と、思ったら問題はそこではなく、SJIS のキャプションがクリップボード経由なら問題ないということなんですね。
なるほど。これは良いことを聞きました。

| pik | 2008/02/12 18:49 | URL | ≫ EDIT

プロパティエディタを作る、というテもあります。
http://www2.big.or.jp/~osamu/Delphi/tips.cgi?index=0123.txt

...が、Delphi6以降でプロパティエディタを作った事がないので、今回お土産はありません(w

ちなみにDelphi7&Kylix3では、DFMではなくPASの方の文字コードが違うため、マルチバイト圏の人間は同一ソースでコンパイル...という事もできません。

# 中途半端な仕様ですよね。

| DEKO | 2008/02/12 19:18 | URL | ≫ EDIT















非公開コメント

TRACKBACK URL

http://delfusa.blog65.fc2.com/tb.php/124-98e7ee05

TRACKBACK

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。