ufrmMain.pas 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. unit ufrmMain;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, StdCtrls, mybean.tools.beanFactory, mybean.core.intf, uIPluginForm, IniFiles, uIFormShow;
  6. type
  7. TfrmMain = class(TForm)
  8. btnShowModal: TButton;
  9. edtBeanID: TEdit;
  10. Label1: TLabel;
  11. btnShow: TButton;
  12. Memo1: TMemo;
  13. btnGetBeanInfos: TButton;
  14. procedure btnGetBeanInfosClick(Sender: TObject);
  15. procedure FormCreate(Sender: TObject);
  16. procedure btnShowClick(Sender: TObject);
  17. procedure btnShowModalClick(Sender: TObject);
  18. procedure FormClose(Sender: TObject; var Action: TCloseAction);
  19. private
  20. { Private declarations }
  21. public
  22. { Public declarations }
  23. end;
  24. var
  25. frmMain: TfrmMain;
  26. implementation
  27. {$R *.dfm}
  28. procedure TfrmMain.btnGetBeanInfosClick(Sender: TObject);
  29. var
  30. lvBuf: array[1..4096] of AnsiChar;
  31. s :String;
  32. l:Integer;
  33. begin
  34. FillChar(lvBuf[1], 4096, 0);
  35. l := (TMyBeanFactoryTools.applicationContext as IApplicationContextEx3).GetBeanInfos(PAnsiChar(@lvBuf[1]), 4096);
  36. s := UTF8Decode(StrPas(PAnsiChar(@lvBuf[1])));
  37. Memo1.Clear;
  38. Memo1.Lines.Add(s);
  39. end;
  40. procedure TfrmMain.FormCreate(Sender: TObject);
  41. var
  42. lvINiFile:TIniFile;
  43. begin
  44. lvINiFile := TIniFile.Create(ChangeFileExt(ParamStr(0), '.history.ini'));
  45. try
  46. edtBeanID.Text := lvINiFile.ReadString('main', 'lastPluginID', '');
  47. finally
  48. lvINiFile.Free;
  49. end;
  50. end;
  51. procedure TfrmMain.btnShowClick(Sender: TObject);
  52. var
  53. lvBean:IInterface;
  54. lvShow:IShowAsNormal;
  55. begin
  56. lvBean := TMyBeanFactoryTools.getBean(edtBeanID.Text);
  57. if lvBean.QueryInterface(IShowAsNormal, lvShow) = S_OK then
  58. begin
  59. lvShow.showAsNormal;
  60. end else
  61. begin
  62. (lvBean as IPluginForm).showAsModal;
  63. end;
  64. end;
  65. procedure TfrmMain.btnShowModalClick(Sender: TObject);
  66. var
  67. lvBean:IInterface;
  68. lvShow:IShowAsModal;
  69. begin
  70. lvBean := TMyBeanFactoryTools.getBean(edtBeanID.Text);
  71. if lvBean.QueryInterface(IShowAsModal, lvShow) = S_OK then
  72. begin
  73. lvShow.showAsModal;
  74. end else
  75. begin
  76. (lvBean as IPluginForm).showAsModal;
  77. end;
  78. end;
  79. procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
  80. var
  81. lvINiFile:TIniFile;
  82. begin
  83. lvINiFile := TIniFile.Create(ChangeFileExt(ParamStr(0), '.history.ini'));
  84. try
  85. lvINiFile.WriteString('main', 'lastPluginID', edtBeanID.Text);
  86. finally
  87. lvINiFile.Free;
  88. end;
  89. end;
  90. end.