Thank you for all of your support! All I really wanted to do is to communicate with the dw that opens the pop-up window. For some reason, I thought I had to communicate through functions on the parent window, so I didn't ask about that (lol!). That being said, here's what I did....
1. Created a pop-up window with an instance variable: u_dw idw_1 (u_dw is the pfc flavor of a standard dw )
2. Added an event to the dw on the parent window's tab/tabpage/dw object that's fired from the RMB menu (ue_open_calculator)
3. Open the popup window with a reference to the dw: OpenWithParm(w_popup_calculator, this)
4. In the open event of the popup window, grab the dw reference: idw_1 = Message.PowerObjectParm
5. Populate the calculator-related sle's with values from idw_1:
il_Row = idw_1.GetRow()
ls_nominal = idw_1.GetItemString(il_Row, "nominal")
sle_nominal.text = ls_nominal
(etc)
6. In the Activate event, re-populate the sle's just in case the user changed the row in the parent dw (the pop-up window allows interaction with the parent window while it's still open, unlike a response window):
if IsValid(idw_1) then
il_Row = idw_1.GetRow()
ls_nominal = idw_1.GetItemString(il_Row, "nominal")
sle_nominal.text = ls_nominal
(etc)
7. Do calculations based on what the user enters.
8. When the user clicks the SAVE button: write a couple values to idw_1, advance to the next row in idw_1, and grab the new values.
The "missing link" for me was knowing what the optional 3rd parameter in the OpenWithParm function does. Turns out, it doesn't do anything useful for me.
Again, many thanks to all for your thoughtful feedback. Cheers!
~~~Tracy