Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2009, 09:17   #1
funball
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 44
По умолчанию Буфер обмена для данных DBGrid-а

Добрый день.

Возможно ли реализовать такой процесс:
...загрузили в ГРИД данные, таблица заполнена
- нажимаем кнопочку(или любой другой action)
- все данные находящиеся в гриде записались в буфер(как выделили бы в Экселе данные и копи)
- далее соответственно можно их впастить куда угодно по надобности)

Сам я пока в этой теме не рылся, поэтому если кто такое реализовывал, то интересно было бы посмотреть как)

И еще одно:
-как настроить, и возможно ли, свойства грида, которые позволяли бы выделять несколько строк с возможностью их копирнуть?

Спасибо.
funball вне форума Ответить с цитированием
Старый 29.07.2009, 09:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
все данные находящиеся в гриде записались в буфер
Ну в принципе можно в Клипбоард их загнать, но самый главный вопрос:
Цитата:
впастить куда угодно по надобности
А точнее куда? Если и писать их в клипбоард то нужно знать в каком виде их оттуда нужно выбирать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.07.2009, 10:52   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
...загрузили в ГРИД данные, таблица заполнена
- нажимаем кнопочку(или любой другой action)
- все данные находящиеся в гриде записались в буфер(как выделили бы в Экселе данные и копи)
- далее соответственно можно их впастить куда угодно по надобности)
Вот процедура в одну строчку, как выделиить всю таблицу:
Код:
 Form7.DBGridEh1.SelectedRows.SelectAll;
Цитата:
далее соответственно можно их впастить куда угодно по надобности)
Сразу вставить после того как скопировали? Или как? Чтобы скопировать выделенную таблицу, достаточно нажать комбинацию клавиш Ctrl + c.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 29.07.2009, 11:01   #4
funball
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А точнее куда? Если и писать их в клипбоард то нужно знать в каком виде их оттуда нужно выбирать.
Ну например в Exel, при вставке в котый данные как в Гриде распределялись бы по колонкам....или в Word списком, колонкой.....имеется ввиду настроить работу по типу - "копи-паст" обычной работы)

А вообще конечно нужнее всего это настройка грида на возможность копировать несколько выделенных строк. Возможно так?

Экспортировать в Эксель всетаки будет лучше чем буфер с большим набором данных...)
funball вне форума Ответить с цитированием
Старый 29.07.2009, 11:11   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
А вообще конечно нужнее всего это настройка грида на возможность копировать несколько выделенных строк. Возможно так?
Для этого у грида есть свойство dgMultiSelect. Поставьте его в True и сможете выделять сколько угодно строчек.
Цитата:
Ну например в Exel, при вставке в котый данные как в Гриде распределялись бы по колонкам....или в Word списком, колонкой.....имеется ввиду настроить работу по типу - "копи-паст" обычной работы)
Вот код сохранения грида в Excel:
Код:
SaveDBGridEhToExportFile(TDBGridEhExportAsXLS,DBGridEh1,'c:\temp\file1.xls',False);

EhLib Software
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 29.07.2009, 11:23   #6
funball
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 44
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Сразу вставить после того как скопировали? Или как? Чтобы скопировать выделенную таблицу, достаточно нажать комбинацию клавиш Ctrl + c.
Нет, просто иметь до следующего нажатия на кнопку эти данные в буфере), соответственно если не перебивать копиями чего-либо другого))..
А вот "достаточно нажать комбинацию клавиш Ctrl + c" у меня почему-то так не выходит...конечно выделяется у меня при нажатии строка грида с помощью onCellClick. Может свойство какое надо включить грида...ReadOnly не помогло...или событием каким другим попробовать...кто знает?))
funball вне форума Ответить с цитированием
Старый 29.07.2009, 11:37   #7
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
конечно выделяется у меня при нажатии строка грида с помощью onCellClick.
Поставьте свойство грида dgMultiSelect=True и можете простот выделять мышкой строки.
Цитата:
Нет, просто иметь до следующего нажатия на кнопку эти данные в буфере)
Если данные скопировать в буфер, то они и будут там пока не будет скопировано что либо другое.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 29.07.2009, 11:42   #8
funball
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 44
По умолчанию

а как например записать значение переменной
к примеру BUF :string;
в буфер?
funball вне форума Ответить с цитированием
Старый 29.07.2009, 11:44   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я бы попробовал в цикле пройтись по записям и каждую впихнуть в буфер обмена.
Впрочем здесь http://delphiworld.narod.ru/_all_articles_.html есть
примеры:
http://delphiworld.narod.ru/base/dbg...clipboard.html
http://delphiworld.narod.ru/base/dbg...clipboard.html
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование данных в буфер обмена? ArcticBear Общие вопросы .NET 4 27.11.2009 14:27
Буфер обмена nusik Общие вопросы Delphi 2 21.05.2009 00:53
Копирование в буфер обмена Xanex Общие вопросы Delphi 5 18.05.2009 23:13
буфер обмена __@cmd@__ Общие вопросы Delphi 2 04.02.2009 12:24