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

Непосредственият предшественик на компонента е класът TCustomDrawGrid, така че много от неговите свойства, методи и събития са същите като свойствата, методите и събитията на компонента TStringGrid, описан в раздел 18.2.4.

Специфични свойства на компонента:
свойство Cells[ACol, ARow: Integer]: String;Отваря достъп до съдържанието на клетката, разположена в пресечната точка на колоната ACol с реда със стрелка (номерирането на колоните и редовете започва от нула)
свойство ColCount: Integer;Съдържа броя на колоните
тип TDisplayOption = (doColumnTitles, doAutoColResize, doKeyColFixed) ; TDisplayOptions = набор от TDisplayOption; свойство DisplayOptions: TDisplayOptions;Свойството може да включва следните стойности: doColumnTitles - първият ред съдържа заглавията на колоните, дефинирани от свойството TitleCaption, и не може да се превърта; doAutoColResize - инструктира автоматично да се променя ширината на колоните при преоразмеряване на компонента; doKeyColFixed - ако е посочено, ширината на първата колона, съдържаща имена, не се променя при преоразмеряване
свойство DropDownRows: Integer;Указва максималния брой редове в списъка с възможни стойности, които не се показват с лента за превъртане
свойство ItemProps[const KeyOrIndex: Variant]: TItemProp;Сложно свойство, което контролира различни аспекти на показване на стойности (вижте обясненията по-долу)
тип TKeyOption = (keyEdit, keyAdd, keyDelete, keyUnique) ; TKeyOptions = набор от TDisplayOption; свойство KeyOptions: TKeyOptions;Контролира възможната промяна на списъка: keyEdit - потребителят може да промени името на параметъра (в първата колона); keyAdd - потребителят може да добави нова двойка име-стойностчрез натискане на клавиша Insert (изисква keyEdit да бъде активиран); keyDelete - потребителят може да изтрие избраната двойка чрез натискане на клавиша Delete; keyUnique - имената, въведени от потребителя, трябва да бъдат уникални
свойство Keys[Index: Integer]:String;Отваря достъп до имената на стойностите по техните индекси
свойство RowCount: Integer;Съдържа броя на редовете
propertyStrings: TStrings;Съдържа списъчни низове
свойство TitleCaptions: TStrings;Съдържа заглавия на колони
propertyValues[const Key:String]: String;Осигурява достъп до стойности чрез техните индекси

tvaluelisteditor
Фиг. 18.17.Демонстрация на компонента TValueListEditor

Свойството itemprops на класа Titemprop има свои собствени свойства:

Свойството PickList не е предназначено за програмен достъп. За да създадете падащ списък с възможни стойности, трябва да зададете свойството ItemProp.EditStyle на esPickList и да напишете манипулатор на събития onGetpickList. Нека, например, първата стойност трябва да има падащ списък. Тогава имате нужда от този код:

Следните свойства на компонента са подобни на свойствата на компонента TStringGrid със същото име (вижте раздел 18.2.4): , TopRow, VisibleColCount,VisibleRowCount. функция InsertRow(const KeyName,. "."alue: String; Append: Boolean) : Integer-procedure Refresh; функция RestoreCurrentRow: Boolean;

Методите CellRect, MouseToCell и MouseCoord са подобни на компонентните методи със същото имеTStringGrid (вижте 18.2.4).

Компонентни събития:
свойство OnEditButtonClick: TNotifyEvent;Възниква, когато се щракне върху бутона за разширяване на диалоговия прозорец за редактиране на стойност. Свойството ItemProps .EditStyle трябва да съдържа стойността esEllipse
тип TGetPickListEvent = процедура (Подател: TObject; const KeyName: String; Стойности: TStrings)на обект; свойство OnGetPickList: TGetPickListEvent;Възниква, когато се щракне върху бутон за разширяване на списъка с възможни стойности. Параметърът KeyName съдържа името на реда, върху който е щракнато. Манипулаторът трябва да попълни списъка със стойности с възможни стойности. Свойството ItemProps. EditStyle трябва да съдържа стойността esPickList
свойство OnStringsChange: TNotifyEvent;Възниква веднага след промяна на името или стойността на текущия ред
свойство OnStringsChanging: TNotifyEvent;Възниква точно преди да се промени името или стойността на текущия ред.
тип TOnVal >Случва се преди входният фокус да напусне клетката ACol, ARow. Манипулаторът може да провери новите стойности на KeyName и KeyValue и да предизвика изключение, ако редакциите на реда са грешни

Следните събития са подобни на събитията на компонента TStringGrid със същото име: OnDrawCell, OnGetEditMask, OnGetEditText OnRowMoved, OnSelectCell, OnSetEditText, OnTopLeftChanged.