PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
10438 00/02/23 20:31:22 RE(11):PB6.5: メニュー項目を挿入したように見せる方法 > メニューの継承時シフト By てとらぽっと
10436 00/02/23 19:47:02 RE(10):PB6.5: MDIフレーム内の複数シート間でのメニュー属性変更(ごみレス) By Taka
10428 00/02/23 12:55:24 RE(9):PB6.5: MDIフレーム内の複数シート間でのメニュー属性変更(ごみレス) By てとらぽっと
10426 00/02/23 10:31:20 RE(8):PB6.5: MDIフレーム内の複数シート間でのメニュー属性変更(ごみレス) By M.M
10425 00/02/23 10:05:03 RE(7):PB6.5: MDIフレーム内の複数シート間でのメニュー属性変更(ごみレス) By Taka
10424 00/02/23 00:54:06 RE(6):PB6.5: MDIフレーム内の複数シート間でのメニュー属性変更(ごみレス) By てとらぽっと
10423 00/02/22 23:26:46 RE(5):PB6.5: MDIフレーム内の複数シート間でのメニュー属性変更 By Taka
10414 00/02/22 18:10:39 RE(4):PB6.5: MDIフレーム内の複数シート間でのメニュー属性変更 By てとらぽっと
10413 00/02/22 18:03:26 RE(3):PB6.5: MDIフレーム内の複数シート間でのメニュー属性変更 By Mika★
10409 00/02/22 17:30:06 RE(2):PB6.5: MDIフレーム内の複数シート間でのメニュー属性変更 By noy
10406 00/02/22 17:04:33 RE(1):PB6.5: MDIフレーム内の複数シート間でのメニュー属性変更 By Mika★
10402 00/02/22 16:32:50 PB6.5: MDIフレーム内の複数シート間でのメニュー属性変更 By noy

カテゴリ:スクリプトの記述
日付:2000年02月22日 23:26 発信者:Taka
題名:RE(5):PB6.5: MDIフレーム内の複数シート間でのメニュー属性変更

noyさん、こんばんは。

>MDIフレーム内でAシート、Bシートを開いています。
>Aシート、Bシート共に同じメニューオブジェクトm_inputを関連付けしています。
>Aシートを開いた後、Bシートを開き、Aシートに記述してある下記のような
>イベントを走らせると何故かBシートのメニューに反映されてしまいます。

> Aシート上のコマンドボタンClickedイベントの記述
>  m_input.m_file.m_write.Enabled = False

この現象はおそらく、シートを次のようなパターンで開いているのでは?
・シートA … 複数インタンス可能
 (w_sheet_a型の変数win → OpenSheet(win, ... ))
・シートB … 複数インタンス不可
 (OpenSheet(w_sheet_b, ... ))

このようにして開いた場合、m_input が示すメニューインスタンスは、シートBが
所有するメニューになっています。

シートAが、自分が所有するメニューに対して属性を設定する場合、メニュー関数を
使うと良いでしょう。

m_inputのメニュー関数 mf_SetWriteEnable( boolean status )
 m_file.m_write.Enabled = status

シートAのボタンからは、
 Parent.MenuID.Dynamic mf_SetWriteEnable( true/false )
のように呼び出します。
(ウィンドウ.MenuIDプロパティは、自分のメニューインスタンスへの参照が保持されています)
そうすると、シートAのメニューだけに対して設定されます。
シートAが複数開いている場合、メニューインスタンスも個別なので支障ありません。

それにしても、PBのメニューオブジェクトって扱いにくいですよね。
・オブジェクトが重たいし、
・ペインタは使いづらいし、
・多重継承できないし、
・イベントが定義できないし、
・ツールバーはMDIでしか使えないし、
・ボタンにはICONファイル使えないし、
・項目は動的生成できないし、
・以下省略(笑)

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows98
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Sybase SQL Anywhere Standalone
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.