実行時にMoveable プロパティを設定するには?

解決


ぽんげ  2004-08-03 00:09:27  No: 115289  IP: [192.*.*.*]

タイトルの表記が好ましくなかったので再度書き込みさせて頂きます。

VB6.0(SP5)にて
フォームを摘めないようにしたいのですが
フォーム名.Moveable = False
とすると実行時に
以下のコンパイルエラーが出てしまいます。
−−−−−−−−−−−−−−−−−−−−−−−−−−−
コンパイルエラー

関数またはインタフェースが予約されているか、またはVisualBasicでサポートされていないオートメーションタイプが
関数で使用されています。
−−−−−−−−−−−−−−−−−−−−−−−−−−−

なぜそうなってしまうのかわからないです。
どうかご教授ください。

編集    削除
魔界の仮面弁士  2004-08-03 01:03:34  No: 115290  IP: [192.*.*.*]

Movableプロパティを、Form_Load 等で設定していませんか?

オブジェクトブラウザ ([F2]キーで表示されます) を見るとわかりますが、
Moveable プロパティは「読み取り専用」のプロパティであるため、
実行時に変更する事はできません。デザイン時に指定してみてください。

編集    削除
ぽんげ  2004-08-03 01:34:15  No: 115291  IP: [192.*.*.*]

魔界の仮面弁士さん、ありがとうございます。
なるほど。実行時に変更できないんですね。
FormLoad後、コマンドボタンにより重い処理を行うのですが
処理中にフォームを移動されると困るので実行時に変更したかったのです。
(処理中でなければ移動してもよい)

他の方法を調べてみようと思います。

編集    削除
とおりすがりのネコ  2004-08-03 01:41:13  No: 115292  IP: [192.*.*.*]

Me.Enabled = False
でできないかな?

編集    削除
ぽんげ  2004-08-03 02:03:11  No: 115293  IP: [192.*.*.*]

とおりすがりのネコさん、ありがとうございます。
Me.Enabled = Falseにして
処理終了後Trueに戻すようにすると
処理中の砂時計表示がされなくなってしまいました。
またTrueに戻した直後にフォームが移動されてしまうのです。

簡単に制御できるかと思ったのですがなかなかうまくいかないですね。

編集    削除
とおりすがりのネコ  2004-08-03 02:20:14  No: 115294  IP: [192.*.*.*]

マウスポインタの方は
  Screen.MousePointer
で設定できると思います。

>またTrueに戻した直後にフォームが移動されてしまうのです。
私の環境では勝手に移動するなんていうことは起こったことがないので
ちょっとわかりません。ごめんなさい。

編集    削除
nanashi  2004-08-03 02:51:31  No: 115295  IP: [192.*.*.*]

> またTrueに戻した直後にフォームが移動されてしまうのです。

Trueに戻す直前にDoEventsを入れてみてください。

編集    削除
ぽんげ  2004-08-03 19:21:08  No: 115296  IP: [192.*.*.*]

うまくいきました!
みなさん、ご回答ありがとうございました。

編集    削除