Need help On Finding the Way to ” Rollout Return/Broadcast the Event Handle into others ,but they are independent”

-- Hi~ I have a Problem need You-Masters Help~~~
-- I wrote a UI and I'm going to float the "rollout InsideChild" next to Main and follow it

	rollout Main "Main" width:320 height:650
	(    
		subrollout M_sub "MainSub" width:300 height:650
 
		-- on Main moved Mainpos do ( setDialogpos InsideChild) ((Getdialogpos MainChild)+[500,100]) )
 
		-- on Main moved Mainpos do ( setDialogpos (Main.rollouts[1].rollouts[1]) ((Getdialogpos MainChild)+[500,100]) )
 
		--|||<<<* 3 *>>>||| I tried to write rollout Main to the bottom of the paragraph of rollout MainChild section but I couldn't Get InsideChild
 
		-- Because InsideChild is not registered(Add) with MainChild . And because MainChild is registered with Main, InsideChild cannot be registered with MainChild As Child of Child
 
		-- I also tried to use Function or Global_Value Equal to or Put it into While()do() Loop to , but it was too inefficient to use
 
		-- if I write on Main moved Mainpos do outside MsE will tell me that there is a syntax error and even Try()-in will not pass
 
		----|||<<<* ??? *>>>|||  Is there any good way I can broadcast Main.Moved() into MainChild
		-- Tell the  InsideChild to know and perform SetDialogpos  ?????
 
	)
--===================== 1st Part above =====================================--
	rollout MainChild "MainChild"
	(
		Checkbutton B_CallInsideChild "CallInsideChild" whith:200 Height:100 default:on
 
		rollout InsideChild "InsideChild" 
		(
			local HelpCommentString = "
         Something  Help
 
string
string
string
string
 
string
string
string
string
string
string
string
string
string
string
"
 
			Label HelpComment HelpCommentString width:200 height:300 align:#left align:#top
 
			Timer CheckIC interval:150 active:false
 
			on InsideChild Close do( B_CallInsideChild.state = off ; CheckIC.active = off )
 
			on InsideChild Open do( CheckIC.active = on )
 
			on CheckIC Tick do ( CheckIC.active = on ; SetDialogpos InsideChild ((Getdialogpos Main)+[350,200]) ; SetFocus Main ; print CheckIC.ticks )
 
			--While InsideChild.open != false do ( SetDialogpos InsideChild ((Getdialogpos MainChild)+[500,100]) ; SetFocus Main ) --<<<the performance is Too Slow
 
			--|||<<<* 2 *>>>|||  I tried to do this with a Timer but it was very inefficient and without SetFocus() the focus of the dialog stayed on InsideChild
		)
 
		on B_CallInsideChild changed state do 
		(
			if B_CallInsideChild.state == on then
				(
					Createdialog InsideChild whith:200 Height:300 pos:((Getdialogpos Main)+[350,200]) parent:MainChild.HWND
				)
			else if B_CallInsideChild.state == off then  Destroydialog InsideChild
		)
		--on Main moved MainPos do ( setDialogpos InsideChild ((Getdialogpos Main)+[500,100]) )
 
		--|||<<<* 1 *>>>||| This is the one up where I can't get the operation of Main.Moved() form Main into MainChild .
		--so I can't tell if Main has moved and then I can do something else
 
		--on MainChild moved MainPos do ( setDialogpos InsideChild ((Getdialogpos MainChild)+[500,100]) )
 
		--|||<<<* 1 *>>>||| I could Got this if I just wrote 1st Part alone 
		--But the point is that my Root interface is  Main ...Once you Add it to the Main , you can't get Pos for MainChild 
		--and Could Not Get Mani.moved() in   MainChild/InsideChild Also....
 
	)
--===================== 2nd Part above =====================================--	
-- 	On execute do
	(
		 if Main.open != true then
		 (
			Createdialog Main pos:[1200,600] 
			Addsubrollout Main.M_sub MainChild
		 )
		 else Destroydialog Main
	)
 
AttachmentSize
191109_ui_problem_en_02.ms3.53 KB