powerbuilder display only windows

we have two windows w_test1 and w_test2 (w_test1 is a main and w_test2 is a response window). w_test1 has a push button on (lets call it pb_continue).  both windows have a datawindow inside them (dw_1)

what we want to do is the following
==============================

1) open w_test1 and w_test2 simultanesouly. w_test1 will receive focus while w_test2 will be a display only window. (it will be used as background for w_test1).

2) w_test2 will receive focus when pb_continue button will be pressed.

how can we do it?

we want to avoid using opensheet command.
basilhs_sAsked:
Who is Participating?
 
sandeep_patelCommented:
1. set windowtype property to main for both w_test1 and w_test2
2. declare instance variable called ib_push for w_test1 and intialize with FALSE
3. write below code in Activate event of w_test2
If Not w_test1.ib_push Then
   w_test1.BringToTop = TRUE
End If
4. write below code in clicked event of button
ib_push = TRUE
w_test2.BringToTop = TRUE
5. write below code to open both window
Open(w_test1)
Open(w_test2)

Now you need to identify  when you want to set ib_push back to FALSE.

Regards,
Sandeep
      
0
 
sandeep_patelCommented:
any specific reason for w_test2 as response window?

change w_test2 as main and when user clicks on that button write w_test2.bringtotop = TRUE

Regards,
Sandeep
0
 
basilhs_sAuthor Commented:
the reason that we prefer to have w_test2 as response is that its main and user clickes by mistake in a area outside it its minimized.
how can we open anyway both windows in the beginning with focus only in w_test1?
0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
basilhs_sAuthor Commented:
thanks sandeep .i will check it tomorrow
0
 
diasroshanCommented:
Hi,

just a few suggestions,
since u have mentioned,
"user clickes by mistake in a area outside it its minimized"

In the above code if u click anywhere else the 2 windows will look like they have minimized.
In order to avoid this, try adding the below code too,
Where ever it is,
w_test1.BringToTop = TRUE
w_test2.BringToTop = TRUE
 replace the line with,
w_test1.SetPosition(TopMost!)
w_test2.SetPosition(TopMost!)

Also, it is always advised to use the function IsValid whenever referencing another window or object,
Some changes to sandeep's code,
write below code in Activate event of w_test2
If IsValid(w_test1) Then
If Not w_test1.ib_push Then
   //w_test1.BringToTop = TRUE
   w_test1.SetPosition(TopMost!)
End If
End If

write below code in clicked event of button
ib_push = TRUE
If IsValid(w_test2) Then
//w_test2.BringToTop = TRUE
w_test2.SetPosition(TopMost!)
End If

Cheers,
Rosh
0
 
basilhs_sAuthor Commented:
thanks rosh. i noticed that the windows were minimized when i clicked outside their area. i ll check want you mentioned tomorrow
0
 
basilhs_sAuthor Commented:
solution is working perfectly with one side-effect however. if messages are going to be displayed (thru messagebox statements or thru operating system/sql-server) sometimes they do appear behind w_test2 (at least a part of them) can we do something about it?
0
 
basilhs_sAuthor Commented:
thaks both of you
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.