Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > таблицу в TMemoryStream


Автор: mr_oz 6.7.2008, 16:51
Привет всем!!! Подскажите пожалуйста как можно Stringgrid, DBGrid передать в переменную типа TMemoryStream)))

Автор: THandle 7.7.2008, 05:37
Попробуй:

TMemoryStream.WriteComponent, TMemoryStream.ReadComponent;

Автор: mr_oz 7.7.2008, 07:44
сейчас как раз копаюсь... но че то никак . Видел пример с файловым потоком, но если его переделать в TMemoryStream.... Получится воть:
из StringGrida в поток нормально все получается:

Код

m1, m2: TMemoryStream; 
...
ms1.WriteComponent(StringGrid1);
CompressStream(ms1, ms2);
ms2.SaveToFile('C:\ms2.dat');

 А вот обратно:

Код


 ms1.LoadFromFile('C:\ms2.dat');
 DecompressStream(ms1, ms2);
 StringGrid1 := ms2.ReadComponent(StringGrid1) as TStringGrid; <-- error


Ошибка class TInplaceEdit not Found

После чего вычитал что возможно добавить RegisterClass([TStringGrid]);
Эффекта 0;

Автор: Alexeis 7.7.2008, 09:29
mr_oz, указатель потока пробовал в начало перемещать?  smile 

Автор: mr_oz 7.7.2008, 17:18
Alexeis , Извени пожалуйста возможно за глупый вопрос... Какой указатель куда в начало... (Просто сейчас всплывает в памяти только указатели из языка С, под него чаще пишу smile ... Не соображу ни как куда и что)
Я в начало только ставил RegisterClass([TStringGrid]); ошибка

Автор: Alexeis 7.7.2008, 17:31
Ну т.е. позицию для операций чтения/записи Position.

Автор: mr_oz 7.7.2008, 18:50
А все  понял... Сейчас попробую.... 
Типо outStream.Position := 0; или inStream.Position
Спасибо)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)