Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.014 c
4-8728
aldapooh
2003-08-28 13:23
2003.11.03
NetUserGetInfo


1-8357
DimChan
2003-10-23 10:05
2003.11.03
TQuery


1-8422
Oleg Barsky
2003-10-22 12:31
2003.11.03
Как узнать существует ли дирректория?


4-8734
Rel_
2003-08-28 11:29
2003.11.03
HDC


14-8605
k-man
2003-10-15 18:09
2003.11.03
Небольшой вопрос от начинающего в C++





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский