Компонент Delphi ValueListEditor расположен на странице Additional Палитры компонентов. Это полезный компонент представляющий список строк, которые содержат имя и значение.
Компонент состоит из двух колонок первый имеет заголовок Key, для имен, второй - Value, для значений. При желании данные заголовки легко изменить используя свойство TitleCaptions. Нажав на многоточие напротив этого свойства мы попадаем в редактор, где первая строка соответствует первой колонке (это имена), вторая - второй колонке (это значения).
Основное свойство компонента ValueListEditor - Strings, в нем находится список всех строк (они хранятся в виде Ключ=Значение). Его можно задать в Инспекторе объектов, используя редактор строк или программно. При соответствующих разрешениях (см. ниже) данные можно добавлять, редактировать и удалять в работающем приложении.
Свойство KeyOptions определяет возможности пользователя по редактированию значений компонента в приложении:
- keyEdit - при значении равным TRUE, редактирование возможно;
- keyAdd - при значении равным TRUE, возможно добавление строк. Для этого надо воспользоваться клавишей Insert или находясь на последней строке нажать клавишу "стрелка вниз";
- keyDelete - при значении равным TRUE, возможно удаление строки нажатием клавиши "Delete";
- keyUnique - при значении равным TRUE, невозможно создать новую строку с таким же ключом который есть уже в списке. Произойдет исключительная ситуация.
Свойство DisplayOptions задает следующие значения:
- doColumnTitles - Отображается верхняя строка компонента. (значение TRUE);
- doAutoColResize - автоматически изменяется ширина колонок в компоненте, при изменении его самого;
- doColFixed - запрещает изменение ширины колонки с ключами.
С помощью свойства Options можно устанавливать различные возможности оформления таблицы (например отображение вертикальных и горизонтальных линий).
Доступ к ключам и значениям может происходить различными способами. При помощи метода Cells[ACol, ARow: Integer]. ACol =1 соответствует соответствует колонке значений - ACol = 0 - колонке имен. ARow =0 обращается к строке заголовка, ARow > 0 обращается к строкам компонента.
Доступное только для чтения свойство RowCount сообщает сколько у нас строк, включая заголовок.
Метод для добавления новой записи:
function InsertRow(const KeyName, Value: string; Appand: Boolean): integer;
Для удаления:
Procedure DeleteRow(ARow: Integer);
На форме расположим 2 компонента Edit и label, 1 компонент ValueListEditor и три простые кнопки.
Кнопка Нажать будет выводить ключ и значение компонента ValueListEditor. Следующая кнопка Добавить будет добавлять в данные список из компонентов Edit. И кнопка Удалить удаляет текущую строку.
Обработчик кнопки Нажать:
procedure TForm1.Button1Click(Sender: TObject); var I : Integer; begin I := ValueListEditor1.Row; Label1.Caption := ValueListEditor1.Keys[I]; Label2.Caption := ValueListEditor1.Cells[1,I]; end;
Обработчик кнопки Добавить:
procedure TForm1.Button2Click(Sender: TObject); begin ValueListEditor1.InsertRow(Edit1.Text,Edit2.Text,true); end;
Обработчик кнопки Удалить:
procedure TForm1.Button3Click(Sender: TObject); begin ValueListEditor1.DeleteRow(ValueListEditor1.Row); end;
Итог: мы познакомились с компонентом ValueListEditor, его возможностями и применением в приложении.
а как добавить определенное количество пустых строк при запуске программы?
Нужно создать обработчик события FormCreate (дважды кликнуть на форме) со следующим кодом:
Где с помощь переменной I можно регулировать количество вставляемых пустых строк.
до этого я, конечно, додумался. но вот нету определенной команды? Вот например в StringGrid’е можно же заранее указать.
Это другой компонент. Код придется писать. Можно как вариант такой:
спасибо. просветили 🙂