Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Вниз

Передача указателя формы в процедуру dll   Найти похожие ветки 

 
paule   (2005-06-07 05:47) [0]

Решил все собственные процедуры перенести в dll. Проблема в том, что процедуры используют данные содержащиеся в  Edit-ах в основной форме.

Процедура из dll:
...
procedure BalanseEnergy(f:TForm); export;
begin
  ShowMessage((f.findComponent("E1_1") as TEdit).Text);
end;

exports
 BalanseEnergy name "BalanseEnergy";
...

Вызываю процедуру так

....
implementation

procedure BalanseEnergy(f:TForm); external "OSGMDLL" name "BalanseEnergy";
...
...
BalanseEnergy(Form1);

Но работать такая конструкция не хочет...

Подскажите, как сделать?


 
Юрий Зотов ©   (2005-06-07 05:55) [1]

Exe и DLL компилируются раздельно, поэтому класс в Exe и тот же самый класс в DLL - это два разных класса. Значит, для переданной ссылки на объект оператор AS правильно не сработает.

Компилируйте Exe и DLL с run-time пакетами. Или вместо DLL используйте BPL. Или используйте COM-технологию. Или откажитесь от передачи ссылок на объекты.


 
paule   (2005-06-07 08:51) [2]

А каким образом тогда можно получить значение Edit-а в процедуре dll?


 
novice_man ©   (2005-06-07 09:48) [3]

paule   (07.06.05 8:51) [2]
А каким образом тогда можно получить значение Edit-а в процедуре dll?


Какое значение? Текст? Передайте его туда при вызове процедуры.


 
paule   (2005-06-07 10:44) [4]

у меня Edit-ов 28 штук, не очень удобно 28 параметров передавать :)


 
novice_man ©   (2005-06-07 10:50) [5]

Поместите их в PChar с разделителями.


 
TUser ©   (2005-06-07 10:50) [6]

> у меня Edit-ов 28 штук, не очень удобно 28 параметров передавать :)

Скорее всего, разумно засунуть их значения в какую-нибудь структуру (record, array) и передавать уже ее.

PS. ShareMem не забудьте.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.044 c
1-1117813072
Dezmond
2005-06-03 19:37
2005.06.29
Сообытие или сообщение о деактивации окна


3-1116068681
ALex2
2005-05-14 15:04
2005.06.29
изменить значение всех ячеек


3-1115987536
Roman_SVT
2005-05-13 16:32
2005.06.29
Delphi и Mysql


14-1117373371
Магнум
2005-05-29 17:29
2005.06.29
Библиотека иконок ICL


6-1111941256
Vitaly Gavrilov
2005-03-27 20:34
2005.06.29
О учете времени в интернет





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