Есть основная программа и в ней форма. На ней Database1 с именем MyDB и компонент Table1: TTable.
И есть bpl, в которой экспортируются процедура и функция:
procedure Proc_Show_Table(Database1: Tdatabase; Tablea: TTable);
begin
try
Form2:=TForm2.Create(nil);
Form2.Label1.Caption:=tablea.DatabaseName;
Form2.ShowModal;
finally
Form2.Free;
end;
end;
function Get_Table_PTR(Tablea: TTable):TTable;
begin
result:=tablea;
end;
Из основного приложения
Подключаюсь к Database1, Table1.active:=true.
На форме есть две кнопки.
По нажатию Кнопки2 вызывается Get_Table_PTR
....
@MyFun:=GetProcAddress(MyModule, 'Get_Table_PTR');
tbl:=MyFun(form1.table1);
label1.Caption:=tbl.DatabaseName;
....
В результате после клика на кнопке в Label1 Вижу надпись 'MyDB'.
По нажатию Кнопки1 вызывается Proc_Show_Table
....
@ShowTable:=GetProcAddress(MyModule, 'Proc_Show_Table');
showtable(database1, table1);
....
В результате открывается форма а на ней в Label1 вижу абракадабру.
Очевидно, я в чем-то не прав, хотя результат должен быть совершенно одинаков на обоих формах.
В чем проблема?
Я так подозреваю, что в подгружаемые процедуры и функции передается ближний указатель на объект, а должен передаваться дальний. Можно ли как-то на это влиять?
Может я и ошибаюсь. Кто знает-подскажите.
И есть bpl, в которой экспортируются процедура и функция:
procedure Proc_Show_Table(Database1: Tdatabase; Tablea: TTable);
begin
try
Form2:=TForm2.Create(nil);
Form2.Label1.Caption:=tablea.DatabaseName;
Form2.ShowModal;
finally
Form2.Free;
end;
end;
function Get_Table_PTR(Tablea: TTable):TTable;
begin
result:=tablea;
end;
Из основного приложения
Подключаюсь к Database1, Table1.active:=true.
На форме есть две кнопки.
По нажатию Кнопки2 вызывается Get_Table_PTR
....
@MyFun:=GetProcAddress(MyModule, 'Get_Table_PTR');
tbl:=MyFun(form1.table1);
label1.Caption:=tbl.DatabaseName;
....
В результате после клика на кнопке в Label1 Вижу надпись 'MyDB'.
По нажатию Кнопки1 вызывается Proc_Show_Table
....
@ShowTable:=GetProcAddress(MyModule, 'Proc_Show_Table');
showtable(database1, table1);
....
В результате открывается форма а на ней в Label1 вижу абракадабру.
Очевидно, я в чем-то не прав, хотя результат должен быть совершенно одинаков на обоих формах.
В чем проблема?
Я так подозреваю, что в подгружаемые процедуры и функции передается ближний указатель на объект, а должен передаваться дальний. Можно ли как-то на это влиять?
Может я и ошибаюсь. Кто знает-подскажите.