「■フォーカス監視グループ」の編集履歴(バックアップ)一覧はこちら
「■フォーカス監視グループ」(2008/10/31 (金) 16:43:28) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*情報
作者名:とんとん / yuk / SWinX
引用元:[[なでしこプログラム掲示板「はっぱのサンプル集57」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=734&rev=&no=0]]
*概要
登録した部品に「フォーカス得た時」「フォーカス失った時」イベントを拡張します。
グラフィック系の部品は登録できません(ウィンドウハンドルが得られない為)
*解説
質問掲示板#6987の話題をグループ化してみました。
参考:[[なでしこ質問掲示板「エディタで数値入力&編集表示」>http://www.himanavi.net/cgi/nade-bbs2/cbbs.cgi?mode=all&number=6987&type=0&space=0&no=0]]
質問者のとんとんさんと回答者のyukさんに感謝します
*本体
//WinAPI定義
●GetFocus=DLL("USER32.DLL","DWORD GetFocus(void)")
//登録した部品に「フォーカス得た時」「フォーカス失った時」イベントを拡張します
//グラフィック系の部品は登録できません(ウィンドウハンドルが得られない為)
■フォーカス監視 +タイマー
・ハンドル一覧{=""}
・登録({グループ}Gを)~
H=G→ハンドル
S=G→名前
ハンドル一覧@H=S
・検索(Hを)~
それ=ハンドル一覧@H
・値{=10}
・前ハンドル
・時満ちた時~
停止
今ハンドルとは整数=GetFocus
もし前ハンドル<>今ハンドルなら
前ハンドルを検索
もしそれ<>""なら
「{それ}→フォーカス失った時」をナデシコする
今ハンドルを検索
もしそれ<>""なら
「{それ}→フォーカス得た時」をナデシコする
前ハンドル=今ハンドル
開始
*//サンプルプログラム
Tとはフォーカス監視。
母艦をTに登録。
テストエディタAとはエディタ。
テストエディタAをTに登録。
テストエディタAのフォーカス得た時は~
テストエディタA=テストエディタAの"[^0-9]"を""へ正規表現置換
テストエディタAのフォーカス失った時は~
テストエディタA=テストエディタAを通貨形式して8で文字列右寄せ
テストエディタAのキー押した時は~キーイベント
テストエディタBとはエディタ。
テストエディタBをTに登録。
テストエディタBのフォーカス得た時は~
テストエディタB=テストエディタBの"[^0-9]"を""へ正規表現置換
テストエディタBのフォーカス失った時は~
テストエディタB=テストエディタBを通貨形式して8で文字列右寄せ
テストエディタBのキー押した時は~キーイベント
テストエディタCとはエディタ。
テストエディタCをTに登録。
テストエディタCのキー押した時は~キーイベント
テストボタンとはボタン。
テストボタンをTに登録。
Tの前ハンドルは母艦ハンドル
Tを開始
●キーイベント
イベント部品→押された仮想キーで条件分岐
13ならば //ENTER
母艦にタブをキー送信
40ならば //↓
母艦にタブをキー送信
38ならば //↑
母艦に「+{タブ}」をキー送信
----
#comment()
----
*情報
作者名:とんとん / yuk / SWinX
引用元:[[なでしこプログラム掲示板「フォーカス監視グループ」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=957&rev=&no=0]]
*概要
登録した部品に「フォーカス得た時」「フォーカス失った時」イベントを拡張します。
グラフィック系の部品は登録できません(ウィンドウハンドルが得られない為)
*解説
質問掲示板#6987の話題をグループ化してみました。
参考:[[なでしこ質問掲示板「エディタで数値入力&編集表示」>http://www.himanavi.net/cgi/nade-bbs2/cbbs.cgi?mode=all&number=6987&type=0&space=0&no=0]]
質問者のとんとんさんと回答者のyukさんに感謝します
*本体
//WinAPI定義
●GetFocus=DLL("USER32.DLL","DWORD GetFocus(void)")
//登録した部品に「フォーカス得た時」「フォーカス失った時」イベントを拡張します
//グラフィック系の部品は登録できません(ウィンドウハンドルが得られない為)
■フォーカス監視 +タイマー
・ハンドル一覧{=""}
・登録({グループ}Gを)~
H=G→ハンドル
S=G→名前
ハンドル一覧@H=S
・検索(Hを)~
それ=ハンドル一覧@H
・値{=10}
・前ハンドル
・時満ちた時~
停止
今ハンドルとは整数=GetFocus
もし前ハンドル<>今ハンドルなら
前ハンドルを検索
もしそれ<>""なら
「{それ}→フォーカス失った時」をナデシコする
今ハンドルを検索
もしそれ<>""なら
「{それ}→フォーカス得た時」をナデシコする
前ハンドル=今ハンドル
開始
*//サンプルプログラム
Tとはフォーカス監視。
母艦をTに登録。
テストエディタAとはエディタ。
テストエディタAをTに登録。
テストエディタAのフォーカス得た時は~
テストエディタA=テストエディタAの"[^0-9]"を""へ正規表現置換
テストエディタAのフォーカス失った時は~
テストエディタA=テストエディタAを通貨形式して8で文字列右寄せ
テストエディタAのキー押した時は~キーイベント
テストエディタBとはエディタ。
テストエディタBをTに登録。
テストエディタBのフォーカス得た時は~
テストエディタB=テストエディタBの"[^0-9]"を""へ正規表現置換
テストエディタBのフォーカス失った時は~
テストエディタB=テストエディタBを通貨形式して8で文字列右寄せ
テストエディタBのキー押した時は~キーイベント
テストエディタCとはエディタ。
テストエディタCをTに登録。
テストエディタCのキー押した時は~キーイベント
テストボタンとはボタン。
テストボタンをTに登録。
Tの前ハンドルは母艦ハンドル
Tを開始
●キーイベント
イベント部品→押された仮想キーで条件分岐
13ならば //ENTER
母艦にタブをキー送信
40ならば //↓
母艦にタブをキー送信
38ならば //↑
母艦に「+{タブ}」をキー送信
----
#comment()
----