Вверх ↑
Этот топик читают: Гость
Ответов: 4630
Рейтинг: 749
#16: 2010-09-17 12:35:31 ЛС | профиль | цитата
Я понял, что должен получить указатель на TMemoryStream. А проблема в том, правильно ли я считываю этот указатель в приведенном выше коде?
------------ Дoбавленo в 12.35:
Или в cgt.propGetValue я получаю указатель на TParamRec?
карма: 26

0
Администрация
Ответов: 15295
Рейтинг: 1519
#17: 2010-09-17 12:49:44 ЛС | профиль | цитата
PStream и TMemoryStream это совершенно разные типы.
карма: 27
0
Ответов: 4630
Рейтинг: 749
#18: 2010-09-17 12:54:44 ЛС | профиль | цитата
А где обьявлен TMemoryStream?
карма: 26

0
Администрация
Ответов: 15295
Рейтинг: 1519
#19: 2010-09-17 13:00:04 ЛС | профиль | цитата
модуль classes из библиотеки VCL Delphi7
карма: 27
0
Ответов: 4630
Рейтинг: 749
#20: 2010-09-17 13:05:34 ЛС | профиль | цитата
А тепер вопрос "на миллион": каким образом я могу использовать этот класс, компилируя codegen.dpr с помощью штатного Delphi4?
карма: 26

0
Администрация
Ответов: 15295
Рейтинг: 1519
#21: 2010-09-17 13:27:33 ЛС | профиль | цитата
Netspirit, если статью все же лениво было прочесть до конца, приведу некоторые выдержки из нее:
wiki писал(а):
Cв-ва Icon, Stream, Bitmap, Wave, Jpeg - использовать их напрямую не рекомендуется.

карма: 27
0
Ответов: 4630
Рейтинг: 749
#22: 2010-09-17 13:34:27 ЛС | профиль | цитата
Следует ли понимать, что в кодогенераторе FTCG я никак не смогу получить эти свойства?
карма: 26

0
Администрация
Ответов: 15295
Рейтинг: 1519
#23: 2010-09-17 15:52:22 ЛС | профиль | цитата
Netspirit писал(а):
Следует ли понимать, что в кодогенераторе FTCG я никак не смогу получить эти свойства?

Netspirit, ну это весьма странный вопрос. В FTCG нет никаких Icon, Stream, Bitmap, Wave, Jpeg и всего прочего. Поэтому в каком виде должно выражаться это "получить" мне совершенно не ясно.

Для работы с такими свойствами нужно делать какой-то интерфес, аналогичный ф-циям resXXX. Интерфейс этот можно определить только после того, как будет ясна задача, для которой "никак не смогу получить эти свойства". Судя по уже предоставленной информации есть желание получить метод, который указанное св-во сохраняет в указанный же файл. Еще какие-то задачи имеются(желательно сразу озвучить весь список)?
карма: 27
0
Ответов: 4630
Рейтинг: 749
#24: 2010-09-17 16:21:00 ЛС | профиль | цитата
Основные идеи две:
1) "Вытянуть" из схемы эти свойства во время компиляции во временную папку, чтобы мой компилятор смог их получить и скомпилировать в готовое приложение (как это по-видимому делается в пакете Delphi, только функциональность среды специально заточена для этого пакета)
2) Получить доступ к "сырым" данным, например, TMemoryStream'a, прочитать и/или преобразовать их (если нужно) и поместить в целевой код для последующей компиляции.
Я просто не думал, что эти типы свойств нельзя просто получить в кодогенераторе (т.е., TMemoryStream считал разновидностью KOL'овского TStream).
Dilma писал(а):
нужно делать какой-то интерфес, аналогичный ф-циям resXXX

Предлагаю эти свойства реализовать средствами KOL (ну, по крайней мере, data_stream и data_icon, которые имеют аналоги в KOL) и дать доступ к указателям на их классы.

А в общем всё это нужно для того, чтобы хранить ресурсы приложения (графику, звук и т.д.) в схемах, а не таскать отдельно.
карма: 26

0
Администрация
Ответов: 15295
Рейтинг: 1519
#25: 2010-09-17 16:31:28 ЛС | профиль | цитата
Netspirit писал(а):
Предлагаю эти свойства реализовать средствами KOL (ну, по крайней мере, data_stream и data_icon, которые имеют аналоги в KOL) и дать доступ к указателям на их классы.

почему так делать не стоит написано в той же самой статье. Все необходимые операции желательно реализовывать интерфейсными ф-циями.
карма: 27
0
Ответов: 4630
Рейтинг: 749
#26: 2010-09-17 16:38:06 ЛС | профиль | цитата
Ну так подскажи, возможно ли (и как) реализовать указанные задачи, компилируя кодогенератор нашим Delphi. Какие функции CGTShare нужно использовать?
карма: 26

0
Администрация
Ответов: 15295
Рейтинг: 1519
#27: 2010-09-17 17:07:23 ЛС | профиль | цитата
Netspirit писал(а):
возможно ли (и как)

дописать интейрейс объекта cgt в среде и заголовочный файл CGTShare.pas в пакете
карма: 27
0
Ответов: 241
Рейтинг: 45
#28: 2010-09-17 17:48:30 ЛС | профиль | цитата
Netspirit, в пакете PDA используется преобразование типа строки в Unicode. Аналогично можно поступать и с данными типа data_stream. Посмотреть можно в direct.inc вышеобозначенного пакета.
карма: 0

0
Ответов: 4630
Рейтинг: 749
#29: 2010-09-17 17:58:55 ЛС | профиль | цитата
Wolfik, да нет, тут посложнее, иначе не пришлось бы обсуждать того, что выше.
карма: 26

0
Администрация
Ответов: 15295
Рейтинг: 1519
#30: 2010-09-17 21:02:23 ЛС | профиль | цитата
добавил в интерфейс cgt метод propSaveToFile, который умеет сохранять любое св-во с внутренним типом TMemoryStream в указанный файл
карма: 27
1
Голосовали:Minkovsky
Сообщение
...
Прикрепленные файлы
(файлы не залиты)