1 (edited by Dmitriy.Himichev 2014-12-15 06:55:37)

Topic: Копирование содержимого ячейки без дополнительных нажатий клавиш

Здравствуйте! Подскажите как можно сделать, чтобы можно было бы стандартно копировать сожержимое ячейки (например содержимое e-mail, привожу скрин). Т.е. щелкаем по ячейке ПКМыши -> копировать. Не нажимая дополнительно никаких сочетаний клавиш

Спасибо!

Post's attachments

Attachment icon 115.jpg 161.05 kb, 395 downloads since 2014-12-15 

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

Приветствую,


Удерживая Ctrl, просто кликаете левой кнопкой мыши по нужной ячейке, и ее содержимое копируется в буфер обмена.
Этот способ точно не подходит?

Dmitry.

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

DriveSoft wrote:

Приветствую,


Удерживая Ctrl, просто кликаете левой кнопкой мыши по нужной ячейке, и ее содержимое копируется в буфер обмена.
Этот способ точно не подходит?

к сожалению нет.. пользователи привыкли к стандартным операциям)

Есть ли ещё варианты?

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

Dmitriy.Himichev wrote:
DriveSoft wrote:

Приветствую,


Удерживая Ctrl, просто кликаете левой кнопкой мыши по нужной ячейке, и ее содержимое копируется в буфер обмена.
Этот способ точно не подходит?

к сожалению нет.. пользователи привыкли к стандартным операциям)

Есть ли ещё варианты?

Подcкажите, у Вас беплатная версия программы?
И Вам нужно только адрес копировать? Другие ячейки не нужны?
Тогда можно сделать примерно так:
Где-нибудь над таблицей или рядом поместить обычную кнопку "Копировать адрес e-mail" и в событие OnClick прописать следующий код:

Form1.TableGrid1.Cells[2,Form1.TableGrid1.SelectedRow] :

Только замените название формы и таблицы на свои, т.е. такой шаблон:

<форма>.<таблица>.Cells[<номер колонки>,<форма>.<таблица>.SelectedRow];

В версии 1.46 бета должно работать.

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

Dmitriy.Himichev


Сделал для вас проект с примером, как можно заменить пункт Copy на свой, также добавил в бета версию 1.48
функции для работы с буфером обмена, скачайте ее:
https://www.dropbox.com/s/6rz92s72djtmv … 8.zip?dl=0



Проект:

Post's attachments

Attachment icon Grid PopupMenu add item replace Copy item.zip 6.23 kb, 480 downloads since 2014-12-15 

Dmitry.

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

alex842
Таким образом строка не скопируется в буфер обмена, чтобы это работало в версии 1.46, можно расположить рядом компонент TextBox, присваивать ему текст ячейки, и вызывать метод CopyToClipboard (Edit1.CopyToClipboard)

Dmitry.

7 (edited by alex842 2014-12-15 09:18:24)

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

DriveSoft wrote:

alex842
Таким образом строка не скопируется в буфер обмена, чтобы это работало в версии 1.46, можно расположить рядом компонент TextBox, присваивать ему текст ячейки, и вызывать метод CopyToClipboard (Edit1.CopyToClipboard)

Точно. Невнимательно прочитал задачу...

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

Вижу тема буферов .......не тех буферов))))))...точнее буфера, стала весьма востребована))

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

здравствуйте ещё раз) У меня версия старая - 1.44 )) А хочется, чтобы можно было копировать содержимое любой ячейки, будь то адрес, или телефон, и т.д. Поможет ли мне что-нибудь при такой ситуации?

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

Dmitriy.Himichev wrote:

здравствуйте ещё раз) У меня версия старая - 1.44 )) А хочется, чтобы можно было копировать содержимое любой ячейки, будь то адрес, или телефон, и т.д. Поможет ли мне что-нибудь при такой ситуации?

Во-первых, скачайте бесплатную бету 1.46
https://www.dropbox.com/s/30ysr48sd8ca4 … 6.zip?dl=0
Затем сделайте следующее:
Поместите на форму компонент TEdit.
В событие формы OnShow вставьте такой код:

procedure Form1_OnShow (Sender: string; Action: string);
begin
  Form1.Edit1.Visible:= False; //делаем компонент невидимым для пользователя
end;

Затем в событие OnClick таблицы напишите следующее:

procedure Form1_TableGrid1_OnCellClick (Sender: string; ACol, ARow: Integer);
var
  sCol, sRow:integer;
  CellText:String;
begin
  sCol:= Form1.TableGrid1.SelectedColumn; //выбранная колонка
  sRow:= Form1.TableGrid1.SelectedRow; //выбранная строка
  CellText:= Form1.TableGrid1.Cells(sCol,sRow); //текст выбранной ячейки
  Form1.Edit1.Text:= CellText; //присваиваем компоненту TEdit текст выделенной ячейки
  Form1.Edit1.SelectAll; //выбираем все
  Form1.Edit1.CopyToClipboard; //копируем в буфер
end;

Но при таком подходе любой клик по любой ячейке будет приводить к копированию в буфер. Поэтому я бы сделал отдельную кнопку и "повесил" данный код на событие OnClick кнопки, чтобы не грузить лишний раз буфер обмена.

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

Dmitriy.Himichev
к сожалению, возможность изменять меню компонента TableGrid реализована в последней версии, в вашем случае как описали выше, придется это сделать через отдельную кнопку.

Dmitry.

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

спасибо, буду пробовать

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

получилось, копирует:) А скажите - можно ли как-то сделать, чтобы визуально было видно, что выделена именно ячейка определенная, а не вся строка. Т.е. визуально кажется так, как-будто выделяется и будет скопирована вся строка

14 (edited by alex842 2014-12-15 14:26:38)

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

Можно сделать так, чтобы выделялась не вся строка, а только одна ячейка.
Вставьте в событие OnShow такой код:

  Form1.TableGrid1.Options := Form1.TableGrid1.Options - goSelectFullRow;

Или можно так сделать:

Form1.TableGrid1.Options := Form1.TableGrid1.Options - goSelectFullRow+goIndicator;

В этом случае в начале строки появляется индикатор, который отмечает выделенную строчку.

Re: Копирование содержимого ячейки без дополнительных нажатий клавиш

спасибо за помощь, теперь моя софтина стала более продуктивной) Иметь бы доступ ещё к редактированию меню грида, но увы))