uMainFormTools.pas 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. unit uMainFormTools;
  2. interface
  3. uses
  4. SysUtils, uIPluginForm;
  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. uICaption;
  20. class procedure TMainFormTools.closePlugin(const pvPlugin: IInterface);
  21. var
  22. lvForm:IPluginForm;
  23. begin
  24. if pvPlugin.QueryInterface(IPluginForm, lvForm) = S_OK then
  25. begin
  26. lvForm.closeForm;
  27. end;
  28. end;
  29. class function TMainFormTools.getInstanceID(const pvPlugin: IInterface): String;
  30. var
  31. lvForm:IPluginForm;
  32. begin
  33. if pvPlugin.QueryInterface(IPluginForm, lvForm) = S_OK then
  34. begin
  35. Result := lvForm.getInstanceID;
  36. end;
  37. end;
  38. class procedure TMainFormTools.showAsMDI(const pvPlugin: IInterface);
  39. var
  40. lvForm:IPluginForm;
  41. begin
  42. if pvPlugin.QueryInterface(IPluginForm, lvForm) = S_OK then
  43. begin
  44. lvForm.showAsMDI;
  45. end;
  46. end;
  47. class procedure TMainFormTools.showAsNormal(const pvPlugin: IInterface);
  48. var
  49. lvForm:IPluginForm;
  50. begin
  51. if pvPlugin.QueryInterface(IPluginForm, lvForm) = S_OK then
  52. begin
  53. lvForm.showAsNormal;
  54. end;
  55. end;
  56. class procedure TMainFormTools.freePlugin(const pvPlugin: IInterface);
  57. var
  58. lvForm:IPluginForm;
  59. begin
  60. if pvPlugin.QueryInterface(IPluginForm, lvForm) = S_OK then
  61. begin
  62. lvForm.freeObject;
  63. end;
  64. end;
  65. class function TMainFormTools.getPluginCaption(const pvPlugin: IInterface):
  66. String;
  67. var
  68. //lvForm:IPluginForm;
  69. lvForm:ICaptionManager;
  70. begin
  71. if pvPlugin.QueryInterface(ICaptionManager, lvForm) = S_OK then
  72. begin
  73. Result := String(AnsiString(lvForm.getCaption));
  74. end;
  75. // if pvPlugin.QueryInterface(IPluginForm, lvForm) = S_OK then
  76. // begin
  77. // Result := TForm(lvForm.getObject).Caption;
  78. // end;
  79. end;
  80. end.