メインプログラムの閉じるボタンを無効にしたい
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
rnishimura
投稿数: 8
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
お世話になっております。
メインプログラムのタスク前で下記UDPを実行し閉じるボタンのみ無効にしています。
外部コール UDP 式:'get.disable_close' パラメータ:WinHWND(0)
ただ、最小化、最大化をしたときに閉じるボタンが有効に戻ってしまいます。
メインプログラムのみを実行した場合は、「ウィンドウサイズ変更」のイベントが取れるので、その都度、無効にできるのですが、別プログラムから実行した場合、「ウィンドウサイズ変更」のイベントが取れません。
メインプログラムの閉じるボタンを無効のままにしておくにはどうすればよいかご教授いただけないでしょうか?
メインプログラムのタスク前で下記UDPを実行し閉じるボタンのみ無効にしています。
外部コール UDP 式:'get.disable_close' パラメータ:WinHWND(0)
ただ、最小化、最大化をしたときに閉じるボタンが有効に戻ってしまいます。
メインプログラムのみを実行した場合は、「ウィンドウサイズ変更」のイベントが取れるので、その都度、無効にできるのですが、別プログラムから実行した場合、「ウィンドウサイズ変更」のイベントが取れません。
メインプログラムの閉じるボタンを無効のままにしておくにはどうすればよいかご教授いただけないでしょうか?
投票数:0
平均点:0.00
AlphaHoshino
投稿数: 51
![常連 常連](../../uploads/rank3dbf8e9e7d88d.gif)
こんにちは。
お求めになっている動きと違っていたらすみません。
私は以前、メインプログラムのロジックの中にイベントを定義しました。
「E=イベント」
「終了(X)」
「スコープ=タスク」
この定義したイベントの中は何も記述しません。
メインプログラムの閉じるボタン(×ボタン)クリック時、
上記イベントが発生し、何も処理せず終わる流れになります。
お求めになっている動きと違っていたらすみません。
私は以前、メインプログラムのロジックの中にイベントを定義しました。
「E=イベント」
「終了(X)」
「スコープ=タスク」
この定義したイベントの中は何も記述しません。
メインプログラムの閉じるボタン(×ボタン)クリック時、
上記イベントが発生し、何も処理せず終わる流れになります。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
AlphaHoshinoさん、こんにちは。
基本的にその方法でよろしいかと思いますが、ちなみにMagic本体を
正式に終了しようとしたときはどのように操作されていますか?
基本的にその方法でよろしいかと思いますが、ちなみにMagic本体を
正式に終了しようとしたときはどのように操作されていますか?
投票数:0
平均点:0.00
AlphaHoshino
投稿数: 51
![常連 常連](../../uploads/rank3dbf8e9e7d88d.gif)
Tandaさん、こんにちは。
システムを実行するとメニューが表示される作りとなっていまして、
そのメニューの中にある「業務終了」ボタンを押下時に業務終了イベントを発行させ、
そのイベントの中で終了(X)を記述しています。
メインプログラムに定義しましたイベントはスコープをタスクにしていますので、
メニューの中では終了(X)が働くかと思い、このような作りとしました。
もし何か間違えているようでしたら、ご教示頂けると助かります!
システムを実行するとメニューが表示される作りとなっていまして、
そのメニューの中にある「業務終了」ボタンを押下時に業務終了イベントを発行させ、
そのイベントの中で終了(X)を記述しています。
メインプログラムに定義しましたイベントはスコープをタスクにしていますので、
メニューの中では終了(X)が働くかと思い、このような作りとしました。
もし何か間違えているようでしたら、ご教示頂けると助かります!
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
AlphaHoshinoさん、こんにちは。
あ、別プロを用意して、常にそこから正常終了させるわけですね。
いいアイデアですね。(^^)/
あ、別プロを用意して、常にそこから正常終了させるわけですね。
いいアイデアですね。(^^)/
投票数:0
平均点:0.00
AlphaHoshino
投稿数: 51
![常連 常連](../../uploads/rank3dbf8e9e7d88d.gif)
ありがとうございます。
Tandaさんから、いいねを頂けて嬉しいです*^^*
Tandaさんから、いいねを頂けて嬉しいです*^^*
投票数:0
平均点:0.00
rnishimura
投稿数: 8
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
AlphaHoshinoさん、Tandaさん、こんにちは。
メインプログラムの終了イベントを定義しますと、スコープをタスクにしていても
メインプログラムの終了ができませんので、終了イベントの条件をメニュー側の
終了フラグがたっていないときにしておけば、動きとしては実現できそうです。
ただ、メインプログラムの閉じるボタンが押せてしまうのはどうにもならなそうですね。
メインプログラムの終了イベントを定義しますと、スコープをタスクにしていても
メインプログラムの終了ができませんので、終了イベントの条件をメニュー側の
終了フラグがたっていないときにしておけば、動きとしては実現できそうです。
ただ、メインプログラムの閉じるボタンが押せてしまうのはどうにもならなそうですね。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
rnishimuraさん、こんにちは
AlphaHoshinoさんのアドバイス通りに設定すれば、そのような動きには
ならないですよ。
もう一度、確認してみてください。
AlphaHoshinoさんのアドバイス通りに設定すれば、そのような動きには
ならないですよ。
もう一度、確認してみてください。
投票数:0
平均点:0.00
rnishimura
投稿数: 8
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
Tandaさん、こんにちは
そのような動きとはメインプログラムに終了イベントを定義しているとメインプログラムが終了できなくなるとゆうとこでしょうか?
それとも、閉じるボタンが押せてしまうのがおかしいとゆうことでしょうか?
記載していませんでしたが、閉じるボタンは押せてしまいますが、メインプログラムに終了イベントを定義しているので画面の終了はされません。
わかりにくい質問で申し訳ござません、
そのような動きとはメインプログラムに終了イベントを定義しているとメインプログラムが終了できなくなるとゆうとこでしょうか?
それとも、閉じるボタンが押せてしまうのがおかしいとゆうことでしょうか?
記載していませんでしたが、閉じるボタンは押せてしまいますが、メインプログラムに終了イベントを定義しているので画面の終了はされません。
わかりにくい質問で申し訳ござません、
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
rnishimuraさん、
メインプログラムに空の終了イベントハンドラを定義してやれば、rnishimura
さんのお望みの動作になるはずです。
メインプログラムの閉じるボタンも一切、押せないようになります。パソコン
がフリーズした状態になります。従って、AlphaHoshinoさんが言われるように、
別途、終了専用のイベントを定義してやるわけです。
メインプログラムに空の終了イベントハンドラを定義してやれば、rnishimura
さんのお望みの動作になるはずです。
メインプログラムの閉じるボタンも一切、押せないようになります。パソコン
がフリーズした状態になります。従って、AlphaHoshinoさんが言われるように、
別途、終了専用のイベントを定義してやるわけです。
投票数:0
平均点:0.00
rnishimura
投稿数: 8
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
Tandaさん、
メインプログラムに空の終了イベントハンドラを定義しておいて
メインプログラムを実行しても当方の環境では閉じるボタンも
押せます(終了はできません)し、フリーズもしません。
何か根本的な設定が間違っているのでしょうか?
環境は下記の通りです。
Windows10 64bit
Magic xpa 3.2 Enterprise Studio
Magic.iniはデフォルトのままです。
メインプログラムに空の終了イベントハンドラを定義しておいて
メインプログラムを実行しても当方の環境では閉じるボタンも
押せます(終了はできません)し、フリーズもしません。
何か根本的な設定が間違っているのでしょうか?
環境は下記の通りです。
Windows10 64bit
Magic xpa 3.2 Enterprise Studio
Magic.iniはデフォルトのままです。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
rnishimuraさん、
閉じるボタンが押せて、Magicが終了しないというのは、ちょっと
意味が分からないのですが、具体的にどのような動作ですか?
閉じるボタンが押せて、Magicが終了しないというのは、ちょっと
意味が分からないのですが、具体的にどのような動作ですか?
投票数:0
平均点:0.00
rnishimura
投稿数: 8
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
Tandaさん
メインプログラムに空の終了イベントハンドラを定義すると
閉じるボタン押下時に空の終了イベントに入るので
画面は終了されません。
そのような動作になりませんか?
メインプログラムに空の終了イベントハンドラを定義すると
閉じるボタン押下時に空の終了イベントに入るので
画面は終了されません。
そのような動作になりませんか?
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
はい、それで正しい動作です。
投票数:0
平均点:0.00
rnishimura
投稿数: 8
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
結局のところ、メインプログラムの閉じるボタンを押せなくするのは無理で、
終了処理を無効(下位タスクからの終了処理の場合はメインプログラムは終了可能)に
しておくしか方法はなさそうですね。
終了処理を無効(下位タスクからの終了処理の場合はメインプログラムは終了可能)に
しておくしか方法はなさそうですね。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
設定が正しければ、問題なく動作するはずですよ。
投票数:0
平均点:0.00
rnishimura
投稿数: 8
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
問題なく動作するとゆうのは、閉じるボタンを押せなくすることができるとゆうことですか?
でしたら、どうゆう設定をすればいいか教えていただけないでしょうか?
メインプログラムに空の終了イベントを定義するだけでは、閉じるボタンは押せなくなりません。
でしたら、どうゆう設定をすればいいか教えていただけないでしょうか?
メインプログラムに空の終了イベントを定義するだけでは、閉じるボタンは押せなくなりません。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
私のところでは、AlphaHoshinoさんのアドバイス通りの設定で問題なく
動いております。メインプログラムの閉じるボタンは一切、押せなく
なります。
ロジックにたった1行記述するだけですので、どこが違っているとか
比べようがないかもしれませんね。
動いております。メインプログラムの閉じるボタンは一切、押せなく
なります。
ロジックにたった1行記述するだけですので、どこが違っているとか
比べようがないかもしれませんね。
投票数:0
平均点:0.00
FNK
居住地: 神奈川県横浜市
投稿数: 23
![半人前 半人前](../../uploads/rank3dbf8e94a6f72.gif)
横から失礼します。
rnishimuraさんメッセージはUDP 式:'get.disable_close' を使用していたので、「X」ボタンを無効表示し、動作と視覚を合わせたいということですよね?
その意味で言うと、「できません」が回答となると思います。
動作的には「できます」ということとなりますね。
参考まで
rnishimuraさんメッセージはUDP 式:'get.disable_close' を使用していたので、「X」ボタンを無効表示し、動作と視覚を合わせたいということですよね?
その意味で言うと、「できません」が回答となると思います。
動作的には「できます」ということとなりますね。
参考まで
投票数:0
平均点:0.00
rnishimura
投稿数: 8
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
FNKさん
伝えたかったのはそうゆうことです。
ありがとうございます。
「閉じるボタンが押せなくなる」とゆう意味が食い違っておりました。
Tandaさんのは閉じるボタンは押せるけど、終了処理は無効とゆうことですね。
とりあえずすっきりしました。
回答してくださった皆様ありがとうございました。
伝えたかったのはそうゆうことです。
ありがとうございます。
「閉じるボタンが押せなくなる」とゆう意味が食い違っておりました。
Tandaさんのは閉じるボタンは押せるけど、終了処理は無効とゆうことですね。
とりあえずすっきりしました。
回答してくださった皆様ありがとうございました。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
閉じるボタンを「非表示」にすることはできませんが、閉じるボタン
を「無効に」してあげれば、ユーザさんの意向にかなうのではないで
しょうか?
を「無効に」してあげれば、ユーザさんの意向にかなうのではないで
しょうか?
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
このスレッドのタイトルも「閉じるボタンを無効にしたい」と
なっているようですが。
なっているようですが。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
いずれにしても、AlphaHoshinoさんのアドバイスは的確ですよ。とくに、
正常終了の手段まで別途用意してあるところは完璧だと思います。
正常終了の手段まで別途用意してあるところは完璧だと思います。
投票数:0
平均点:0.00
null
投稿数: 191
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
終了(X) の無効化は動作としては正しいのですが、
最初の質問内容(閉じるボタンの無効化(非表示)) からは
回答としてはズレているなぁと思いつつ見ていまして、
過去、同様の内容に答えた気がしたので検索してみました。
バージョンが異なるので動作するかは判りませんが、
フォーラムの右上にある検索で「閉じるボタン」と検索して
出てくる以下の内容ではどうでしょうか?
http://www.magicsoftware.co.jp/forum/modules/d3forum/index.php?post_id=7065
最新バージョンを持っていなくて、
こちらでは確認が出来ないので投げっぱなしになるのですが。
最初の質問内容(閉じるボタンの無効化(非表示)) からは
回答としてはズレているなぁと思いつつ見ていまして、
過去、同様の内容に答えた気がしたので検索してみました。
バージョンが異なるので動作するかは判りませんが、
フォーラムの右上にある検索で「閉じるボタン」と検索して
出てくる以下の内容ではどうでしょうか?
http://www.magicsoftware.co.jp/forum/modules/d3forum/index.php?post_id=7065
最新バージョンを持っていなくて、
こちらでは確認が出来ないので投げっぱなしになるのですが。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
AlphaHoshinoさんの回答は決して「ズレた回答」ではないですよ。
「disable」と「hide」とでは、もともと意味が違いますし、Magic
の特性をよく生かした効率の良い記述法だと思いますね。
「disable」と「hide」とでは、もともと意味が違いますし、Magic
の特性をよく生かした効率の良い記述法だと思いますね。
投票数:0
平均点:0.00
shiina
投稿数: 6
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
横から失礼します。
rnishimuraさんの使用している「get.disable_close」というのはget.dllですよね?
確かに最大化・最小化で×ボタンが有効になってしまいますね。
びっくりしました!
私もnullさんと同じようにWindowsAPIを使用する方法で
メインプログラムの×ボタンを無効化しています。(xpa2.5bですが)
これだと最大化・最小化しても×ボタンは無効のままです。
3.2でも使えるといいのですが。
こちらの内容もわかりやすくて参考になるかと思います。
http://www.magicsoftware.co.jp/forum/modules/d3forum/index.php?post_id=7601
rnishimuraさんの使用している「get.disable_close」というのはget.dllですよね?
確かに最大化・最小化で×ボタンが有効になってしまいますね。
びっくりしました!
私もnullさんと同じようにWindowsAPIを使用する方法で
メインプログラムの×ボタンを無効化しています。(xpa2.5bですが)
これだと最大化・最小化しても×ボタンは無効のままです。
3.2でも使えるといいのですが。
こちらの内容もわかりやすくて参考になるかと思います。
http://www.magicsoftware.co.jp/forum/modules/d3forum/index.php?post_id=7601
投票数:0
平均点:0.00