DateTimePickerの表示を和暦にするには?

解決


やまだ  2014-10-30 13:57:24  No: 46801  IP: 192.*.*.*

こんにちは。
いつもお世話になっております。

開発環境は、delphiXE3 enterprise(update2適用)、win7(sp1)です。

日付の入力にDateTimePickerを使っています。

いまDateTimePickerの表示形式は、yyyy/mm/ddです。

これを平成26年01月01日のように和暦表示にしたいです。

和暦なのでカレンダーのタイトルも「2014年10月」ではなく「平成26年10月」にしたいです。

サイトを探していたんですが、vb.netのdatetimepickerはあるんですが、delphiのdatetimepickerの技術文書はコレというものがありませんでした。

もともと不可能なのでしょうか?

ちなみにformatプロパティに「ggy年m月d日」としても上手く表示できませんでした。

OSの情報を変えなきゃいけないみたいなことはサイトで見つけたんですが、さすがにそれは難しいです。

何か関連する情報でも良いです。

教えてください。

よろしくお願いします。

編集 削除
deldel  2014-10-30 16:59:09  No: 46802  IP: 192.*.*.*

ここはどうですか?
http://natchan-develop.seesaa.net/article/17027490.html

編集 削除
やまだ  2014-10-30 18:08:04  No: 46803  IP: 192.*.*.*

教えていただいたサイトは、vb.netのものっぽいです。

delphiにJapaneseCalendarとかクラスがあるのか分からなかったので、無理かなと思っていました。

こちらに乗っているソースを変換できたら良いのですが。

そこまで詳しくないので、ココのサイトは諦めていました。

編集 削除
通りすがり  2014-10-30 18:25:53  No: 46804  IP: 192.*.*.*

ちょっときちんとは調べてないんですけど、これですかね?
http://www.swissdelphicenter.ch/en/showcode.php?id=355

あとで調べてみますが、いちおう情報として…

編集 削除
tor  2014-10-30 21:35:21  No: 46805  IP: 192.*.*.*

一応ここも参考になるかな(2番目のコメント)
コードはC#だけど、ライブラリの使い方とか割とDelphiに近いので移植もしやすいと思います。
DateTimePickerで和暦を表示させる
http://blogs.wankuma.com/mnow/archive/2006/05/21/26510.aspx

上で紹介されている二つもだいたい考え方は同じみたいですので、一応原理を説明しておくと
DateTimePickerの日付が変わったら年の部分だけ自前で変換して、それをFormatにリテラル文字列として追加するという方法をとっています。
Format := '平成25年' + 'M月d日'; みたいな感じですね。これを日付が変わるたびに設定しなおすと。
こういう原理だとわかると、実装の仕方もなんとなく見えてくるんじゃないでしょうか。

編集 削除
やまだ  2014-10-31 16:53:00  No: 46806  IP: 192.*.*.*

仰られているとおりにしたら実現は出来たのですが。

僕が質問を投稿した際、「表示形式」とか「和暦表示」と書いてしまったため、少々違う動きのものが実現できてしまいました。

情報不足な質問をしてしまって申し訳ございません。

仰られていたように「平成26年10月31日」と表示できました。

でも、もちろん平成26年の26がリテラルだから入力できないのは当然なんですが、エンドユーザー様から違和感があると言われてしまいました。

教えていただいたのに、申し訳ございませんでした。

勉強になりました。

お騒がせしました。

編集 削除