Главная страница
    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.47 MB
Время: 0.016 c
14-8669
Rouse_
2003-10-10 09:34
2003.11.03
Torry DVD диски


8-8554
Илья
2003-07-03 12:49
2003.11.03
Работа со звуком.


3-8283
rosl
2003-10-09 02:32
2003.11.03
sql


3-8296
Igor_RIM
2003-10-13 16:32
2003.11.03
IBEvents в внешняя dll


14-8642
Leon Crom
2003-10-14 16:35
2003.11.03
интересно....





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский