![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| Canada |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
Есть AdvStringGrid1 от ТМС. Вот хочется, чтобы как только я кликал по ячейке, т.е. выделял ее, чтобы содержимое ее копировалось в буфер обмена, ну типа вставить можно потом в блокнот и т.д.
Т.е. подозреваю, что событие будет OnClickCell обрабатываться. Т.е. TForm1.AdvStringGrid1ClickCell. Но как в буфер копировать? Я не знаю. Помогите пожалуйста. |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
И в чем проблема?
OnClickCell имеет x и y ячейки. Св-во AllCells[x,y] вернет текст этой ячейки Дальше все просто: добавить текст в clipboard |
|||
|
||||
| Canada |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
А как мне Handle узнать моей программы? Что вообще такое?
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Причем здесь Application.Handle? Хендл - это идентификатор/указатель/"ручка" какого-либо объекта. У тебя же OnClickCell располагается в TForm1 ? (или как-там-назвал-форму). У TForm есть такое свойство - Handle, поэтому в коде по ссылке ничего менять не нужно. Так и писать:
|
|||
|
||||
| Canada |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
Ого! Спасибо. Я думал надо менять. Но я пока тоже без дела не сидел и читал про модуль Clipbrd. Мне бы он очень подошел.
Я написал такой вот простенький кусочек
А не работает. Вернее работает частично. Кликаешь 1 раз по ячейке[0,0] - копирует. Второй раз по любой другой - выдает пустой буфер, т.е. ничего не вставляет. Типа нечего. Почему? |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Если AdvStringGrid2.Cells[ARow,ACol] <>'' , то :
1. Use the AsText property to place text in and retrieve text from the clipboard. The clipboard must contain a string or an exception occurs. To determine if the clipboard contains a string, pass CF_TEXT to the HasFormat method. 2. Если 1 успешно, то нужно лезть в VCL. К сожалению, основной метод TClipBoard - SetBuffer не учитывает результат SetClipboardData. Чуть поколдовав над ним (методом SetBuffer), можно получить следующее: (код действителен для D7, но сомневаюсь, что что-то кардинально изменилось)
Затем - смотреть, что означает код ошибки в SystemErrorCodes Только для всех этих манипуляций лучше скопировать Clipbrd.pas в каталог со своей программой и заниматься его модификацией уже там. Добавлено через 3 минуты и 58 секунд Хотя в 1. кажется, нет смысла - все равно при AsText происходит очистка. |
|||
|
||||
| Canada |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
Т.е. выходит, что я не смогу кликом скопировать содержимое ячейки????? Вот это прелестно.
Добавлено через 13 минут и 57 секунд Я тут заметил странности. Кинул на форму Label чтобы выводить на него то, что выделяется кликом. Выбираю значит 1 яейку в табличе, а в Label почему-то результат из 2-й таблицы. Выбираю 2 ячейку в 1 столбце Таблицы1 - результат из 2-й таблицы. Что это такое??? |
|||
|
||||
| Canada |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
Вообще бред конечно какой-то. Уже сделал 2 метки Label чтобы в 1 видеть координаты ячейки, на которую поставлен указатель, а во второй печаталось содержимое ячейки с этими же координатами. В итоге - в ячейке координаты правильные, а в 2 метке значение от соседней ячейки. Это как так вообще быть может?
|
|||
|
||||
| Canada |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
А ларчик просто открывался..ACol сначала и ARow во вторых..А у меня наоборот. Вопрос решен! Уря)
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |