Когда я жму Ctrl-C на ячейке или группе ячеек, они не только заносятся в буфер обмена, но и вызывают перехватчик OnCellProcess. А вот если после этого я пытаюсь вставить их через Ctrl-V, данный перехват не срабатывает. Насколько я понимаю, т.к. ЛСЛ пытается копировать содержимое не только текстом, но и в виде HTML, а при вставке разметки данный перехватчик не вызывается, только для обычного текста.
Есть ли какой-то нормальный способ всё же отслеживать эти изменения? По идее, т.к. ячейки заполняются по одной, должно что-то вызываться, но я совсем запутался с обработчиками, похоже, и не соображу никак, как это сделать.
Помогите, плиз.
(Задача-то - скопировать несколько ячеек из одного столбца и вставить в другой, при этом занося инфу и в "связанный" мой массив)
TStringGrid - перехват изменения текста ячейки
Модератор: Модераторы
Awkward писал(а):Когда я жму Ctrl-C на ячейке или группе ячеек
Каких ячеек?
А увидел.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ну, это хорошо для назначения одной ячейке, такое я и делал себе. А суть в том, что если выделить в столбце несколько ячеек, скопировать по Ctrl-C, а потом вставлять по Ctrl-V в другом столбце (даже если выделив несколько ячеек), то OnCellProcess не вызывается. Т.е. мы можем перехватить спокойно назначаемый текст в целом, но т.к. вставляться будет HTML-код, мы не получим простой способ перехвата в цикле назначения отдельных значений каждой ячейке.
Я с этим бился в свое время. Толком не получилось.
Напрочь закрыл всяческие Ctrl-V, и только через контекстное меню.
А по теме, не знаю как сделать.
Напрочь закрыл всяческие Ctrl-V, и только через контекстное меню.
А по теме, не знаю как сделать.
Ну, образец в Grids.pas самом же есть, как исправить, но патч для LCL делать и посылать... а можно как-то попроще?
-
LearnMagic
- новенький
- Сообщения: 66
- Зарегистрирован: 10.11.2016 22:13:38
Awkward писал(а):Ну, образец в Grids.pas самом же есть, как исправить, но патч для LCL делать и посылать... а можно как-то попроще?
Исправляете Grid.pas и пересобираете Lazarus. Желательно сохранить оригинальный файл, чтобы при следующем обновлении Lazarus мучительно не вспоминать, что же было изменено
