Последняя версия DataExpress 3 beta от 7 декабря 2019 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

событие при смене элемента таблицы

Все о том как сделать что-то с помощью скриптов.
kok80
Эксперт
Сообщения: 321
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 2 раза
Поблагодарили: 22 раза

событие при смене элемента таблицы

Сообщение kok80 » Чт сен 20, 2018 1:40 pm

На форму помещаю компонент таблица. В нем несколько строк и столбцов. Пользователь выбирает элемент таблицы (мышкой или кнопками). Как отследить смену выбранного элемента таблицы?

ловить OnKeyPress и OnClick?
Нет ли спец события, которое я не смог найти ?

Аватара пользователя
admin
Разработчик
Сообщения: 4630
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 20 раз
Поблагодарили: 96 раз

Re: событие при смене элемента таблицы

Сообщение admin » Чт сен 20, 2018 1:50 pm

Что за элемент? Строка, ячейка?

kok80
Эксперт
Сообщения: 321
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 2 раза
Поблагодарили: 22 раза

Re: событие при смене элемента таблицы

Сообщение kok80 » Чт сен 20, 2018 2:18 pm

Ячейка, событие - смена активной ячейки

Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 11 раз

Re: событие при смене элемента таблицы

Сообщение Гocть » Чт сен 20, 2018 3:21 pm

Специальных событий нет.
Мышь так:

Код: Выделить всё

procedure OCC(Column: TColumn);
begin
 debug(Column.Field.Value)
end;

procedure Form_Create;
begin
dxGrid1.OnCellClick:=@OCC;
end;   

А вот с клавиатурой посложнее. Разве что OnKeyUp отлавливать.
Фрилансер. Разработка на заказ. Консультирование.

kok80
Эксперт
Сообщения: 321
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 2 раза
Поблагодарили: 22 раза

Re: событие при смене элемента таблицы

Сообщение kok80 » Чт сен 20, 2018 3:44 pm

видимо, придется и мышь и клаву ловить

Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 11 раз

Re: событие при смене элемента таблицы

Сообщение Гocть » Чт сен 20, 2018 3:47 pm

Тогда как то так:

Код: Выделить всё

procedure OCC(Column: TColumn);
begin
 debug(Column.Field.Value)
end;

procedure OKU(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Key in [33,34,35,36,37,38,39,40] then
OCC(TColumn(TdxGrid(Sender).Columns[TdxGrid(Sender).SelectedIndex]))
end;

procedure Form_Create;
begin
 dxGrid1.OnCellClick:=@OCC;
 dxGrid1.OnKeyUp:=@OKU;
end; 
Фрилансер. Разработка на заказ. Консультирование.