main.pas 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. unit main;
  2. interface
  3. uses
  4. System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  5. FMX.Types, FMX.Controls, FMX.Forms, ceflib, FMX.Edit, ceffmx;
  6. type
  7. TMainForm = class(TForm)
  8. crm: TChromiumFMX;
  9. btPrev: TButton;
  10. btNext: TButton;
  11. btHome: TButton;
  12. btReload: TButton;
  13. btLaunch: TButton;
  14. edAddress: TEdit;
  15. procedure FormCreate(Sender: TObject);
  16. procedure btLaunchClick(Sender: TObject);
  17. procedure btHomeClick(Sender: TObject);
  18. procedure btNextClick(Sender: TObject);
  19. procedure btPrevClick(Sender: TObject);
  20. procedure btReloadClick(Sender: TObject);
  21. procedure crmAddressChange(Sender: TObject; const browser: ICefBrowser;
  22. const frame: ICefFrame; const url: ustring);
  23. procedure crmLoadStart(Sender: TObject; const browser: ICefBrowser;
  24. const frame: ICefFrame);
  25. procedure crmLoadEnd(Sender: TObject; const browser: ICefBrowser;
  26. const frame: ICefFrame; httpStatusCode: Integer);
  27. procedure crmTitleChange(Sender: TObject; const browser: ICefBrowser;
  28. const title: ustring);
  29. procedure edAddressKeyDown(Sender: TObject; var Key: Word;
  30. var KeyChar: Char; Shift: TShiftState);
  31. private
  32. FLoading: Boolean;
  33. public
  34. end;
  35. var
  36. MainForm: TMainForm;
  37. implementation
  38. {$R *.fmx}
  39. procedure TMainForm.btHomeClick(Sender: TObject);
  40. begin
  41. if crm.Browser <> nil then
  42. crm.Browser.MainFrame.LoadUrl(crm.DefaultUrl);
  43. end;
  44. procedure TMainForm.btLaunchClick(Sender: TObject);
  45. begin
  46. if crm.Browser <> nil then
  47. crm.Browser.MainFrame.LoadUrl(edAddress.Text);
  48. end;
  49. procedure TMainForm.btNextClick(Sender: TObject);
  50. begin
  51. if crm.Browser <> nil then
  52. crm.Browser.GoForward;
  53. end;
  54. procedure TMainForm.btPrevClick(Sender: TObject);
  55. begin
  56. if crm.Browser <> nil then
  57. crm.Browser.GoBack;
  58. end;
  59. procedure TMainForm.btReloadClick(Sender: TObject);
  60. begin
  61. if crm.Browser <> nil then
  62. if FLoading then
  63. crm.Browser.StopLoad else
  64. crm.Browser.Reload;
  65. end;
  66. procedure TMainForm.crmAddressChange(Sender: TObject; const browser: ICefBrowser;
  67. const frame: ICefFrame; const url: ustring);
  68. begin
  69. if ((frame = nil) or (frame.IsMain)) then
  70. edAddress.Text := url;
  71. end;
  72. procedure TMainForm.crmLoadEnd(Sender: TObject; const browser: ICefBrowser;
  73. const frame: ICefFrame; httpStatusCode: Integer);
  74. begin
  75. if (browser <> nil) and ((frame = nil) or (frame.IsMain)) then
  76. begin
  77. btReload.Text := 'R';
  78. FLoading := False;
  79. end;
  80. end;
  81. procedure TMainForm.crmLoadStart(Sender: TObject; const browser: ICefBrowser;
  82. const frame: ICefFrame);
  83. begin
  84. if (browser <> nil) and ((frame = nil) or (frame.IsMain)) then
  85. begin
  86. btReload.Text := 'X';
  87. FLoading := True;
  88. end;
  89. end;
  90. procedure TMainForm.crmTitleChange(Sender: TObject; const browser: ICefBrowser;
  91. const title: ustring);
  92. begin
  93. Caption := title;
  94. end;
  95. procedure TMainForm.edAddressKeyDown(Sender: TObject; var Key: Word;
  96. var KeyChar: Char; Shift: TShiftState);
  97. begin
  98. if (Key = 13) and (crm.Browser <> nil) then
  99. crm.Browser.MainFrame.LoadUrl(edAddress.Text);
  100. end;
  101. procedure TMainForm.FormCreate(Sender: TObject);
  102. begin
  103. FLoading := False;
  104. end;
  105. end.