То, как мы это делаем, это использование обычного поля редактирования кнопки, и когда пользователь нажимает кнопку, мы представляем отдельную форму (которую можно сделать похожей на раскрывающийся список, если хотите) с контрольным списком или просмотр списка с включенными флажками или подобным. Пользователь выбирает любое количество элементов, затем, когда форма закрывается, мы берем список выбранных элементов и представляем их при редактировании в виде списка, разделенного запятой или точкой с запятой. Само редактирование доступно только для чтения, поэтому все взаимодействие проходит через отдельную форму.
Но - мне действительно не нравится весь подход (для нашего приложения), так как он не выглядит хорошо, когда у вас есть много выбранных элементов, и я ищу, чтобы найти лучший способ показать выбор! Я полагаю, что одним из вариантов является использование заметки только для чтения с полосами прокрутки для отображения элементов.
TMS имеет несколько приятных компонентов, одним из которых является TCheckListEdit , который может быть полезен.