Форум: "Основная";
Текущий архив: 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.04 c