喫茶XRAYトップページ

[スレッド全体
]

[8156] TDateTimePicker で元号表示返信 削除
2014/10/31 (金) 06:50:13 Mr.XRAY
[DateTimePickerの表示を和暦にするには?]
http://hpcgi3.nifty.com/e-papy/DelphiBBS/wwwlng.cgi?print+201410/14100021.txt

tor さんがレスの中で書いているリンクのコードを
そのままコピペしてやってみました.

動作確認環境は以下です.
対象フレームワーク .NET Framework 4.0
Windows 7 U64(SP1) + VS Express 2013 Desktop C#

この仕様だったら Delphi でも実現可能ですね.

Delphi の TDateTimePicker は Windows の DateTimpPicker を使用しています.
Windows に DTM_SETFORMAT メッセージで送った書式で日付時刻を表示します.
DTM_SETFORMAT は CommCtrl.pas に定義があります.
表示するコードが Delphi 製だったら簡単だったと思うんですが.

興味がありましたら試してみてください.
EXE を UP しておきます.
図は EXE 起動時の画面です.

http://mrxray.on.coocan.jp/Delphi/zip/DateTimePickerEra_CShape.zip


[8159] Re:TDateTimePicker で元号表示返信 削除
2014/10/31 (金) 19:40:40 igy
DateTimePickerもどきを作成するには?
http://hpcgi3.nifty.com/e-papy/DelphiBBS/wwwlng.cgi?print+201410/14100022.txt

のほうでは、

元号選択式日付時刻入力コンポーネント
http://mrxray.on.coocan.jp/Delphi/plDateEdit/index.htm

を紹介しておきました(笑)。


[8160] Re2:TDateTimePicker で元号表示返信 削除
2014/10/31 (金) 19:58:10 Mr.XRAY
▼ igyさん

> 元号選択式日付時刻入力コンポーネント
> http://mrxray.on.coocan.jp/Delphi/plDateEdit/index.htm
>
> を紹介しておきました(笑)。


ハハハッ.本人は自分で作りたいようですし,
ご希望にかなうかは自信ありません.
昔,カレンダーコンポーネントがあったのですが,今はどうなでしょう.
たしか,TStringGrid から派生して開発されたコンポーネントでした.
私も使っていました.

> カレンダーつけるかもしれませんね・・)

全く予定はありません(キッパリ) !! (^^;


[8161] Re3:TDateTimePicker で元号表示返信 削除
2014/10/31 (金) 21:02:13 igy
▼ Mr.XRAYさん
> 昔,カレンダーコンポーネントがあったのですが,今はどうなでしょう.
> たしか,TStringGrid から派生して開発されたコンポーネントでした.


ツールパレットの[Samples]に TCalendar があるようです。

これを日曜日・祝祭日を赤、土曜日を青で表示するようにして、ボタンつけたりして、
使っています。

> > カレンダーつけるかもしれませんね・・)
>
> 全く予定はありません(キッパリ) !! (^^;


まあ、必要だったら、ユーザーが各々、好みのカレンダーコンポーネントと
組み合わせて使えば、よいですしね(笑)。


[8176] Re4:TDateTimePicker で元号表示返信 削除
2014/11/4 (火) 20:42:00 Mr.XRAY
> まあ、必要だったら、ユーザーが各々、好みのカレンダーコンポーネントと
> 組み合わせて使えば、よいですしね(笑)。


igy さんのデザインを利用して作成してみました.
祝祭日の設定はまだやっていません.
後は適当に...

TplDateEdit コンポの継承クラスです.
実行時に生成するテストしかしていません.

http://mrxray.on.coocan.jp/Delphi/zip/plDateEditPicker.zip
(689 KB テストプログラムの EXE 同梱.ソースコード同梱)
(2014年11月10日削除)


[8177] Re5:TDateTimePicker で元号表示返信 削除
2014/11/4 (火) 21:31:47 Mr.XRAY
あうっ,今見たら,元号の文字の右側が少し欠けていますね.
plDateEdit.pas の中を検索して,以下の部分を直してください.
この部分が 元号のコンボボックスの幅を設定しているところです.
本当は,もっと真面目に幅の計算をすればいいんですが...

スミマセンね m(_ _)m

      {$IF CompilerVersion > 14.99}
      if ThemeServices.ThemesEnabled then begin
        TComboBox(Sender).Width := Canvas.TextWidth('0000') + 30; //24
      end else begin
        TComboBox(Sender).Width := Canvas.TextWidth('0000') + 27;
      end;
      {$ELSE}
      TComboBox(Sender).Width := Canvas.TextWidth('0000') + 27;
      {$IFEND}
    end;


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82