luca71 Posted November 12, 2017 Share Posted November 12, 2017 Hi, I'd like to call from a UniMobileApplication a UnimForm inserted in a DLLbut, when I call it, I receive this error message: "Form Owner must be UniApplication" Someone can help me? Thanks. Example ***************************************** ** MyMobileApplication.exe ***************************************** program ApplicationServer; uses Forms, ServerModule in 'ServerModule.pas' {UniServerModule: TUniGUIServerModule}, MainModule in 'MainModule.pas' {UniMainModule: TUniGUIMainModule}, Mainm in 'Mainm.pas' {MainmForm: TUnimForm}, {$R *.res} begin ReportMemoryLeaksOnShutdown := True; Application.Initialize; TUniServerModule.Create(Application); Application.Run;end. unit Mainm; type TMainmForm = class(TUnimForm) UnimBitBtn1: TUnimBitBtn; private { Private declarations } public { Public declarations } end; function my_external_form ( UniApplication: TUniGUIApplication ): TUnimForm; StdCall ; external "c:\temp\my_dll.dll" ; implementation ...... procedure TMainmForm.UnimBitBtn1Click(Sender: TObject);begin result := my_externat_form ( UniApplication ) ; end; ********************************* c:\temp\my_dll.dll *********************************library My_dll; uses Mobile_form in 'Mobile_form.pas' {UnimForm1: TUnimForm}; {$R *.res} exports my_external_form ; begin end. ************************************unit Mobile_form; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, uniGUIServer, uniGUIMainModule, uniGUIApplication, uIdCustomHTTPServer, uniGUITypes, Controls, uniGUIAbstractClasses, uniGUIClasses, uniGUImClasses, uniGUIForm, uniGUImForm, uniGUImJSForm ; type TUnimForm1 = class(TUnimForm) private { Private declarations } public { Public declarations } end; Var MyUniApplication :TUniGUIApplication ; function my_external_form ( UniApplication :TUniGUIApplication ) :TUnimForm ; stdCall ;function UnimForm1: TUnimForm1; implementation {$R *.dfm} function my_external_form( UniApplication :TUniGUIApplication ):TUnimForm ;Begin MyUniApplication := UniApplication ; Result := UnimForm1 ; End; function UnimForm1: TUnimForm1;begin Result := TUnimForm1 ( MyUniApplication.UniMainModule.GetFormInstance ( TUnimForm1 ) ); end; end. Link to comment Share on other sites More sharing options...
Recommended Posts