uMainFormTools.pas 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. unit uMainFormTools;
  2. interface
  3. uses
  4. SysUtils, uIPluginForm, uIFormShow;
  5. type
  6. TMainFormTools = class(TObject)
  7. public
  8. class procedure closePlugin(const pvPlugin: IInterface);
  9. class procedure freePlugin(const pvPlugin: IInterface);
  10. class function getPluginCaption(const pvPlugin: IInterface): String;
  11. class function getInstanceID(const pvPlugin: IInterface): String;
  12. class procedure showAsMDI(const pvPlugin: IInterface);
  13. class procedure showAsNormal(const pvPlugin: IInterface);
  14. end;
  15. implementation
  16. uses
  17. Windows,
  18. Forms;
  19. class procedure TMainFormTools.closePlugin(const pvPlugin: IInterface);
  20. var
  21. lvForm:IPluginForm;
  22. begin
  23. if pvPlugin.QueryInterface(IPluginForm, lvForm) = S_OK then
  24. begin
  25. lvForm.closeForm;
  26. end;
  27. end;
  28. class function TMainFormTools.getInstanceID(const pvPlugin: IInterface): String;
  29. var
  30. lvForm:IPluginForm;
  31. begin
  32. if pvPlugin.QueryInterface(IPluginForm, lvForm) = S_OK then
  33. begin
  34. Result := lvForm.getInstanceID;
  35. end;
  36. end;
  37. class procedure TMainFormTools.showAsMDI(const pvPlugin: IInterface);
  38. var
  39. lvForm:IPluginForm;
  40. lvShow: IShowAsMDI;
  41. begin
  42. if pvPlugin.QueryInterface(IShowAsMDI, lvShow) = S_OK then
  43. begin
  44. lvShow.showAsMDI;
  45. end else if pvPlugin.QueryInterface(IPluginForm, lvForm) = S_OK then
  46. begin
  47. lvForm.showAsMDI;
  48. end;
  49. end;
  50. class procedure TMainFormTools.showAsNormal(const pvPlugin: IInterface);
  51. var
  52. lvForm:IPluginForm;
  53. begin
  54. if pvPlugin.QueryInterface(IPluginForm, lvForm) = S_OK then
  55. begin
  56. lvForm.showAsNormal;
  57. end;
  58. end;
  59. class procedure TMainFormTools.freePlugin(const pvPlugin: IInterface);
  60. var
  61. lvForm:IPluginForm;
  62. begin
  63. if pvPlugin.QueryInterface(IPluginForm, lvForm) = S_OK then
  64. begin
  65. lvForm.freeObject;
  66. end;
  67. end;
  68. class function TMainFormTools.getPluginCaption(const pvPlugin: IInterface):
  69. String;
  70. var
  71. lvForm:IPluginForm;
  72. begin
  73. if pvPlugin.QueryInterface(IPluginForm, lvForm) = S_OK then
  74. begin
  75. Result := TForm(lvForm.getObject).Caption;
  76. end;
  77. end;
  78. end.