I'm sure people have had the problem of flashing screens, I just wanted to post a possible work around.
This keeps the current screen active till AFTER the new one gets displayed.
--- Start the screen -----
port = CreateObject("roMessagePort")
dp = CreateObject( "roArray", 2, 1 )
dp.Push( CreateObject( "roMessageDialog" ))
dp[0].SetTitle( "Please Wait - Loading" )
dp[0].SetText( "What ever" )
dp[0].AddButton(0, "Cancel")
dp[0].SetMessagePort(port)
dp[0].Show()
--- Update the screen -----
dp.Push( CreateObject( "roMessageDialog" ))
dp[1].SetTitle( "Please Wait - Still Loading" )
dp[1].SetText( str )
dp[1].SetMessagePort(port)
dp[1].AddButton(0, "Cancel")
dp[1].Show()
dp.Delete( 0 )
-------------------------------