![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как встроить компоненты редактирования в KOLmdvXLGrid?
_Polymorphic_ © (2003-07-30 10:36:00)Поделитесь опытом > subj. Thnx!
mdw (2003-07-30 12:50:00) [1]Как таковой редактор в Grid-компоненте отсутствует (в VCL -
InplaceEditor). Т.к сетка, все таки предназначена для отображения
данных, а редакторование - это функционально.
Для поддержки возможности редактирования есть два свойства.
OnBeginEdit - возникает при возникновении возможности редактирования (Enter, F2, Двойном щелчке на
ячейке). Переход в режим редактирования по одному щелчку (как в
Grid'e VCL) - нет, мне это там не нравилось. Хотя если есть
настоятельное мнение, что это нужно, можно и сделать. :))
TOnBeginEdit = procedure (Sender: PControl; ACol, ARow: Integer; var AShowControl, ATextControl: PControl; var AIndents: TRect) of object;
Sender: PControl - Сам контрол, т.е Grid.
ACol, ARow: Integer; - соответственно координаты сфокусированной
ячейки.
var AShowControl: PControl - здель нужно передать указатель на контрол
(PControl), который будет использоваться как редактор. Например
Edit или Panel, при этом на ней можно разместить любые элементы.
Если nil(он там изначально) - то соответственно редактор вызываться не будет.
var ATextControl: PControl; - Элемент, который будет иметь фокус
просле активизации редактора (AShowControl). Имеет смысл если на
AShowControl лежит несколько контролов. может быть nil, тогда фокус
получит AShowControl.
var AIndents: TRect - Отступы с которыми будет позиционироваться
AShowControl относительно ячейки. Полезно для выравнивания текста в
Grid'e и в редакторе, ну или еще зачем нибудь - вариантов много.
Элементы редактирования (AShowControl) не должны использоваться для
других целей, т.к. они автоматически будут скрываться по окончанию
редактирования.
OnEndEdit - возникает при окончании редактирования. (нажатии Enter, F2, потере фокуса)
TOnEndEdit = procedure (Sender: PControl; ACol, ARow: Integer; AShowControl, ATextControl: PControl; var AText: String; var Access: Boolean) of object;
Sender: PControl; Тоже что и в OnBeginEdit
ACol, ARow: Integer;
AShowControl, ATextControl: PControl;
var AText: String; - Текст который будет установлен в ячейке(по
умолчанию текст из FTextEditor)
var Access: Boolean - При False выход из редактора не произойдет.
Обрабатывать OnEndEdit не обязательно, т.к в ячейке текст
установится автоматом из FTextEditor.