Вставить поле со списком в ячейку представления списка с помощью Delphi 5

#delphi #listview #combobox

#delphi #listview #поле со списком

Вопрос:

Я хотел бы поместить TComboBox в компонент TListView. Есть идеи, как я мог бы это сделать? Понятия не имею, я не гуру delphi x_x. Кроме того, я не могу использовать внешние компоненты. Любая помощь приветствуется 🙂

Ответ №1:

Одним из методов, который обычно работает достаточно хорошо, было бы поместить TComboBox в форму, но скрыть его. Если вы хотите, чтобы поле со списком отображалось (например, в событии OnEditing в TListView), затем отобразите его с помощью элемента rect from .displayRect(drBounds) в качестве ваших координат (они указаны относительно listview, так что имейте это в виду). Вы также захотите переопределить клавишу on для выпадающего списка и обрабатывать такие вещи, как tab, esc и т.д. При нажатии одной из этих клавиш требуется выполнить соответствующее действие (например, скрыть элемент управления или выбрать следующий элемент для редактирования). OnExit окна со списком всегда должен скрывать его.