Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.03;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.015 c
14-8674
Gorlum
2003-10-13 21:02
2003.11.03
Объясните неразумному, в чём дело?


1-8459
zapped
2003-10-24 13:13
2003.11.03
Delphi 5 vs Delphi 7


1-8487
Mag
2003-10-24 17:32
2003.11.03
Бегущая строка


1-8438
undert
2003-10-14 22:55
2003.11.03
Rave PDF Render


1-8437
ss300
2003-10-22 07:17
2003.11.03
Изменение шрифта в канвасе