olegenty |
Отправлено: 18.08.2005, 11:26 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Суть: был у меня TDataModule. Но не нравилась мне его функциональность. Дай, думаю, сделаю так:
CODE |
class CPluginDataModule: public TDataModule
{
private:
const CCallback *m_pCallback;
const HWND m_hParentHandle;
protected:
__property const CCallback *Callback = {read = m_pCallback};
__property const HWND ParentHandle = {read = m_hParentHandle};
public:
__fastcall CPluginDataModule(Classes::TComponent *Owner,
const CCallback *Callback,
const HWND ParentHandle);
};
|
ну сделал. и занаследовал уже существующий DataModule (с существующим DFM) от сего класса.
дальше начались решечёные чудеса: в скомпилированном проекте начали происходить несуществующие события. расстроился, чуть на фекалии не изошёл. на всякий случай перезапустил C++ Builder и сделал Build EXE и DLL, с которой все эти неприятности начались. запускаю, и вижу офигенную мессагу: св-во dmPlanUnit->Color не существует. ну, странный, думаю, ты, модуль, твою мать, данных. я, типа, и сам знаю, что св-ва нету. дай, думаю, гляну-ко я на тебя. ну и открываю модуль данных. и вижу, что это уже форма!!!
чё за нахер?
|
|
olegenty |
Отправлено: 18.08.2005, 11:45 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
предположил, что дело всё в конструкторе. создал без "лишних" параметров. для чистоты эксперемента создал новый модуль данных. та же шняга. обидно две вещи: модуль данных придётся пересоздавать с нуля, а он отличался офигенной навороченностью. не хватало только того, что я хотел добавить. С++ Builder в рейтинге упал ниже Borland C++ 3.11 (тот хоть такой фигни не делал)
|
|
AVC |
Отправлено: 18.08.2005, 12:15 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Такое бывает, когда далаешь Datamodule глобальным символом. Поробуй добавить в h описание
class PACKAGE TDM;
class TDM : public TDataModule
Без таких строк все нормально, пока не закрыл в редакторе Datamodule. Закрыл, открыл — стал формой. Ох и попил он у меня когда-то крови. Для восстановления можно попробать ручками поправить представление "как текст".
|
|
GIZMO |
Отправлено: 18.08.2005, 12:20 |
|
Машинист паровоза
Группа: Участник
Сообщений: 174
|
QUOTE (olegenty @ 18/08/2005, 11:26) | Суть: был у меня TDataModule. Но не нравилась мне его функциональность.
чё за нахер? |
1. Воспользоваться репозиторием
2. Положить в пакет и сделать RegisterCustomModule
Присоединить изображение
|
|
olegenty |
Отправлено: 18.08.2005, 12:27 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Ну, восстановление оказалось тривиальным, просто нунаследовал его снова от TDataModule. Попробовал твой рецепт. Помогло. Сейчас проверю, нет ли тех самых "левых" событий, которые происходили "мимо" кода обработчиков...
|
|
olegenty |
Отправлено: 18.08.2005, 12:30 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
репозитарий не катит. с ним были другие проблемы, ну нафиг.
2 AVC, да, DesignTime проблема посредством твоего рецепта решилась, а вот Runtime проблема — нет...
|
|
olegenty |
Отправлено: 18.08.2005, 12:50 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
чё-то не пойму. на один сеанс работы Builder'а хватило счастья, а дальше всё то же.
потом буду разбираться, а сейчас вернусь к старинному способу.
|
|
AVC |
Отправлено: 18.08.2005, 13:18 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE |
AVC, да, DesignTime проблема посредством твоего рецепта решилась, а вот Runtime проблема — нет...
|
А у меня она в runtime и не возникала . Создаю модуль так
Писаное мной в DataModl.h +
#include "...DataModl.h"
try {
DM = new TDM(Application);
...
Да, естественно, модуль в пакете.
Отредактировано AVC — 18/08/2005, 12:19 |
|
olegenty |
Отправлено: 18.08.2005, 14:08 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
а у меня не в пакете, а в DLL. короче, пофигу, пока перебьюсь, потом всё равно добью.
|
|
Guest |
Отправлено: 19.08.2005, 08:33 |
|
Не зарегистрирован
|
Если нужен свой TDataModule или свой TForm без репозитария
то смотри здесь
http://bcdev.narod.ru/Articles/FMPropeties.htm
http://bcdev.narod.ru/Articles/Expert.htm |
|
olegenty |
Отправлено: 20.08.2005, 09:43 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Спасибо, зачитал. Увы, у меня С++ Builder 6. как там у Булгакова? "Я в восхищении". От себя добавлю — от кривизны C++ Builder.
|
|