2016-03-10 7 views
1

Я использую TValueListEditor, и я хотел бы создать редактор свойств IDE. Каждая линия может иметь несколько видов информации:TValueListEditor с большим количеством столбцов

  • Струнные
  • Дата
  • Номер
  • ComboList

Я интересно, как я могу хранить тип элемента и формат для каждой строки.

Я стараюсь добавить 2 колонки. Но его не работает

ValueListEditor.ColCount := 4; 
ValueListEditor.Cell[4,2] := 'Test'; 

Он показывает значение Test в столбце значений (второй столбец вместо 4). Я думал о внедрении значений, которые мне нужны в объекте, который я свяжу (добавлю) к каждой строке. Но я не нашел способ сделать это. Даже я не знаю, возможно ли это.

У кого-нибудь есть идеи?

ответ

3

TValueListEditor специально разработан для обработки только пар name=value. Вы не можете добавить к нему дополнительные столбцы. Однако вы можете указать тип редактора, который используется для редактирования столбца value. Это обрабатывается TItemProp.EditStyle свойством для каждой пары:

  • Для ввода строкового установите TItemProp.EditStyle в esSimple.

  • Для ввода ComboList установите TItemProp.EditStyle на esPickList, а затем используйте TItemProp. PickList или TValueListEditor.OnGetPickList.

  • для ввода цифровых, установите TItemProp.EditStyle в esSimple и установить TItemProp.EditMask и TItemProp.MaxLength по мере необходимости. Затем вы можете преобразовать введенный пользователем value в Integer, если необходимо.

  • Для ввода даты, то лучше от установив TItemProp.EditStyle в esEllipsis, а затем использовать TValueListEditor.OnEditButtonClick событие, чтобы показать свой собственный TForm, который имеет TDateTimePicker на нем. При желании вы можете сделать что-то похожее для числового ввода, используя TSpinEdit или аналогичный компонент.

+0

Thx для ответа. Я реализую этот путь. но когда я пытаюсь установить VLE.ItemProps [i] .EditStyle: = TEditStyle.esPickList; если i: = 1, он работает, но все остальные значения никогда не работают, даже если я создал строки раньше. Также он никогда не показывает стрелку раскрывающегося списка. – ffert2907

+0

@ ffert2907: то, что я описал, работает, я использовал его так раньше. Я помню, что есть некоторые причуды, мне придется снова взглянуть на мой код и обновить свой ответ, когда у меня будет свободный момент. –

Смежные вопросы