![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Svetkin |
|
||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 7.4.2004 Репутация: нет Всего: нет |
Суть проблемы следующая:
хочу сделать копирование данных в буфер из грида (стороннего). Идея в том чтобы зарегистрировать свой формат в Clipboard и его использовать если копируешь и вставляешь в своем приложение а для остальных сделать представление в виде текста. Формат состоит из двумерного динамического массива в котором соответственно колонки это поля, а ряды - записи. собственно вот регистрируем
далее определяем тип данных
выделяем память под массив
дальше копируем данные из массива в память и заносим их зарегистрированным форматом
ну и вставка данных делается так
и вторая проблем даже если поставить в определении типа фиксированный массив и соответственно копировать соответственное количество данных то при копировании происходит искажение данных массива отсюда вопрос можно ли вообще так обращаться с массивами????? и с динамическими в частности????? Это сообщение отредактировал(а) Svetkin - 22.12.2009, 10:27 |
||||||||||
|
|||||||||||
| dvamaster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 559 Регистрация: 30.6.2004 Где: Россия : Курган Репутация: 2 Всего: 10 |
Динамический массив кроме данных содержит служебную информацию о длине, так что врядли -------------------- Хорошую информацию трудно добыть. Сделать с ней что-нибудь - еще труднее. /L. Skywalker/ Что же я сделал не так? /Король Лир/ Я делаю это для твоего же блага! /Любой родитель и палач/ PKUNZIP.ZIP /неизвестный/ |
|||
|
||||
| sCreator |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 20.8.2009 Где: Московская област ь Репутация: нет Всего: 5 |
Похоже идея Ваша не сработает.
GlobalSize(ArrayField) выдает размер памяти, выделенной функцией GlobalAlloc. TcxCopy = array of array of string; по сути объявление указателя на массив указателей на массив указателей строк. Например
если остановиться после SetLength то получим: sizeOf(tc) = 4 байта ( tc - указатель на TcxCopy ) sizeOf(tc[0]) = 4 байта ( tc[0] - указатель на array of string) sizeOf(tc[0,0]) = 4 байта ( tc[0,0] - указатель на string) Т.е. Вам надо расчитать требуемый размер буфера ( с учетом записи в него размерностей массивов и длин строк). Выделить ему память и собрать в него все свои ячейки. Из буфера обратный порядок. Может проще собирать ячейки в одну строку? ( вычитал недавно:
|
||||
|
|||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |