喫茶XRAYトップページ


[1441] 元号選択式日付時刻入力について返信 削除
2007/11/8 (木) 03:26:48 kc
はじめまして、こんにちは。
元号選択式日付時刻入力を使わせて頂きました。
大変便利なコントロールをありがとうございます。

2つほど質問があり、投稿します。

@元号・年月日の状態でEnterキーによるフォーカス移動をすると
元号・月の順にフォーカスが移り年と日に移動しません。
Tabキーでは正常に移動します。

A年月日ラベルのベベルをフラット表示にしclBntFaceカラーにしたいです

上記2点、修正方法を教えていただけないでしょうか?
お手数をお掛けしますがよろしくお願いします。


[1443] Re:元号選択式日付時刻入力について返信 削除
2007/11/8 (木) 20:05:06 Mr.XRAY
▼ kcさん
> はじめまして、こんにちは。

こちらこそ,こんにちは.

> (1)元号・年月日の状態でEnterキーによるフォーカス移動をすると
> 元号・月の順にフォーカスが移り年と日に移動しません。
> Tabキーでは正常に移動します。


あれまっ.ちょっとお待ち下さい.これから確認します.
その前にちょっと他の作業が入っていますので.スミマセン.

>
> (2)年月日ラベルのベベルをフラット表示にしclBntFaceカラーにしたいです


これも,同様の理由で,スミマセンね.
# ○に数字の文字は機種依存文字なので変更しました.

[1444] Re2:元号選択式日付時刻入力について返信 削除
2007/11/9 (金) 03:07:22 kc
> あれまっ.ちょっとお待ち下さい.これから確認します.
> その前にちょっと他の作業が入っていますので.スミマセン.


レスありがとうございます。

私は急いでませんのでXRAYさんの時間のある時で大丈夫です。
よろしくお願いします。


[1445] Re:元号選択式日付時刻入力について返信 削除
2007/11/10 (土) 19:02:26 Mr.XRAY
お待たせして申し訳ありません.


>(1)元号・月の順にフォーカスが移り年と日に移動しません。

ちょっとテストしてみました.単にコンポを配置しただけでは(プロパティは
全てデフォルトのまま),現象を確認できませんでした.
WindowsXP(SP2) + Delphi7 Pro
plDateEditはサイトにUPしたものを使用

もし,他になにか操作用のイベントとかコードを追加しているのであれば
教えて下さい.
一応,テストプログラムを以下に置いて置きました.

http://mrxray.on.coocan.jp/LzhFiles/DateEdit_FocusTest.zip


(2)年月日ラベルのベベルをフラット表示にしclBntFaceカラーにしたいです

以下のページの最後の方の説明
[各ラベルへのアクセス用プロパティ]で色は変更できます.

http://mrxray.on.coocan.jp/Delphi/plDateEdit/B_Property.htm

また,ソースコードの
TplDateEdit.CreateLabelがこのラベルを作成しているところです.
この部分を変更すれば実現できます.

これはTCustomControlから作成しています.フラットのように見せるには
修正が必要ですね.
これは考えさせて下さい.というのは,わさわざ今のスタイルにしています
ので.

       CreateLabel  (FHourLabel,'時');
       CreateEditBox(FMinuteEdit);
       CreateLabel  (FMinuteLabel,'分');
       CreateEditBox(FSecondEdit);
       CreateLabel  (FSecondLabel,'秒');
 

[1446] Re2:元号選択式日付時刻入力について返信 削除
2007/11/10 (土) 19:16:10 Mr.XRAY
> これは考えさせて下さい.というのは,わさわざ今のスタイルにしています
> ので.


もし,コードを修正して使用するのであれば,TCustomControから作成していま
すので,元々フラットです.

procedure TplDateEditLabel.Paint;

で今のスタイルにしていますので,このPaintメソッドの中の
(1)...の部分を削除すればフラットに戻ります.

     {$IFDEF VER150}
     if ThemeServices.ThemesEnabled then begin
       AEge    :=BDR_RAISEDOUTER;
       AGrfFlag:=BF_FLAT or BF_RECT;
     end else begin
       AEge    :=EDGE_SUNKEN;  (1)
       AGrfFlag:=BF_RECT;      (2)
     end;
     {$ELSE}
     AEge    :=EDGE_SUNKEN;    (3)
     AGrfFlag:=BF_RECT;        (4)
     {$ENDIF}

定数値については,例えば以下を参考にして下さい.

http://www.activebasic.com/help_center/Pages/API/Window/PaintingAndDrawing/DrawEdge.htm

以上,よろしくお願いします.


[1450] Re3:元号選択式日付時刻入力について返信 削除
2007/11/13 (火) 02:31:41 kc
>ちょっとテストしてみました.単にコンポを配置しただけでは(プロパティは
>全てデフォルトのまま),現象を確認できませんでした.


お騒がせしてすみませんでした。

基本になっている継承元のフォームで
enterキーによるtabエミュレーションを行っている事が原因でした。
その為にenterキーで二つフォーカスを移動してしまった様です。
EnterNextプロパティをFlaseにして、解決しました。

フラット表示の件については早速試してみます。
お忙しい中、確認していただきありがとうございました。

今後とも、よろしくお願いします。


[1451] Re4:元号選択式日付時刻入力について返信 削除
2007/11/13 (火) 23:03:20 Mr.XRAY
▼ kcさん

> 基本になっている継承元のフォームで
> enterキーによるtabエミュレーションを行っている事が原因でした。
> その為にenterキーで二つフォーカスを移動してしまった様です。
> EnterNextプロパティをFlaseにして、解決しました。


スミマセンね.これあるんですよ.直そうと思ってそのままなんです.
内部と外部で両方でダブって動作してしまうんです.
申し訳ないんですが,その方法で逃げて下さい.

早く直せって!?
そのうち(こればっかり) (^_^;)

フラットな方は,プロパティを追加してもいいとは思うんですが...

[1452] Re5:全くのいいわけですが...返信 削除
2007/11/14 (水) 00:11:32 Mr.XRAY
> スミマセンね.これあるんですよ.直そうと思ってそのままなんです.
> 内部と外部で両方でダブって動作してしまうんです.


他のコンポのバグまたは仕様? を中々修正しないのには訳があるんです.
言い訳と言えば言い訳なんですが.

今回の件も,Kcさんのレスを読んで思い出したのです.私もそうしています.
これらのコンポを多く使用した業務アプリを作成してしまっているんんです.
これらのアプリでの動作も保ちながら修正していくというが,結構困難な
気がします.

ということで勘弁して下さい.つまり,得意の「仕様」ということで(汗).

[1453] Re6:全くのいいわけですが...返信 削除
2007/11/14 (水) 03:13:41 kc
> これらのコンポを多く使用した業務アプリを作成してしまっているんんです.
> これらのアプリでの動作も保ちながら修正していくというが,結構困難な
> 気がします.
>
> ということで勘弁して下さい.つまり,得意の「仕様」ということで(汗).


レスどうもです。
enterキー処理後に key:=#0 で下位(上位?)に渡さなければ問題無いと思いますが...
フラットな件も含め、どちらにしても作者様の判断でOKだと思います。

私は「仕様」って事で了解です(^-^)



INCM/CMT
Cyclamen v3.82