unit U_GetDllForm; interface uses Windows, Messages, forms, OleCtnrs, DateUtils, SysUtils, ADODB,IniFiles, dxcore,activeX; function GetDllForm(App:Tapplication; FormH:hwnd; FormID:integer; Language: integer; WinStyle:integer; GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;export;stdcall; function ConnData():Boolean; implementation uses U_DataLink,U_Fun,U_YFCR,U_FKCR,U_YFFKList,U_YSCR,U_SKCR,U_YSSKList,U_ProductOrderCost,U_YFFP,U_YSFP, U_YSCRJZC,U_YSCR_Gd,U_SKCR_Gd,U_YFZDList_MX,U_YSZDList_MX,U_YFMXlist,U_YSMXlist,U_FKCR_GD,U_YFCR_GD, U_YF_Money_LL,U_YF_Money_LL_list,U_FYDJ,U_FYDJ_TJ; ///////////////////////////////////////////////////////////////// // ¹¦ÄÜ˵Ã÷:È¡DllÖеô°Ìå // // ²ÎÊý˵Ã÷£ºApp>>µ÷ÓÃÓ¦ÓóÌÐò£» // // FormH>>µ÷Óô°¿Ú¾ä±ú £» // // FormID>>´°¿ÚºÅ; // // Language>>ÓïÑÔÖÖÀà; // // WinStyle>>´°¿ÚÀàÐÍ£» // ///////////////////////////////////////////////////////////////// var frmSKCR,frmSKCRYP: TfrmSKCR; function GetDllForm(App:Tapplication; FormH:hwnd; FormID:integer; Language: integer; WinStyle:integer; GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; Parameters9:PChar;Parameters10:PChar; DataBaseStr:PChar):hwnd; var i: Integer; bFound: Boolean; mnewHandle: hwnd; mstyle: TFormStyle; // 0:×Ó´°¿Ú; 1£ºÆÕͨ´°¿Ú mstate: TWindowState; mborderstyle: TFormBorderStyle; begin mNewHandle:=0; DName:=GName; DCode:=GCode; DdataBase:=DataBase; DTitCaption:=Title; DParameters1:=Parameters1; DParameters2:=Parameters2; DParameters3:=Parameters3; DParameters4:=Parameters4; DParameters5:=Parameters5; DParameters6:=Parameters6; DParameters7:=Parameters7; DParameters8:=Parameters8; DParameters9:=Parameters9; DParameters10:=Parameters10; MainApplication:=App; DCurHandle:=FormH; IsDelphiLanguage:= Language; Application:=TApplication(App); DCurHandle:=0; //¸³ÖµÁ´½Ó×Ö·û´® SetLength(server, 255); SetLength(dtbase, 255); SetLength(user, 255); SetLength(pswd, 255); //server:='192.168.1.99'; //192.168.1.113 server:='47.100.182.1,7781'; dtbase:='guihuadata'; user:='sa'; pswd:='rightsoft@123'; DConString := 'Provider=SQLOLEDB.1;Password='+pswd+';Persist Security Info=True;User ID=' +user+';Initial Catalog='+dtbase+';Data Source='+server; IF trim(DataBaseStr)<>''then DConString := DataBaseStr; // DParameters1:='ÎÞ¶©µ¥ºÅ'; //DParameters1:='¹ÜÀí';//103 DParameters2:='ÈËÃñ±Ò'; // DataBase:='¸ßȨÏÞ'; // DParameters4:='0'; Parameters5:='¹ð»ª·ÄÖ¯'; // DParameters3:='ÏîÄ¿·Ö¿ª'; // DParameters4:='¶Ô·½µ¥Î»·Ö¿ª'; //DParameters5:='¿ªÆ±'; //DParameters6:='ÆäËü'; //Ó¦¸¶¿î //DParameters7:='Æ¥Êý'; //Ó¦ÊÕ¿î //DCode:='test'; //DName:='ÓÝÏþ'; //DParameters9:='Ö§¸¶Ì¨Í·'; //DParameters8:='FactoryNo1Name'; //DParameters10:='P_YSSK_ListTT'; if not ConnData() then begin result:=0; exit; end; { if IsINIFile() then ReadINIFile() else WriteINIFile ;} // ¶¨Òå´°¿ÚÀàÐÍ ¡¢×´Ì¬ if WinStyle=0 then begin mstyle := fsMDIChild ; mstate := wsMaximized ; mborderstyle := bsSizeable; end else begin mstyle := fsNormal ; mstate := wsNormal ; mborderstyle := bsSizeable; end; //////////////////// ///////////////////// //µ÷ÓÃ×ÓÄ£¿é´°¿Ú case FormId of 1: //Ó¦¸¶¿îµÇ¼Ç begin if frmYFCR=nil then begin frmYFCR:= TfrmYFCR.Create(application.MainForm); with frmYFCR do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYFCR.BringToFront; //¾ä±ú mNewHandle:=frmYFCR.Handle; end ; 14: //Ó¦¸¶¿îµÇ¼Ç begin if frmYFCR_GD=nil then begin frmYFCR_GD:= TfrmYFCR_GD.Create(application.MainForm); with frmYFCR_GD do begin // fflag:=1; fflag:=strtointdef(trim(DataBase),0); caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYFCR_GD.BringToFront; //¾ä±ú mNewHandle:=frmYFCR_GD.Handle; end ; 141: //Ó¦¸¶¿îµÇ¼Ç begin if frmYFCR_GD=nil then begin frmYFCR_GD:= TfrmYFCR_GD.Create(application.MainForm); with frmYFCR_GD do begin TBADD.Visible:=false; TBDel.Visible:=false; Label7.Visible:=false; Edit1.Visible:=false; Button1.Visible:=false; CheckBox1.Visible:=false; tv2.OptionsData.Editing:=false; fflag:=strtointdef(trim(DataBase),0); caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYFCR_GD.BringToFront; //¾ä±ú mNewHandle:=frmYFCR_GD.Handle; end ; 2: //¸¶¿îµÇ¼Ç begin if frmFKCR=nil then begin frmFKCR:= TfrmFKCR.Create(application.MainForm); with frmFKCR do begin fSYRName:=trim(Parameters5); caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmFKCR.BringToFront; //¾ä±ú mNewHandle:=frmFKCR.Handle; end ; 24: //¸¶¿îµÇ¼Ç begin if frmFKCR_GD=nil then begin frmFKCR_GD:= TfrmFKCR_GD.Create(application.MainForm); with frmFKCR_GD do begin fflag:=strtointdef(trim(DataBase),0); caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmFKCR_GD.BringToFront; //¾ä±ú mNewHandle:=frmFKCR_GD.Handle; end ; 241: //¸¶¿îµÇ¼Ç begin if frmFKCR_GD=nil then begin frmFKCR_GD:= TfrmFKCR_GD.Create(application.MainForm); with frmFKCR_GD do begin TBADD.Visible:=false; TBDel.Visible:=false; // Label7.Visible:=false; // Edit1.Visible:=false; // Button1.Visible:=false; // CheckBox1.Visible:=false; tv2.OptionsData.Editing:=false; fflag:=strtointdef(trim(DataBase),0); caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmFKCR_GD.BringToFront; //¾ä±ú mNewHandle:=frmFKCR_GD.Handle; end ; 3: //Ó¦¸¶¿î¸¶¿îͳ¼Æ begin if frmYFFKList=nil then begin frmYFFKList:= TfrmYFFKList.Create(application.MainForm); with frmYFFKList do begin caption:=Trim(Title); fDParameters1:=trim(DParameters1); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYFFKList.BringToFront; //¾ä±ú mNewHandle:=frmYFFKList.Handle; end ; 31: //Ó¦¸¶¿îÃ÷ϸÕ˵¥ begin if frmYFZDList_MX=nil then begin frmYFZDList_MX:= TfrmYFZDList_MX.Create(application.MainForm); with frmYFZDList_MX do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYFZDList_MX.BringToFront; //¾ä±ú mNewHandle:=frmYFZDList_MX.Handle; end ; 4: //Ó¦ÊÕ¿îµÇ¼Ç begin IF frmYSCR<>nil then frmYSCR.Free; if frmYSCR=nil then begin frmYSCR:= TfrmYSCR.Create(application.MainForm); with frmYSCR do begin caption:=Trim(Title); fDParameters1:=trim(DParameters4); fDParameters3:=trim(DParameters3); fSYRName:=trim(Parameters5); fstr2:=trim(Parameters6); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSCR.BringToFront; //¾ä±ú mNewHandle:=frmYSCR.Handle; end ; 44: //Ó¦ÊÕ¿îµÇ¼Ç(¹ã¶«) begin if frmYSCR_Gd=nil then begin frmYSCR_Gd:= TfrmYSCR_Gd.Create(application.MainForm); with frmYSCR_Gd do begin caption:=Trim(Title); fmanage:=Trim(DataBase); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSCR_Gd.BringToFront; //¾ä±ú mNewHandle:=frmYSCR_Gd.Handle; end ; { 5: //ÊÕ¿îµÇ¼Ç begin // IF frmSKCR<>nil then frmSKCR.Free; if frmSKCR=nil then begin frmSKCR:= TfrmSKCR.Create(application.MainForm); with frmSKCR do begin caption:=Trim(Title); fSYRName:=trim(Parameters5); fDParameters1:=trim(DParameters4); fDParameters3:=trim(DParameters3); fstr2:=trim(Parameters6); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmSKCR.BringToFront; //¾ä±ú mNewHandle:=frmSKCR.Handle; end ; } 5: begin bFound := FALSE; for i := (App.MainForm.MDIChildCount - 1) downto 0 do begin if App.MainForm.MDIChildren[i].Caption = '´ó»õÊÕ¿îµÇ¼Ç' then begin BringWindowToTop(frmSKCR.Handle); bFound := TRUE; Break; end; end; if not bFound then begin frmSKCR := TfrmSKCR.Create(application.MainForm); with frmSKCR do begin Title := '´ó»õÊÕ¿îµÇ¼Ç'; fSYRName:=trim(Parameters5); fDParameters1:=trim(DParameters4); fDParameters3:=trim(DParameters3); fstr2:=trim(Parameters6); caption := Trim(Title); FormStyle := mstyle; windowState := mstate; BorderStyle := mborderstyle; //show; end; end else frmSKCR.BringToFront; //¾ä±ú mnewHandle := frmSKCR.Handle; end; 51: begin bFound := FALSE; for i := (App.MainForm.MDIChildCount - 1) downto 0 do begin if App.MainForm.MDIChildren[i].Caption = 'ÑùÆ·ÊÕ¿îµÇ¼Ç' then begin BringWindowToTop(frmSKCRYP.Handle); bFound := TRUE; Break; end; end; if not bFound then begin frmSKCRYP:=TfrmSKCR.Create(application.MainForm); with frmSKCRYP do begin Title := 'ÑùÆ·ÊÕ¿îµÇ¼Ç'; fSYRName:=trim(Parameters5); fDParameters1:=trim(DParameters4); fDParameters3:=trim(DParameters3); fstr2:=trim(Parameters6); caption := Trim(Title); FormStyle := mstyle; windowState := mstate; BorderStyle := mborderstyle; //show; end; end else frmSKCRYP.BringToFront; //¾ä±ú mnewHandle := frmSKCRYP.Handle; end; 54: //ÊÕ¿îµÇ¼Ç(¹ã¶«) begin if frmSKCR_Gd=nil then begin frmSKCR_Gd:= TfrmSKCR_Gd.Create(application.MainForm); with frmSKCR_Gd do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmSKCR_Gd.BringToFront; //¾ä±ú mNewHandle:=frmSKCR_Gd.Handle; end ; 6: //Ó¦ÊÕ¿îÊÕ¿îͳ¼Æ begin if frmYSSKList=nil then begin frmYSSKList:= TfrmYSSKList.Create(application.MainForm); with frmYSSKList do begin caption:=Trim(Title); fDParameters1:=trim(DParameters1); fsyrName:=trim(Parameters5); fstr2:=trim(Parameters6); fDParameters3:=trim(DParameters3); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSSKList.BringToFront; //¾ä±ú mNewHandle:=frmYSSKList.Handle; end ; 61: //Ó¦ÊÕ¿îÊÕ¿îͳ¼Æ begin if frmYSZDList_MX=nil then begin frmYSZDList_MX:= TfrmYSZDList_MX.Create(application.MainForm); with frmYSZDList_MX do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSZDList_MX.BringToFront; //¾ä±ú mNewHandle:=frmYSZDList_MX.Handle; end ; 7: //Ó¦ÊÕ¿îÊÕ¿îͳ¼Æ begin IF frmFYDJ<>nil then frmFYDJ.Free; if frmFYDJ=nil then begin frmFYDJ:= TfrmFYDJ.Create(application.MainForm); with frmFYDJ do begin caption:=Trim(Title); fflag:=strtointdef(trim(Parameters4),0); fSYRName:=trim(Parameters5); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmFYDJ.BringToFront; //¾ä±ú mNewHandle:=frmFYDJ.Handle; end ; 71: //Ó¦ÊÕ¿îÊÕ¿îͳ¼Æ begin IF frmFYDJ_TJ<>nil then frmFYDJ_TJ.Free; if frmFYDJ_TJ=nil then begin frmFYDJ_TJ:= TfrmFYDJ_TJ.Create(application.MainForm); with frmFYDJ_TJ do begin caption:=Trim(Title); fSYRName:=trim(Parameters5); fflag:=strtointdef(trim(Parameters4),0); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmFYDJ_TJ.BringToFront; //¾ä±ú mNewHandle:=frmFYDJ_TJ.Handle; end ; 8: //½øÏƱµÇ¼Ç begin if frmYFFP=nil then begin frmYFFP:= TfrmYFFP.Create(application.MainForm); with frmYFFP do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYFFP.BringToFront; //¾ä±ú mNewHandle:=frmYFFP.Handle; end; 9: //ÏúÏƱµÇ¼Ç begin if frmYSFP=nil then begin frmYSFP:= TfrmYSFP.Create(application.MainForm); with frmYSFP do begin caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSFP.BringToFront; //¾ä±ú mNewHandle:=frmYSFP.Handle; end; 10: //ÒøÐÐÁ÷Ë® begin if frmMoney_LL=nil then begin frmMoney_LL:= TfrmMoney_LL.Create(application.MainForm); with frmMoney_LL do begin fSYRName:=trim(Parameters5); caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmMoney_LL.BringToFront; //¾ä±ú mNewHandle:=frmMoney_LL.Handle; end; 101: //ÒøÐлã×Ü begin if frmYF_Money_LL_list=nil then begin frmYF_Money_LL_list:= TfrmYF_Money_LL_list.Create(application.MainForm); with frmYF_Money_LL_list do begin fSYRName:=trim(Parameters5); caption:=Trim(Title); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYF_Money_LL_list.BringToFront; //¾ä±ú mNewHandle:=frmYF_Money_LL_list.Handle; end; 20: //Ó¦ÊÕÕË¿îÃ÷ϸOLJ begin if frmYFMXlist=nil then begin frmYFMXlist:= TfrmYFMXlist.Create(application.MainForm); with frmYFMXlist do begin caption:=Trim(Title); fType:=trim(DataBase); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYFMXlist.BringToFront; //¾ä±ú mNewHandle:=frmYFMXlist.Handle; end; 201: //Ó¦ÊÕÕË¿îÃ÷ϸOLJ begin if frmYSMXlist=nil then begin frmYSMXlist:= TfrmYSMXlist.Create(application.MainForm); with frmYSMXlist do begin caption:=Trim(Title); // fType:=trim(DataBase); fDParameters1:=trim(DParameters1); fsyrName:=trim(Parameters5); fDParameters3:=trim(DParameters3); fstr2:=trim(Parameters6); FormStyle := mstyle ; windowState := mstate ; BorderStyle := mborderstyle; //show; end; end else frmYSMXlist.BringToFront; //¾ä±ú mNewHandle:=frmYSMXlist.Handle; end; end ; // end case Result:= mnewHandle; // NewDllApp:=Application ; end; //=========================================================== //½¨Á¢Êý¾Ý¿âÁ¬½Ó³Ø //=========================================================== function ConnData():Boolean; begin if not Assigned(DataLink_YSYF) then DataLink_YSYF:=TDataLink_YSYF.Create(Application); Try with DataLink_YSYF.ADOLink do begin //if not Connected then begin Connected:=false; ConnectionString:=DConString; LoginPrompt:=false; Connected:=true; end; end; Result:=true; Except Result:=false; application.MessageBox('Êý¾Ý¿âÁ¬½Óʧ°Ü£¡','´íÎó',mb_Ok+ MB_ICONERROR); end; end; initialization CoInitialize(nil); dxUnitsLoader.Initialize; finalization DataLink_YSYF.Free; application:=NewDllApp; dxUnitsLoader.Finalize; end.