Я понял, что должен получить указатель на TMemoryStream. А проблема в том, правильно ли я считываю этот указатель в приведенном выше коде?
------------ Дoбавленo в 12.35:
Или в cgt.propGetValue я получаю указатель на TParamRec?
Этот топик читают: Гость
Ответов: 4630
Рейтинг: 749
|
|||
карма: 26 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
PStream и TMemoryStream это совершенно разные типы.
|
|||
карма: 27 |
|
Ответов: 4630
Рейтинг: 749
|
|||
А где обьявлен TMemoryStream?
|
|||
карма: 26 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
модуль classes из библиотеки VCL Delphi7
|
|||
карма: 27 |
|
Ответов: 4630
Рейтинг: 749
|
|||
А тепер вопрос "на миллион": каким образом я могу использовать этот класс, компилируя codegen.dpr с помощью штатного Delphi4?
|
|||
карма: 26 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Netspirit, если статью все же лениво было прочесть до конца, приведу некоторые выдержки из нее:
wiki писал(а): Cв-ва Icon, Stream, Bitmap, Wave, Jpeg - использовать их напрямую не рекомендуется. |
|||
карма: 27 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Следует ли понимать, что в кодогенераторе FTCG я никак не смогу получить эти свойства?
|
|||
карма: 26 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Netspirit писал(а): Следует ли понимать, что в кодогенераторе FTCG я никак не смогу получить эти свойства?Netspirit, ну это весьма странный вопрос. В FTCG нет никаких Icon, Stream, Bitmap, Wave, Jpeg и всего прочего. Поэтому в каком виде должно выражаться это "получить" мне совершенно не ясно. Для работы с такими свойствами нужно делать какой-то интерфес, аналогичный ф-циям resXXX. Интерфейс этот можно определить только после того, как будет ясна задача, для которой "никак не смогу получить эти свойства". Судя по уже предоставленной информации есть желание получить метод, который указанное св-во сохраняет в указанный же файл. Еще какие-то задачи имеются(желательно сразу озвучить весь список)? |
|||
карма: 27 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Основные идеи две:
1) "Вытянуть" из схемы эти свойства во время компиляции во временную папку, чтобы мой компилятор смог их получить и скомпилировать в готовое приложение (как это по-видимому делается в пакете Delphi, только функциональность среды специально заточена для этого пакета) 2) Получить доступ к "сырым" данным, например, TMemoryStream'a, прочитать и/или преобразовать их (если нужно) и поместить в целевой код для последующей компиляции. Я просто не думал, что эти типы свойств нельзя просто получить в кодогенераторе (т.е., TMemoryStream считал разновидностью KOL'овского TStream). Dilma писал(а): нужно делать какой-то интерфес, аналогичный ф-циям resXXXПредлагаю эти свойства реализовать средствами KOL (ну, по крайней мере, data_stream и data_icon, которые имеют аналоги в KOL) и дать доступ к указателям на их классы. А в общем всё это нужно для того, чтобы хранить ресурсы приложения (графику, звук и т.д.) в схемах, а не таскать отдельно. |
|||
карма: 26 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Netspirit писал(а): Предлагаю эти свойства реализовать средствами KOL (ну, по крайней мере, data_stream и data_icon, которые имеют аналоги в KOL) и дать доступ к указателям на их классы.почему так делать не стоит написано в той же самой статье. Все необходимые операции желательно реализовывать интерфейсными ф-циями. |
|||
карма: 27 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Ну так подскажи, возможно ли (и как) реализовать указанные задачи, компилируя кодогенератор нашим Delphi. Какие функции CGTShare нужно использовать?
|
|||
карма: 26 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Netspirit писал(а): возможно ли (и как)дописать интейрейс объекта cgt в среде и заголовочный файл CGTShare.pas в пакете |
|||
карма: 27 |
|
Ответов: 241
Рейтинг: 45
|
|||
Netspirit, в пакете PDA используется преобразование типа строки в Unicode. Аналогично можно поступать и с данными типа data_stream. Посмотреть можно в direct.inc вышеобозначенного пакета.
|
|||
карма: 0 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Wolfik, да нет, тут посложнее, иначе не пришлось бы обсуждать того, что выше.
|
|||
карма: 26 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
добавил в интерфейс cgt метод propSaveToFile, который умеет сохранять любое св-во с внутренним типом TMemoryStream в указанный файл
|
|||
карма: 27 |
| ||
Голосовали: | Minkovsky |