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

Вниз

Передача указателя формы в процедуру 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
3-1116306936
GydruS
2005-05-17 09:15
2005.06.29
Уважаемые мастера, почему падает БД Paradax с сообщением "Corr...


1-1117948037
Петр
2005-06-05 09:07
2005.06.29
Протоколирование работы программы(трассировка)


3-1116408719
_e_u_
2005-05-18 13:31
2005.06.29
Вредный, простой скуэль запрос:


14-1117970147
Juice
2005-06-05 15:15
2005.06.29
Глючит проводник. Что делать ?


6-1112244842
X-Disa
2005-03-31 08:54
2005.06.29
Процесс загрузки в TIdHttp.Get?