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 (記載なし)

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