Have a look at my SelectByDate command which uses a detached dialog.
I advise you to create variables for your dialog controls before going into the msg loop so that you can interact with them later on easily without always referencing the dialog
var Combo_Box_Alpha1 = dlg.Control("Combo_Box_Alpha1");
while(true) {
var val = Combo_Box_Alpha1.value;
...
You already did it the right way when printing the combo index.
In the end you use Control
without referencing the dialog. Docs say
Use the Dialog.Control method to obtain a Control object