TValueListEditor - спеціалізований редактор рядків - Програмування від

Безпосереднім предком компонента є клас TCustomDrawGrid, тому багато його властивостей, методів і подій збігаються з описаними в п. 18.2.4 властивостями, методами та подіями компонента TStringGrid.

Специфічні властивості компонента:
property Cells[ACol, ARow: Integer]: String;Відкриває доступ до вмісту осередку, що лежить на перетині стовпця ACol з рядком arow (нумерація стовпців та рядків починається з нуля)
property ColCount: Integer;Містить кількість стовпців
type TDisplayOption = (doColumnTitles, doAutoColResize, doKeyColFixed) ; TDisplayOptions = set of TDisplayOption; property DisplayOptions: TDisplayOptions;Властивість може включати такі значення: doColumnTitles - перший рядок містить заголовки стовпців, визначені властивістю TitleCaption, І не скролюється; doAutoColResize - пропонує автоматично змінювати ширину стовпців при зміні розмірів компонента; doKeyColFixed - якщо зазначено, ширина першого стовпця, що містить імена, не змінюється при зміні розмірів
property DropDownRows: Integer;Вказує максимальну кількість рядків у списку можливих значень, показ яких не супроводжується появою смуги прокручування
property ItemProps[const KeyOrIndex: Variant]: TItemProp;Складна властивість, що керує різними аспектами відображення значень (див. нижче)
type TKeyOption = (keyEdit, keyAdd, keyDelete, keyUnique) ; TKeyOptions = set of TDisplayOption; properties KeyOptions: TKeyOptions;Керує можливою зміною списку: keyEdit – користувач може змінювати ім'я параметра (у першому стовпці); keyAdd - користувач може додавати нову пару ім'я-значеннянатисканням кнопки Insert (вимагає включення keyEdit); keyDelete -користувач може знищити виділену пару натисканням клавіші Delete; keyUnique - назви введених користувачем імен повинні бути унікальними
property Keys[Index: Integer]:String;Відкриває доступ до назв значень за їх індексами
property RowCount: Integer;Містить кількість рядків
property Strings: TStrings;Містить рядки списку
property TitleCaptions: TStrings;Містить заголовки стовпців
property Values[const Key:String]: String;Відкриває доступ до значень за їх індексами

програмування
Мал. 18.17.Демонстрація компонента TValueListEditor

Властивість itemprops класу Titemprop має власні властивості:

Властивість PickList не призначена для програмного доступу. Щоб створити список можливих значень, що випадає, потрібно властивості ItemProp.EditStyle присвоїти значення esPickList і написати обробник події onGetpickList. Нехай, наприклад, перше значення має мати список, що випадає. Тоді потрібен такий код:

З наступними властивостями компонента аналогічні однойменним властивостям компонента TStringGrid (cm. П. 18.2.4): BorderStyle, Col, ColWidths, DefaultColWidth, DefaultDrawing, DefaultRowHeight, EditorMode, FixedColor, FixedCols, Grix tions, Row, RowHeights, ScrollBars, Selection, TabStops, TopRow, VisibleColCount,VisibleRowCount. function InsertRow(const KeyName,. "."alue: String; Append: Boolean) : Integer-procedure Refresh; function RestoreCurrentRow: Boolean;

Методи CellRect, MouseToCell І MouseCoord аналогічні однойменним методам компонентаTStringGrid (див. п. 18.2.4).

Події компонента:
property OnEditButtonClick: TNotifyEvent;Виникає при натисканні на кнопці розкриття діалогового вікна редагування значення. Властивість ItemProps .EditStyle має містити значення esEllipse
type TGetPickListEvent = procedure (Sender: TObject; const KeyName: String; Values: TStrings)of object; property OnGetPickList: TGetPickListEvent;Виникає при натисканні на кнопці розкриття списку можливих значень. Параметр KeyName містить ім'я рядка, в якому зроблено клацання. Обробник повинен заповнити можливими значеннями список Values. Властивість ItemProps. EditStyle має містити значення esPickList
property OnStringsChange: TNotifyEvent;Виникає відразу після зміни імені або значення поточного рядка
property OnStringsChanging: TNotifyEvent;Виникає безпосередньо перед зміною імені або значення поточного рядка
type TOnVal >Виникає перед тим як фокус введення залишить комірку ACol, ARow. Оброблювач може перевірити нові значення KeyName та KeyValue та порушити виняток, якщо виправлення у рядку були помилковими

З наступними подіями аналогічні однойменним подіям компонента TStringGrid: OnDrawCell, OnGetEditMask, OnGetEditText OnRowMoved, OnSelectCell, OnSetEditText, OnTopLeftChanged.