Форум: "Основная";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];
ВнизTWriter & TReader в D5 & D6. Найти похожие ветки
← →
Fredericco (2003-10-23 19:12) [0]Привет всем.
Проблема.
В Д6 переписан Вритер и Ридер. Добавлен юникод. Есть два редактора, результат работы которых файл одного и того же формата. Д5, понятное дело, не читает файл сохраненный в Д6.
Встала проблема, которую уже 3 дня не можем решить, как сохранить файл из под Д6?..
Собственные варианты решения:
1) Переход с Д5 на Д6 или наоборот с Д6 на Д5, по объективным причинам трудный. Как и написание собственного Вритера. За не имением времени отказались.
2) Создать ДЛЛ, написанную на Д5, передавать в нее класс и там нормально сохранять. Не получилось передать класс в ДЛЛ. Встали на том что не знаем как определить размер класса, это что бы под него память выделить GlobalAlloc"ом.
Помогите пожалуйста добрым советом.
С уважением Fredericco.
← →
vuk (2003-10-23 19:21) [1]Дело происходит в Designtime или в Runtime?
← →
Fredericco (2003-10-23 19:22) [2]В Runtime.
← →
Fredericco (2003-10-23 19:22) [3]Совсем забыл сказать: редакторы это наши программы.
← →
@Ujin (2003-10-23 19:24) [4]Если я правильно понял вопрос...
Для решения вторым способом:
в библиотеке:
procedure InputClass(AClass: TComponentClass)
вызов из программы:
procedure InputClass(AClass: TComponentClass) external "firw.dll";
...
InputClass(TButton);
← →
vuk (2003-10-23 19:25) [5]Если есть исходники, то кто мешает выдрать TReader и TWriter из classes.pas от D5?
← →
Fredericco (2003-10-23 19:26) [6]2 vuk © (23.10.03 19:25) [5]
Впринципе, уже по-тихоньку выдираем. Просто я решил спросить может есть способ попроще.
← →
Fredericco (2003-10-23 19:28) [7]@Ujin © (23.10.03 19:24) [4]
Попробуй обратится так к какому-нибудь свойству кнопки.
Например Font.Color.
← →
vuk (2003-10-23 19:32) [8]Проще не получится. DLL не подходит уже хотя бы по той причине, что нужно сохранять экземпляр, который создан с одной версией библиотеки, а попытка сохранить его будет делаться кодом, который создан с другой версией. Классы же от разных версий Delphi могут серьезно различаться по внутренней структуре.
← →
Fredericco (2003-10-23 19:37) [9]vuk © (23.10.03 19:32) [8]
Очень может быть, похоже мы с этим и столкнулись...
← →
@Ujin (2003-10-23 19:48) [10]Передавать нужно экземпляр или сам класс? Если сам класс - мой пример замечательно работает. Ссылочка на класс передается, создавай объекты сколько угодно. Если нужно передать экземпляр класса можно использовать указатель на этот экземпляр. Но! Нужно и в библиотеке и ввызывающей программе использовать Runtime пакеты vcl и rtl... Я ипользую такой способ начиная с Object pascal
← →
vuk (2003-10-23 19:54) [11]to @Ujin:
Это все гарантированно работает только тогда, когда основное приложение и dll скомпилированы с одной версией библиотеки (в одной версии Delphi).
← →
@Ujin (2003-10-23 20:02) [12]to vuk. Согласен, не подумал...
← →
Fredericco (2003-10-23 20:22) [13]А ни кто раньше TWriter не выдергивал? :-)))))))
← →
vuk (2003-10-23 20:23) [14]А что, какие-то проблемы? :o)
← →
Fredericco (2003-10-23 20:34) [15]А что если, скопировать classes из Д5 в Д6 и назвать как-нить по другому.... Пошел пробывать...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c