PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
1009 | 98/03/24 13:52:45 | RE(6):ウィンドウタイトルを使ったサンプルスクリプトです By あすかちゃんの父 |
1004 | 98/03/24 10:55:01 | RE(5):ウィンドウタイトルを使ったサンプルスクリプトです By てとらぽっと |
1002 | 98/03/24 10:03:08 | RE(4):MDI内のシートのアクティブ化の件 By あすかちゃんの父 |
1000 | 98/03/24 09:44:33 | RE(3):MDI内のシートのアクティブ化の件 By あすかちゃんの父 |
997 | 98/03/24 09:16:27 | RE(2):MDI内のシートのアクティブ化の件 By てとらぽっと |
996 | 98/03/24 09:12:55 | RE(1):MDI内のシートのアクティブ化の件 By まこと |
994 | 98/03/23 21:51:39 | MDI内のシートのアクティブ化の件 By あすかちゃんの父 |
カテゴリ:旧電子会議室
日付:1998年03月24日 10:55 発信者:てとらぽっと
題名:RE(5):ウィンドウタイトルを使ったサンプルスクリプトです
>>OpenedWindow.SetFocus()
>
>え、そうなんですか。
>SetFocus関数も試してみたのですが、「NULLオブジェクトの参照エラー」と
>なってしまいました。
>ちなみにこの時のスクリプトはメニューオブジェクトの中で、「***を開く」
>を作って、そのClickdイベントの中で書いています(メニューからはMDIウィン
>ドウのインスタンスは参照できない?)。
>この「OpenedWindow.SetFocus()」はどこで記述されていますか?
こちらのスクリプトです。
ほんとはややこしいことしてたんですが、簡単にしました。動作も確認しました。
ウィンドウタイトルを使ってオープン済みかどうかチェックしています。
MDIフレームのウィンドウ関数で処理していますが、メニューのClickedイベントに書いても動きました。
[Start] ---------------------------------------------------------------------
window lw_opened
lw_opened = MDIWindow.GetFirstSheet()
do while (IsValid(lw_opened))
if 目的のウィンドウタイトル = lw_opened.Title then
//MessageBox(\"確認\", lw_opened.Title + \" は、すでに開かれています。\" )
if ( lw_opened.WindowState = Minimized! ) then lw_opened.WindowState = Normal!
lw_opened.SetFocus()
return
end if
lw_opened = MDIWindow.GetNextSheet(lw_opened)
loop
[End] -----------------------------------------------------------------------
ひとつ心当たりがあるのは、ウィンドウの型(ペインタで付けたWindowオブジェクトの名前)で
同一のウィンドウかどうかをチェックしてらっしゃいませんか?
継承とかしているせいかもしれませんが、一致しないウィンドウ型でも if文がTrueを返した
記憶があります。
P.S.
No.1000ゲットですね、おめでとうございます(なんのこっちゃ)
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS (記載なし)
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.