| **Navigation:**  [[abc library reference.htm|ABC Library Reference]] > EditMultiSelectClass > EditMultiSelectClass Methods >====== DeserializeValue (pre-process selection queue) {{c6h0009.jpg|C6H0009.jpg}} ====== | [[createcontrol create the edit in place control editmultiselectclass .htm|{{btn_prev_n.gif|Previous page}}]][[abc library reference.htm|{{btn_home_n.gif|Return to chapter overview}}]][[reset reset the editmultiselectclass object .htm|{{btn_next_n.gif|Next page}}]] | | || **DeserializeValue, VIRTUAL** {{blk2blue.jpg|blk2blue.jpg}} The **DeserializeValue **virtual** **method extracts values (separated by the value of the **Delimiter** property) from the EIP columns USE variable (UseVar) and preloads the items into the **Selected** queue. **DeserializeValue** will split the **SELF.UseVar** contents using the **SELF.Delimiter** value as a separator, and store the resulting values to the **Selected** queue if values are in the available list. Any value that is not in the available list is discarded. **Implementation:** The **DeserializeValue** method is called before opening the MultiSelect dialog window from within the **TakeEvent** method of the EditMultiSelectClass. **Example:** **EditMultiSelectClass.TakeEvent PROCEDURE(UNSIGNED E)** **MSWindow MSWindowClass** **MSSelectedIndex LONG** ** CODE** ** CASE E** ** OF EVENT:DroppingDown** **   IF SELF.Delimiter** **    FREE(SELF.Selected)** **   ****SELF.DeSerializeValue()** **   END** **   MSWindow.Init(SELF)** **   OPEN(MultiWindow)** **   0{PROP:Text} = SELF.Title** **   ?Available{PROP:From} = SELF.Available.Item** **   ?Available{PROP:Mark} = SELF.Available.Mark** **   ?Selected{PROP:From} = SELF.Selected.Item** **   ?Selected{PROP:Mark} = SELF.Selected.Mark** **  IF SELF.ReadOnly** **    DISABLE(?SelectSome)** **    DISABLE(?SelectAll)** **    DISABLE(?DeselectSome)** **    DISABLE(?DeselectAll)** **    DISABLE(?MoveUp)** **    DISABLE(?MoveDown)** **   END** **   MSWindow.Run()** **   CLOSE(MultiWindow)** **   DISPLAY(SELF.Feq)** **   IF MSWindow.Response=RequestCompleted THEN** **    IF SELF.Delimiter** **     SELF.SerializeValue()** **    END** **    SELF.TakeCompletedInit(RECORDS(SELF.Selected))** **     LOOP MSSelectedIndex=1 TO RECORDS(SELF.Selected)** **      GET(SELF.Selected,MSSelectedIndex)** **      SELF.TakeCompletedProcess(MSSelectedIndex,SELF.Selected.Item,SELF.Selected.Mark)** **      SELF.Available.Item=SELF.Selected.Item** **      SELF.Available.Mark=0** **      ADD(SELF.Available)** **     END** **     FREE(SELF.Selected)** **     SORT(SELF.Available,SELF.Available.Item)** **   END** **   RETURN CHOOSE(MSWindow.Response=RequestCompleted, EditAction:Ignore, EditAction:None)** **  ELSE** **    RETURN PARENT.TakeEvent(E)** **  END** **See Also:** [[serializevalue process selected items into use variable .htm|SerializeValue]] , [[delimiter multiselect separator .htm|Delimiter]], [[selected target queue for multiselect .htm|Selected]]