You've already forked CEF4Delphi
							
							
				mirror of
				https://github.com/salvadordf/CEF4Delphi.git
				synced 2025-10-30 23:07:52 +02:00 
			
		
		
		
	Improved demos
- Bug fix #33 : Drag and drop is now supported in OSR mode. - Improved keyboard handling in OSR mode. - MiniBrowser demo : The DOM visitor and the Javascript extensions now send customized results to the main form - Fixed some CEF3 variable definitions.
This commit is contained in:
		| @@ -58,14 +58,14 @@ begin | ||||
|   GlobalCEFApp := TCefApplication.Create; | ||||
|  | ||||
|   // In case you want to use custom directories for the CEF3 binaries, cache, cookies and user data. | ||||
|  | ||||
| { | ||||
|   GlobalCEFApp.FrameworkDirPath     := 'cef'; | ||||
|   GlobalCEFApp.ResourcesDirPath     := 'cef'; | ||||
|   GlobalCEFApp.LocalesDirPath       := 'cef\locales'; | ||||
|   GlobalCEFApp.cache                := 'cef\cache'; | ||||
|   GlobalCEFApp.cookies              := 'cef\cookies'; | ||||
|   GlobalCEFApp.UserDataPath         := 'cef\User Data'; | ||||
|  | ||||
| } | ||||
|  | ||||
|   if GlobalCEFApp.StartMainProcess then | ||||
|     begin | ||||
|   | ||||
| @@ -134,12 +134,27 @@ | ||||
|                         <Overwrite>true</Overwrite> | ||||
|                     </Platform> | ||||
|                 </DeployFile> | ||||
|                 <DeployClass Name="ProjectiOSDeviceResourceRules"> | ||||
|                 <DeployClass Name="DependencyModule"> | ||||
|                     <Platform Name="Win32"> | ||||
|                         <Operation>0</Operation> | ||||
|                         <Extensions>.dll;.bpl</Extensions> | ||||
|                     </Platform> | ||||
|                     <Platform Name="iOSDevice64"> | ||||
|                         <Operation>1</Operation> | ||||
|                         <Extensions>.dylib</Extensions> | ||||
|                     </Platform> | ||||
|                     <Platform Name="OSX32"> | ||||
|                         <RemoteDir>Contents\MacOS</RemoteDir> | ||||
|                         <Operation>1</Operation> | ||||
|                         <Extensions>.dylib</Extensions> | ||||
|                     </Platform> | ||||
|                     <Platform Name="iOSDevice32"> | ||||
|                         <Operation>1</Operation> | ||||
|                         <Extensions>.dylib</Extensions> | ||||
|                     </Platform> | ||||
|                     <Platform Name="iOSSimulator"> | ||||
|                         <Operation>1</Operation> | ||||
|                         <Extensions>.dylib</Extensions> | ||||
|                     </Platform> | ||||
|                 </DeployClass> | ||||
|                 <DeployClass Name="ProjectOSXResource"> | ||||
| @@ -493,27 +508,12 @@ | ||||
|                         <Operation>1</Operation> | ||||
|                     </Platform> | ||||
|                 </DeployClass> | ||||
|                 <DeployClass Name="DependencyModule"> | ||||
|                     <Platform Name="Win32"> | ||||
|                         <Operation>0</Operation> | ||||
|                         <Extensions>.dll;.bpl</Extensions> | ||||
|                     </Platform> | ||||
|                 <DeployClass Name="ProjectiOSDeviceResourceRules"> | ||||
|                     <Platform Name="iOSDevice64"> | ||||
|                         <Operation>1</Operation> | ||||
|                         <Extensions>.dylib</Extensions> | ||||
|                     </Platform> | ||||
|                     <Platform Name="OSX32"> | ||||
|                         <RemoteDir>Contents\MacOS</RemoteDir> | ||||
|                         <Operation>1</Operation> | ||||
|                         <Extensions>.dylib</Extensions> | ||||
|                     </Platform> | ||||
|                     <Platform Name="iOSDevice32"> | ||||
|                         <Operation>1</Operation> | ||||
|                         <Extensions>.dylib</Extensions> | ||||
|                     </Platform> | ||||
|                     <Platform Name="iOSSimulator"> | ||||
|                         <Operation>1</Operation> | ||||
|                         <Extensions>.dylib</Extensions> | ||||
|                     </Platform> | ||||
|                 </DeployClass> | ||||
|                 <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/> | ||||
|   | ||||
| @@ -2,9 +2,9 @@ | ||||
| <BorlandProject> | ||||
| 	<Transactions> | ||||
|     <Transaction>2017/07/01 10:31:40.000.157,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/07/01 10:33:03.000.262,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uMainForm.pas</Transaction> | ||||
|     <Transaction>2017/07/01 10:33:03.000.262,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uMainForm.dfm</Transaction> | ||||
|     <Transaction>2017/07/01 10:33:13.000.749,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\CRBrowser.dproj</Transaction> | ||||
|     <Transaction>2017/07/01 10:33:03.000.262,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uMainForm.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/07/01 10:33:03.000.262,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uMainForm.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm</Transaction> | ||||
|     <Transaction>2017/07/01 10:33:13.000.749,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\CRBrowser.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj</Transaction> | ||||
|     <Transaction>2017/07/01 10:54:08.000.543,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uCustomResourceHandler.pas</Transaction> | ||||
|   </Transactions> | ||||
| </BorlandProject> | ||||
|   | ||||
| @@ -1,46 +1,32 @@ | ||||
| [Closed Files] | ||||
| File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,710,103,739,0,0,, | ||||
| File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumWindow.pas',0,1,29,31,76,0,0,, | ||||
| File_2=TSourceModule,'c:\program files\embarcadero\studio\17.0\source\rtl\common\System.Classes.pas',0,1,46,18,75,0,0,, | ||||
| File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFResourceHandler.pas',0,1,34,1,38,0,0,, | ||||
| File_4=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumEvents.pas',0,3,68,3,97,0,0,, | ||||
| File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleBrowser\uSimpleBrowser.pas',0,1,1,1,1,0,0,, | ||||
| File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uHelloScheme.pas',0,1,97,28,54,0,0,, | ||||
| File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas',0,1,67,21,84,0,0,, | ||||
| File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uTestExtension.pas',0,1,28,1,1,0,0,, | ||||
| File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,738,28,775,0,0,, | ||||
| File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uMainForm.pas',0,1,10,72,115,0,0,, | ||||
| File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uCustomResourceHandler.pas',0,1,87,56,139,0,0,, | ||||
| File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,710,103,739,0,0,, | ||||
| File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumWindow.pas',0,1,29,31,76,0,0,, | ||||
| File_4=TSourceModule,'c:\program files\embarcadero\studio\17.0\source\rtl\common\System.Classes.pas',0,1,46,18,75,0,0,, | ||||
| File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFResourceHandler.pas',0,1,34,1,38,0,0,, | ||||
| File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumEvents.pas',0,3,68,3,97,0,0,, | ||||
| File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleBrowser\uSimpleBrowser.pas',0,1,1,1,1,0,0,, | ||||
| File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uHelloScheme.pas',0,1,97,28,54,0,0,, | ||||
| File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas',0,1,67,21,84,0,0,, | ||||
|  | ||||
| [Modules] | ||||
| Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uCustomResourceHandler.pas | ||||
| Module1=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\CRBrowser.dproj | ||||
| Module2=default.htm | ||||
| Module3=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uMainForm.pas | ||||
| Count=4 | ||||
| Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\CRBrowser.dproj | ||||
| Module1=default.htm | ||||
| Count=2 | ||||
| EditWindowCount=1 | ||||
|  | ||||
| [C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uCustomResourceHandler.pas] | ||||
| ModuleType=TSourceModule | ||||
| FormState=0 | ||||
| FormOnTop=0 | ||||
|  | ||||
| [C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\CRBrowser.dproj] | ||||
| ModuleType=TBaseProject | ||||
|  | ||||
| [default.htm] | ||||
| ModuleType=TURLModule | ||||
|  | ||||
| [C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uMainForm.pas] | ||||
| ModuleType=TSourceModule | ||||
| FormState=1 | ||||
| FormOnTop=0 | ||||
|  | ||||
| [EditWindow0] | ||||
| ViewCount=4 | ||||
| CurrentEditView=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uCustomResourceHandler.pas | ||||
| ViewCount=2 | ||||
| CurrentEditView=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\CRBrowser.dpr | ||||
| View0=0 | ||||
| View1=1 | ||||
| View2=2 | ||||
| View3=3 | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=1 | ||||
| @@ -59,15 +45,16 @@ BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0 | ||||
| TopPanelSize=0 | ||||
| LeftPanelSize=0 | ||||
| RightPanelSize=2000 | ||||
| RightPanelClients=DockSite2,DockSite4 | ||||
| RightPanelData=00000800010100000000AA1900000000000001D00700000000000001000000004312000009000000446F636B53697465320100000000A123000009000000446F636B5369746534FFFFFFFF | ||||
| RightPanelClients=DockSite2 | ||||
| RightPanelData=00000800010100000000AA1900000000000001D0070000000000000100000000A123000009000000446F636B5369746532FFFFFFFF | ||||
| BottomPanelSize=0 | ||||
| BottomPanelClients=DockSite1,MessageView | ||||
| BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D3B3600000000000002C305000000000000FFFFFFFF | ||||
| BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D3B3600000000000002820F000000000000FFFFFFFF | ||||
| BottomMiddlePanelSize=0 | ||||
| BottomMiddlePanelClients=DockSite0,GraphDrawingModel | ||||
| BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF | ||||
| TabDockLeftClients=PropertyInspector=0,DockSite3=1 | ||||
| TabDockLeftClients=DockSite3=0,PropertyInspector=1 | ||||
| TabDockRightClients=DockSite4=0 | ||||
|  | ||||
| [View0] | ||||
| CustomEditViewType=TWelcomePageView | ||||
| @@ -77,35 +64,13 @@ WelcomePageURL=bds:/default.htm | ||||
| CustomEditViewType=TEditView | ||||
| Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\CRBrowser.dpr | ||||
| CursorX=1 | ||||
| CursorY=68 | ||||
| CursorY=61 | ||||
| TopLine=31 | ||||
| LeftCol=1 | ||||
| Elisions= | ||||
| Bookmarks= | ||||
| EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\CRBrowser.dpr | ||||
|  | ||||
| [View2] | ||||
| CustomEditViewType=TEditView | ||||
| Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uMainForm.pas | ||||
| CursorX=72 | ||||
| CursorY=115 | ||||
| TopLine=10 | ||||
| LeftCol=1 | ||||
| Elisions= | ||||
| Bookmarks= | ||||
| EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uMainForm.pas | ||||
|  | ||||
| [View3] | ||||
| CustomEditViewType=TEditView | ||||
| Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uCustomResourceHandler.pas | ||||
| CursorX=56 | ||||
| CursorY=139 | ||||
| TopLine=87 | ||||
| LeftCol=1 | ||||
| Elisions= | ||||
| Bookmarks= | ||||
| EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\CustomResourceBrowser\uCustomResourceHandler.pas | ||||
|  | ||||
| [Watches] | ||||
| Count=0 | ||||
|  | ||||
| @@ -120,11 +85,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=13602 | ||||
| Dockable=1 | ||||
| @@ -168,11 +133,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=4226 | ||||
| Height=8868 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4226 | ||||
| ClientHeight=8868 | ||||
| TBDockHeight=5897 | ||||
| LRDockWidth=2352 | ||||
| Dockable=1 | ||||
| @@ -187,12 +152,12 @@ State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=2773 | ||||
| Height=1267 | ||||
| Height=3845 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2773 | ||||
| ClientHeight=1267 | ||||
| TBDockHeight=1267 | ||||
| ClientHeight=3845 | ||||
| TBDockHeight=3845 | ||||
| LRDockWidth=2773 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -205,12 +170,12 @@ Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=4339 | ||||
| Width=1875 | ||||
| Height=6693 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4339 | ||||
| ClientWidth=1875 | ||||
| ClientHeight=6693 | ||||
| TBDockHeight=7152 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| @@ -323,13 +288,13 @@ Width=1898 | ||||
| Height=7164 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=7164 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=7164 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| SplitPos=111 | ||||
| SplitPos=136 | ||||
|  | ||||
| [frmDesignPreview] | ||||
| PercentageSizes=1 | ||||
| @@ -375,8 +340,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-1152 | ||||
| Top=243 | ||||
| Left=-8 | ||||
| Top=287 | ||||
| Width=273 | ||||
| Height=359 | ||||
| MaxLeft=-1 | ||||
| @@ -400,11 +365,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=415 | ||||
| LRDockWidth=4953 | ||||
| Dockable=1 | ||||
| @@ -419,11 +384,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=7406 | ||||
| Dockable=1 | ||||
| @@ -442,11 +407,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1536 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -461,11 +426,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=2063 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -583,11 +548,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1547 | ||||
| LRDockWidth=8742 | ||||
| Dockable=1 | ||||
| @@ -695,12 +660,12 @@ State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=3820 | ||||
| Height=1424 | ||||
| Height=874 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1424 | ||||
| TBDockHeight=1424 | ||||
| ClientHeight=874 | ||||
| TBDockHeight=874 | ||||
| LRDockWidth=3820 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -719,11 +684,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=2000 | ||||
| Height=4529 | ||||
| Height=9170 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4529 | ||||
| ClientHeight=9170 | ||||
| TBDockHeight=7119 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| @@ -757,21 +722,21 @@ ActiveTabID=StructureView | ||||
| TabDockClients=StructureView,ClassBrowserTool | ||||
|  | ||||
| [DockSite4] | ||||
| HostDockSite=DockRightPanel | ||||
| HostDockSite=RightTabDock | ||||
| DockSiteType=1 | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=454 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=4339 | ||||
| Height=7119 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4339 | ||||
| ClientWidth=1875 | ||||
| ClientHeight=6693 | ||||
| TBDockHeight=7119 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| [Stats] | ||||
| EditorSecs=425 | ||||
| EditorSecs=443 | ||||
| DesignerSecs=9 | ||||
| InspectorSecs=14 | ||||
| CompileSecs=40629 | ||||
|   | ||||
| @@ -2,11 +2,11 @@ | ||||
| <BorlandProject> | ||||
| 	<Transactions> | ||||
|     <Transaction>2017/05/21 18:54:00.000.243,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/05/21 18:54:33.000.390,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\uMainForm.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm</Transaction> | ||||
|     <Transaction>2017/05/21 18:54:33.000.390,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\uMainForm.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/05/21 18:54:43.000.194,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\FullScreenBrowser\Project1.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj</Transaction> | ||||
|     <Transaction>2017/05/21 18:54:50.000.736,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\FullScreenBrowser\uMainForm.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\uMainForm.pas</Transaction> | ||||
|     <Transaction>2017/05/21 18:54:50.000.736,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\FullScreenBrowser\uMainForm.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\uMainForm.dfm</Transaction> | ||||
|     <Transaction>2017/05/21 19:04:55.000.900,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\FullScreenBrowser\FullScreenBrowser.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\FullScreenBrowser\Project1.dproj</Transaction> | ||||
|     <Transaction>2017/05/21 18:54:33.000.390,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\uMainForm.pas</Transaction> | ||||
|     <Transaction>2017/05/21 18:54:33.000.390,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\uMainForm.dfm</Transaction> | ||||
|     <Transaction>2017/05/21 18:54:43.000.194,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\FullScreenBrowser\Project1.dproj</Transaction> | ||||
|     <Transaction>2017/05/21 18:54:50.000.736,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\uMainForm.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\FullScreenBrowser\uMainForm.dfm</Transaction> | ||||
|     <Transaction>2017/05/21 18:54:50.000.736,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\uMainForm.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\FullScreenBrowser\uMainForm.pas</Transaction> | ||||
|     <Transaction>2017/05/21 19:04:55.000.900,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\FullScreenBrowser\Project1.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\FullScreenBrowser\FullScreenBrowser.dproj</Transaction> | ||||
|   </Transactions> | ||||
| </BorlandProject> | ||||
|   | ||||
| @@ -52,15 +52,16 @@ BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0 | ||||
| TopPanelSize=0 | ||||
| LeftPanelSize=0 | ||||
| RightPanelSize=2000 | ||||
| RightPanelClients=DockSite2,DockSite4 | ||||
| RightPanelData=00000800010100000000551500000000000001D00700000000000001000000004312000009000000446F636B536974653201000000009D1D000009000000446F636B5369746534FFFFFFFF | ||||
| BottomPanelSize=1475 | ||||
| RightPanelClients=DockSite2 | ||||
| RightPanelData=00000800010100000000AA1900000000000001D0070000000000000100000000A123000009000000446F636B5369746532FFFFFFFF | ||||
| BottomPanelSize=0 | ||||
| BottomPanelClients=DockSite1,MessageView | ||||
| BottomPanelData=0000080001020100000009000000446F636B53697465313B3600000000000002C30500000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF | ||||
| BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D3B3600000000000002820F000000000000FFFFFFFF | ||||
| BottomMiddlePanelSize=0 | ||||
| BottomMiddlePanelClients=DockSite0,GraphDrawingModel | ||||
| BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF | ||||
| TabDockLeftClients=PropertyInspector=0,DockSite3=1 | ||||
| TabDockLeftClients=DockSite3=0,PropertyInspector=1 | ||||
| TabDockRightClients=DockSite4=0 | ||||
|  | ||||
| [View0] | ||||
| CustomEditViewType=TWelcomePageView | ||||
| @@ -102,11 +103,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=13602 | ||||
| Dockable=1 | ||||
| @@ -150,11 +151,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=4226 | ||||
| Height=8868 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4226 | ||||
| ClientHeight=8868 | ||||
| TBDockHeight=5897 | ||||
| LRDockWidth=2352 | ||||
| Dockable=1 | ||||
| @@ -163,18 +164,18 @@ StayOnTop=0 | ||||
| [MessageView] | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=10000 | ||||
| Height=1267 | ||||
| Width=2773 | ||||
| Height=3845 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=10000 | ||||
| ClientHeight=1267 | ||||
| TBDockHeight=1267 | ||||
| ClientWidth=2773 | ||||
| ClientHeight=3845 | ||||
| TBDockHeight=3845 | ||||
| LRDockWidth=2773 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -187,12 +188,12 @@ Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=2747 | ||||
| Width=1875 | ||||
| Height=6693 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=2747 | ||||
| ClientWidth=1875 | ||||
| ClientHeight=6693 | ||||
| TBDockHeight=7152 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| @@ -242,8 +243,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-148 | ||||
| Top=-137 | ||||
| Left=-8 | ||||
| Top=-30 | ||||
| Width=1844 | ||||
| Height=3139 | ||||
| MaxLeft=-1 | ||||
| @@ -299,19 +300,19 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=362 | ||||
| Left=78 | ||||
| Top=386 | ||||
| Width=1898 | ||||
| Height=5370 | ||||
| Height=7164 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=5370 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=7164 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| SplitPos=111 | ||||
| SplitPos=136 | ||||
|  | ||||
| [frmDesignPreview] | ||||
| PercentageSizes=1 | ||||
| @@ -322,11 +323,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=5964 | ||||
| LRDockWidth=2508 | ||||
| Dockable=1 | ||||
| @@ -338,8 +339,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-898 | ||||
| Top=-137 | ||||
| Left=-946 | ||||
| Top=1 | ||||
| Width=2844 | ||||
| Height=6200 | ||||
| MaxLeft=-1 | ||||
| @@ -357,8 +358,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-1026 | ||||
| Top=-137 | ||||
| Left=-8 | ||||
| Top=287 | ||||
| Width=273 | ||||
| Height=359 | ||||
| MaxLeft=-1 | ||||
| @@ -382,11 +383,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=415 | ||||
| LRDockWidth=4953 | ||||
| Dockable=1 | ||||
| @@ -401,11 +402,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=7406 | ||||
| Dockable=1 | ||||
| @@ -424,11 +425,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1536 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -443,11 +444,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=2063 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -462,11 +463,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2336 | ||||
| Height=1177 | ||||
| Height=942 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2336 | ||||
| ClientHeight=1177 | ||||
| ClientHeight=942 | ||||
| TBDockHeight=2321 | ||||
| LRDockWidth=2820 | ||||
| Dockable=1 | ||||
| @@ -527,11 +528,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=4888 | ||||
| LRDockWidth=7148 | ||||
| Dockable=1 | ||||
| @@ -543,8 +544,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Left=249 | ||||
| Top=709 | ||||
| Width=2859 | ||||
| Height=3206 | ||||
| MaxLeft=-1 | ||||
| @@ -565,11 +566,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1547 | ||||
| LRDockWidth=8742 | ||||
| Dockable=1 | ||||
| @@ -590,12 +591,12 @@ Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=1898 | ||||
| Height=9170 | ||||
| Width=1773 | ||||
| Height=6738 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=9170 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=3677 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| @@ -610,11 +611,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=4888 | ||||
| LRDockWidth=5305 | ||||
| Dockable=1 | ||||
| @@ -675,14 +676,14 @@ Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Top=23 | ||||
| Width=3820 | ||||
| Height=1424 | ||||
| Height=874 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1424 | ||||
| TBDockHeight=1424 | ||||
| ClientHeight=874 | ||||
| TBDockHeight=874 | ||||
| LRDockWidth=3820 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -701,12 +702,12 @@ State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=2000 | ||||
| Height=4529 | ||||
| Height=9170 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4529 | ||||
| TBDockHeight=7164 | ||||
| ClientHeight=9170 | ||||
| TBDockHeight=7119 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -723,13 +724,13 @@ Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Top=0 | ||||
| Width=1898 | ||||
| Height=9170 | ||||
| Height=7164 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=9170 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=7164 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| @@ -739,22 +740,22 @@ ActiveTabID=StructureView | ||||
| TabDockClients=StructureView,ClassBrowserTool | ||||
|  | ||||
| [DockSite4] | ||||
| HostDockSite=DockRightPanel | ||||
| HostDockSite=RightTabDock | ||||
| DockSiteType=1 | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=454 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=2747 | ||||
| Height=7119 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=2747 | ||||
| TBDockHeight=7164 | ||||
| ClientWidth=1875 | ||||
| ClientHeight=6693 | ||||
| TBDockHeight=7119 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
|   | ||||
| @@ -3,7 +3,7 @@ EditorSecs=34 | ||||
| DesignerSecs=1 | ||||
| InspectorSecs=1 | ||||
| CompileSecs=1 | ||||
| OtherSecs=2 | ||||
| OtherSecs=3 | ||||
| StartTime=01/06/2017 10:25:13 | ||||
| RealKeys=0 | ||||
| EffectiveKeys=0 | ||||
|   | ||||
| @@ -42,10 +42,14 @@ program MiniBrowser; | ||||
|  | ||||
| uses | ||||
|   {$IFDEF DELPHI16_UP} | ||||
|   Vcl.Forms, WinApi.Windows, System.SysUtils, | ||||
|   Vcl.Forms, | ||||
|   WinApi.Windows, | ||||
|   System.SysUtils, | ||||
|   {$ELSE} | ||||
|   Forms, Windows, SysUtils, | ||||
|   {$ENDIF} | ||||
|   Forms, | ||||
|   Windows, | ||||
|   SysUtils, | ||||
|   {$ENDIF } | ||||
|   uCEFApplication, | ||||
|   uCEFMiscFunctions, | ||||
|   uCEFSchemeRegistrar, | ||||
| @@ -57,10 +61,12 @@ uses | ||||
|   uCEFConstants, | ||||
|   uCEFTypes, | ||||
|   uCEFTask, | ||||
|   uCEFProcessMessage, | ||||
|   uMiniBrowser in 'uMiniBrowser.pas' {MiniBrowserFrm}, | ||||
|   uTestExtension in 'uTestExtension.pas', | ||||
|   uHelloScheme in 'uHelloScheme.pas', | ||||
|   uPreferences in 'uPreferences.pas' {PreferencesFrm}; | ||||
|   uPreferences in 'uPreferences.pas' {PreferencesFrm}, | ||||
|   uSimpleTextViewer in 'uSimpleTextViewer.pas' {SimpleTextViewerFrm}; | ||||
|  | ||||
| {$R *.res} | ||||
|  | ||||
| @@ -121,7 +127,9 @@ begin | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| procedure DOMVisitor_OnDocAvailable(const document: ICefDomDocument); | ||||
| procedure DOMVisitor_OnDocAvailable(const browser: ICefBrowser; const document: ICefDomDocument); | ||||
| var | ||||
|   msg: ICefProcessMessage; | ||||
| begin | ||||
|   // This function is called from a different process. | ||||
|   // document is only valid inside this function. | ||||
| @@ -133,12 +141,19 @@ begin | ||||
|  | ||||
|   // Simple DOM searches | ||||
|   SimpleNodeSearch(document); | ||||
|  | ||||
|   // Sending back some custom results to the browser process | ||||
|   // Notice that the 'domvisitor' message name needs to be recognized in | ||||
|   // Chromium1ProcessMessageReceived | ||||
|   msg := TCefProcessMessageRef.New('domvisitor'); | ||||
|   msg.ArgumentList.SetString(0, 'document.Title : ' + document.Title); | ||||
|   browser.SendProcessMessage(PID_BROWSER, msg); | ||||
| end; | ||||
|  | ||||
| procedure ProcessHandler_OnCustomMessage(const browser: ICefBrowser; sourceProcess: TCefProcessId; const message: ICefProcessMessage); | ||||
| var | ||||
|   TempFrame : ICefFrame; | ||||
|   TempVisitor : TCefFastDomVisitor; | ||||
|   TempVisitor : TCefFastDomVisitor2; | ||||
| begin | ||||
|   if (browser <> nil) then | ||||
|     begin | ||||
| @@ -146,7 +161,7 @@ begin | ||||
|  | ||||
|       if (TempFrame <> nil) then | ||||
|         begin | ||||
|           TempVisitor := TCefFastDomVisitor.Create(DOMVisitor_OnDocAvailable); | ||||
|           TempVisitor := TCefFastDomVisitor2.Create(browser, DOMVisitor_OnDocAvailable); | ||||
|           TempFrame.VisitDom(TempVisitor); | ||||
|         end; | ||||
|     end; | ||||
| @@ -214,8 +229,9 @@ begin | ||||
|       Application.MainFormOnTaskbar := True; | ||||
|       {$ENDIF} | ||||
|       Application.CreateForm(TMiniBrowserFrm, MiniBrowserFrm); | ||||
|       Application.CreateForm(TPreferencesFrm, PreferencesFrm); | ||||
|       Application.Run; | ||||
|   Application.CreateForm(TPreferencesFrm, PreferencesFrm); | ||||
|   Application.CreateForm(TSimpleTextViewerFrm, SimpleTextViewerFrm); | ||||
|   Application.Run; | ||||
|     end; | ||||
|  | ||||
|   GlobalCEFApp.Free; | ||||
|   | ||||
| @@ -106,6 +106,10 @@ | ||||
|         <DCCReference Include="uPreferences.pas"> | ||||
|             <Form>PreferencesFrm</Form> | ||||
|         </DCCReference> | ||||
|         <DCCReference Include="uSimpleTextViewer.pas"> | ||||
|             <Form>SimpleTextViewerFrm</Form> | ||||
|             <FormType>dfm</FormType> | ||||
|         </DCCReference> | ||||
|         <BuildConfiguration Include="Release"> | ||||
|             <Key>Cfg_2</Key> | ||||
|             <CfgParent>Base</CfgParent> | ||||
|   | ||||
| @@ -2,16 +2,19 @@ | ||||
| <BorlandProject> | ||||
| 	<Transactions> | ||||
|     <Transaction>2017/02/11 10:15:32.000.980,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/02/11 10:16:27.000.174,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas</Transaction> | ||||
|     <Transaction>2017/02/11 10:16:27.000.174,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.dfm</Transaction> | ||||
|     <Transaction>2017/02/11 10:16:37.000.392,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dproj</Transaction> | ||||
|     <Transaction>2017/02/11 10:16:27.000.174,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm</Transaction> | ||||
|     <Transaction>2017/02/11 10:16:27.000.174,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/02/11 10:16:37.000.392,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj</Transaction> | ||||
|     <Transaction>2017/02/11 17:10:26.000.471,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/02/11 17:11:01.000.244,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uTestExtension.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/02/11 17:11:01.000.244,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uTestExtension.pas</Transaction> | ||||
|     <Transaction>2017/03/12 17:11:11.000.786,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uFileScheme.pas</Transaction> | ||||
|     <Transaction>2017/03/13 19:22:41.000.994,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uFileScheme.pas=</Transaction> | ||||
|     <Transaction>2017/03/13 19:23:05.000.371,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uHelloScheme.pas</Transaction> | ||||
|     <Transaction>2017/03/15 12:39:07.000.741,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/03/15 12:40:51.000.061,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/03/15 12:40:51.000.061,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.dfm</Transaction> | ||||
|     <Transaction>2017/03/15 12:40:51.000.061,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.dfm</Transaction> | ||||
|     <Transaction>2017/03/15 12:40:51.000.061,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.pas</Transaction> | ||||
|     <Transaction>2017/07/14 11:54:07.000.560,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/07/14 11:57:42.000.778,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uSimpleTextViewer.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/07/14 11:57:42.000.778,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uSimpleTextViewer.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.dfm</Transaction> | ||||
|   </Transactions> | ||||
| </BorlandProject> | ||||
|   | ||||
| @@ -1,32 +1,39 @@ | ||||
| [Closed Files] | ||||
| File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uHelloScheme.pas',0,1,97,28,54,0,0,, | ||||
| File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas',0,1,67,21,84,0,0,, | ||||
| File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,533,111,562,0,0,, | ||||
| File_3=TSourceModule,'c:\program files\embarcadero\studio\17.0\source\rtl\common\System.Classes.pas',0,1,866,3,766,0,0,, | ||||
| File_4=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uTestExtension.pas',0,1,28,1,1,0,0,, | ||||
| File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,738,28,775,0,0,, | ||||
| File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.pas',0,1,38,18,54,0,0,, | ||||
| File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,268,48,304,0,0,, | ||||
| File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDomNode.pas',0,1,34,1,1,0,0,, | ||||
| File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDomDocument.pas',0,1,25,1,1,0,0,, | ||||
| File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.pas',0,1,38,17,84,0,0,, | ||||
| File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uTestExtension.pas',0,1,49,33,81,0,0,, | ||||
| File_2=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\VCL\Vcl.Menus.pas',0,1,318,3,287,0,0,, | ||||
| File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uSimpleTextViewer.pas',0,1,1,23,1,0,0,, | ||||
| File_4=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,1142,14,1168,0,0,, | ||||
| File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas',0,1,488,5,496,0,0,, | ||||
| File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTypes.pas',0,1,34,59,37,0,0,, | ||||
| File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDomVisitor.pas',0,1,109,3,135,0,0,, | ||||
| File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFFrame.pas',0,1,204,31,234,0,0,, | ||||
| File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uHelloScheme.pas',0,1,97,28,54,0,0,, | ||||
|  | ||||
| [Modules] | ||||
| Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dproj | ||||
| Module1=default.htm | ||||
| Count=2 | ||||
| Module1=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas | ||||
| Module2=default.htm | ||||
| Count=3 | ||||
| EditWindowCount=1 | ||||
|  | ||||
| [C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dproj] | ||||
| ModuleType=TBaseProject | ||||
|  | ||||
| [C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas] | ||||
| ModuleType=TSourceModule | ||||
| FormState=1 | ||||
| FormOnTop=0 | ||||
|  | ||||
| [default.htm] | ||||
| ModuleType=TURLModule | ||||
|  | ||||
| [EditWindow0] | ||||
| ViewCount=2 | ||||
| ViewCount=3 | ||||
| CurrentEditView=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dpr | ||||
| View0=0 | ||||
| View1=1 | ||||
| View2=2 | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=1 | ||||
| @@ -45,15 +52,16 @@ BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0 | ||||
| TopPanelSize=0 | ||||
| LeftPanelSize=0 | ||||
| RightPanelSize=2000 | ||||
| RightPanelClients=DockSite2,DockSite4 | ||||
| RightPanelData=00000800010100000000551500000000000001D00700000000000001000000004312000009000000446F636B536974653201000000009D1D000009000000446F636B5369746534FFFFFFFF | ||||
| BottomPanelSize=1475 | ||||
| RightPanelClients=DockSite2 | ||||
| RightPanelData=00000800010100000000AA1900000000000001D0070000000000000100000000A123000009000000446F636B5369746532FFFFFFFF | ||||
| BottomPanelSize=0 | ||||
| BottomPanelClients=DockSite1,MessageView | ||||
| BottomPanelData=0000080001020100000009000000446F636B53697465313B3600000000000002C30500000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF | ||||
| BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D3B3600000000000002820F000000000000FFFFFFFF | ||||
| BottomMiddlePanelSize=0 | ||||
| BottomMiddlePanelClients=DockSite0,GraphDrawingModel | ||||
| BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF | ||||
| TabDockLeftClients=PropertyInspector=0,DockSite3=1 | ||||
| TabDockLeftClients=DockSite3=0,PropertyInspector=1 | ||||
| TabDockRightClients=DockSite4=0 | ||||
|  | ||||
| [View0] | ||||
| CustomEditViewType=TWelcomePageView | ||||
| @@ -62,14 +70,25 @@ WelcomePageURL=bds:/default.htm | ||||
| [View1] | ||||
| CustomEditViewType=TEditView | ||||
| Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dpr | ||||
| CursorX=19 | ||||
| CursorY=47 | ||||
| TopLine=24 | ||||
| CursorX=2 | ||||
| CursorY=205 | ||||
| TopLine=156 | ||||
| LeftCol=1 | ||||
| Elisions= | ||||
| Bookmarks= | ||||
| EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dpr | ||||
|  | ||||
| [View2] | ||||
| CustomEditViewType=TEditView | ||||
| Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas | ||||
| CursorX=23 | ||||
| CursorY=94 | ||||
| TopLine=76 | ||||
| LeftCol=1 | ||||
| Elisions= | ||||
| Bookmarks={1,476,42}{2,565,17}{3,303,29} | ||||
| EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas | ||||
|  | ||||
| [Watches] | ||||
| Count=0 | ||||
|  | ||||
| @@ -84,11 +103,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=13602 | ||||
| Dockable=1 | ||||
| @@ -132,11 +151,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=4226 | ||||
| Height=8868 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4226 | ||||
| ClientHeight=8868 | ||||
| TBDockHeight=5897 | ||||
| LRDockWidth=2352 | ||||
| Dockable=1 | ||||
| @@ -145,18 +164,18 @@ StayOnTop=0 | ||||
| [MessageView] | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=10000 | ||||
| Height=1267 | ||||
| Width=2773 | ||||
| Height=3845 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=10000 | ||||
| ClientHeight=1267 | ||||
| TBDockHeight=1267 | ||||
| ClientWidth=2773 | ||||
| ClientHeight=3845 | ||||
| TBDockHeight=3845 | ||||
| LRDockWidth=2773 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -169,12 +188,12 @@ Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=2747 | ||||
| Width=1875 | ||||
| Height=6693 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=2747 | ||||
| ClientWidth=1875 | ||||
| ClientHeight=6693 | ||||
| TBDockHeight=7152 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| @@ -224,8 +243,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-148 | ||||
| Top=-137 | ||||
| Left=-8 | ||||
| Top=-30 | ||||
| Width=1844 | ||||
| Height=3139 | ||||
| MaxLeft=-1 | ||||
| @@ -281,19 +300,19 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=362 | ||||
| Left=78 | ||||
| Top=386 | ||||
| Width=1898 | ||||
| Height=5370 | ||||
| Height=7164 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=5370 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=7164 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| SplitPos=111 | ||||
| SplitPos=136 | ||||
|  | ||||
| [frmDesignPreview] | ||||
| PercentageSizes=1 | ||||
| @@ -304,11 +323,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=5964 | ||||
| LRDockWidth=2508 | ||||
| Dockable=1 | ||||
| @@ -320,8 +339,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-898 | ||||
| Top=-137 | ||||
| Left=-946 | ||||
| Top=1 | ||||
| Width=2844 | ||||
| Height=6200 | ||||
| MaxLeft=-1 | ||||
| @@ -339,8 +358,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-1026 | ||||
| Top=-137 | ||||
| Left=-8 | ||||
| Top=287 | ||||
| Width=273 | ||||
| Height=359 | ||||
| MaxLeft=-1 | ||||
| @@ -364,11 +383,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=415 | ||||
| LRDockWidth=4953 | ||||
| Dockable=1 | ||||
| @@ -383,11 +402,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=7406 | ||||
| Dockable=1 | ||||
| @@ -406,11 +425,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1536 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -425,11 +444,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=2063 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -444,11 +463,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2336 | ||||
| Height=1177 | ||||
| Height=942 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2336 | ||||
| ClientHeight=1177 | ||||
| ClientHeight=942 | ||||
| TBDockHeight=2321 | ||||
| LRDockWidth=2820 | ||||
| Dockable=1 | ||||
| @@ -509,11 +528,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=4888 | ||||
| LRDockWidth=7148 | ||||
| Dockable=1 | ||||
| @@ -525,8 +544,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Left=249 | ||||
| Top=709 | ||||
| Width=2859 | ||||
| Height=3206 | ||||
| MaxLeft=-1 | ||||
| @@ -547,11 +566,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1547 | ||||
| LRDockWidth=8742 | ||||
| Dockable=1 | ||||
| @@ -572,12 +591,12 @@ Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=1898 | ||||
| Height=9170 | ||||
| Width=1773 | ||||
| Height=6738 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=9170 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=3677 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| @@ -592,11 +611,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=4888 | ||||
| LRDockWidth=5305 | ||||
| Dockable=1 | ||||
| @@ -657,14 +676,14 @@ Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Top=23 | ||||
| Width=3820 | ||||
| Height=1424 | ||||
| Height=874 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1424 | ||||
| TBDockHeight=1424 | ||||
| ClientHeight=874 | ||||
| TBDockHeight=874 | ||||
| LRDockWidth=3820 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -683,12 +702,12 @@ State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=2000 | ||||
| Height=4529 | ||||
| Height=9170 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4529 | ||||
| TBDockHeight=7164 | ||||
| ClientHeight=9170 | ||||
| TBDockHeight=7119 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -705,13 +724,13 @@ Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Top=0 | ||||
| Width=1898 | ||||
| Height=9170 | ||||
| Height=7164 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=9170 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=7164 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| @@ -721,22 +740,22 @@ ActiveTabID=StructureView | ||||
| TabDockClients=StructureView,ClassBrowserTool | ||||
|  | ||||
| [DockSite4] | ||||
| HostDockSite=DockRightPanel | ||||
| HostDockSite=RightTabDock | ||||
| DockSiteType=1 | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=454 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=2747 | ||||
| Height=7119 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=2747 | ||||
| TBDockHeight=7164 | ||||
| ClientWidth=1875 | ||||
| ClientHeight=6693 | ||||
| TBDockHeight=7119 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							| @@ -1,10 +1,10 @@ | ||||
| [Stats] | ||||
| EditorSecs=37012 | ||||
| DesignerSecs=2134 | ||||
| InspectorSecs=1589 | ||||
| CompileSecs=2027164 | ||||
| OtherSecs=6328 | ||||
| EditorSecs=41029 | ||||
| DesignerSecs=2210 | ||||
| InspectorSecs=1739 | ||||
| CompileSecs=2144912 | ||||
| OtherSecs=6512 | ||||
| StartTime=11/02/2017 10:51:15 | ||||
| RealKeys=0 | ||||
| EffectiveKeys=0 | ||||
| DebugSecs=29279 | ||||
| DebugSecs=31352 | ||||
|   | ||||
| @@ -53,11 +53,12 @@ uses | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; | ||||
|  | ||||
| const | ||||
|   MINIBROWSER_CREATED       = WM_APP + $100; | ||||
|   MINIBROWSER_SHOWDEVTOOLS  = WM_APP + $101; | ||||
|   MINIBROWSER_HIDEDEVTOOLS  = WM_APP + $102; | ||||
|   MINIBROWSER_COPYHTML      = WM_APP + $103; | ||||
|   MINIBROWSER_VISITDOM      = WM_APP + $104; | ||||
|   MINIBROWSER_CREATED        = WM_APP + $100; | ||||
|   MINIBROWSER_SHOWDEVTOOLS   = WM_APP + $101; | ||||
|   MINIBROWSER_HIDEDEVTOOLS   = WM_APP + $102; | ||||
|   MINIBROWSER_COPYHTML       = WM_APP + $103; | ||||
|   MINIBROWSER_VISITDOM       = WM_APP + $104; | ||||
|   MINIBROWSER_SHOWTEXTVIEWER = WM_APP + $105; | ||||
|  | ||||
|   MINIBROWSER_HOMEPAGE = 'https://www.google.com'; | ||||
|  | ||||
| @@ -71,6 +72,7 @@ const | ||||
|   MINIBROWSER_CONTEXTMENU_JSPRINTDOC   = MENU_ID_USER_FIRST + 8; | ||||
|   MINIBROWSER_CONTEXTMENU_REGSCHEME    = MENU_ID_USER_FIRST + 9; | ||||
|   MINIBROWSER_CONTEXTMENU_CLEARFACT    = MENU_ID_USER_FIRST + 10; | ||||
|   MINIBROWSER_CONTEXTMENU_JSVISITDOM   = MENU_ID_USER_FIRST + 11; | ||||
|  | ||||
| type | ||||
|   TMiniBrowserFrm = class(TForm) | ||||
| @@ -124,10 +126,6 @@ type | ||||
|     procedure Chromium1BeforeContextMenu(Sender: TObject; | ||||
|       const browser: ICefBrowser; const frame: ICefFrame; | ||||
|       const params: ICefContextMenuParams; const model: ICefMenuModel); | ||||
|     procedure Chromium1ContextMenuCommand(Sender: TObject; | ||||
|       const browser: ICefBrowser; const frame: ICefFrame; | ||||
|       const params: ICefContextMenuParams; commandId: Integer; | ||||
|       eventFlags: TCefEventFlags; out Result: Boolean); | ||||
|     procedure Chromium1ProcessMessageReceived(Sender: TObject; | ||||
|       const browser: ICefBrowser; sourceProcess: TCefProcessId; | ||||
|       const message: ICefProcessMessage; out Result: Boolean); | ||||
| @@ -156,8 +154,14 @@ type | ||||
|     procedure ApplicationEvents1Message(var Msg: tagMSG; | ||||
|       var Handled: Boolean); | ||||
|     procedure Openfile1Click(Sender: TObject); | ||||
|     procedure Chromium1ContextMenuCommand(Sender: TObject; | ||||
|       const browser: ICefBrowser; const frame: ICefFrame; | ||||
|       const params: ICefContextMenuParams; commandId: Integer; | ||||
|       eventFlags: Cardinal; out Result: Boolean); | ||||
|  | ||||
|   protected | ||||
|     FText : string; | ||||
|  | ||||
|     procedure AddURL(const aURL : string); | ||||
|  | ||||
|     procedure ShowDevTools(aPoint : TPoint); overload; | ||||
| @@ -172,9 +176,12 @@ type | ||||
|     procedure HideDevToolsMsg(var aMessage : TMessage); message MINIBROWSER_HIDEDEVTOOLS; | ||||
|     procedure CopyHTMLMsg(var aMessage : TMessage); message MINIBROWSER_COPYHTML; | ||||
|     procedure VisitDOMMsg(var aMessage : TMessage); message MINIBROWSER_VISITDOM; | ||||
|     procedure ShowTextViewerMsg(var aMessage : TMessage); message MINIBROWSER_SHOWTEXTVIEWER; | ||||
|     procedure WMMove(var aMessage : TWMMove); message WM_MOVE; | ||||
|     procedure WMMoving(var aMessage : TMessage); message WM_MOVING; | ||||
|  | ||||
|   public | ||||
|     procedure ShowStatusText(const aText : string); | ||||
|  | ||||
|   end; | ||||
|  | ||||
| @@ -186,7 +193,7 @@ implementation | ||||
| {$R *.dfm} | ||||
|  | ||||
| uses | ||||
|   uPreferences, uCEFProcessMessage, uCEFSchemeHandlerFactory, uHelloScheme; | ||||
|   uPreferences, uCEFProcessMessage, uCEFSchemeHandlerFactory, uHelloScheme, uSimpleTextViewer; | ||||
|  | ||||
| procedure TMiniBrowserFrm.BackBtnClick(Sender: TObject); | ||||
| begin | ||||
| @@ -233,7 +240,8 @@ begin | ||||
|   model.AddItem(MINIBROWSER_CONTEXTMENU_SHOWJSALERT, 'Show JS Alert'); | ||||
|   model.AddItem(MINIBROWSER_CONTEXTMENU_SETJSEVENT,  'Set mouseover event'); | ||||
|   model.AddItem(MINIBROWSER_CONTEXTMENU_COPYHTML,    'Copy HTML to clipboard'); | ||||
|   model.AddItem(MINIBROWSER_CONTEXTMENU_VISITDOM,    'Visit DOM'); | ||||
|   model.AddItem(MINIBROWSER_CONTEXTMENU_VISITDOM,    'Visit DOM in CEF'); | ||||
|   model.AddItem(MINIBROWSER_CONTEXTMENU_JSVISITDOM,  'Visit DOM in JavaScript'); | ||||
|   model.AddItem(MINIBROWSER_CONTEXTMENU_JSWRITEDOC,  'Modify HTML document'); | ||||
|   model.AddItem(MINIBROWSER_CONTEXTMENU_JSPRINTDOC,  'Print using Javascript'); | ||||
|   model.AddItem(MINIBROWSER_CONTEXTMENU_REGSCHEME,   'Register scheme'); | ||||
| @@ -248,7 +256,7 @@ end; | ||||
| procedure TMiniBrowserFrm.Chromium1ContextMenuCommand(Sender: TObject; | ||||
|   const browser: ICefBrowser; const frame: ICefFrame; | ||||
|   const params: ICefContextMenuParams; commandId: Integer; | ||||
|   eventFlags: TCefEventFlags; out Result: Boolean); | ||||
|   eventFlags: Cardinal; out Result: Boolean); | ||||
| var | ||||
|   TempParam : WParam; | ||||
|   TempFactory: ICefSchemeHandlerFactory; | ||||
| @@ -287,6 +295,13 @@ begin | ||||
|     MINIBROWSER_CONTEXTMENU_VISITDOM : | ||||
|       PostMessage(Handle, MINIBROWSER_VISITDOM, 0, 0); | ||||
|  | ||||
|     MINIBROWSER_CONTEXTMENU_JSVISITDOM : | ||||
|       if (browser <> nil) and (browser.MainFrame <> nil) then | ||||
|         browser.MainFrame.ExecuteJavaScript( | ||||
|           'var testhtml = document.body.innerHTML;' + | ||||
|           'myextension.sendresulttobrowser(testhtml, ''customname'');', | ||||
|           'about:blank', 0); | ||||
|  | ||||
|     MINIBROWSER_CONTEXTMENU_JSWRITEDOC : | ||||
|       if (browser <> nil) and (browser.MainFrame <> nil) then | ||||
|         browser.MainFrame.ExecuteJavaScript( | ||||
| @@ -442,20 +457,42 @@ procedure TMiniBrowserFrm.Chromium1ProcessMessageReceived(Sender: TObject; | ||||
|   const browser: ICefBrowser; sourceProcess: TCefProcessId; | ||||
|   const message: ICefProcessMessage; out Result: Boolean); | ||||
| begin | ||||
|   if (message <> nil) and (message.Name = 'mouseover') and (message.ArgumentList <> nil) then | ||||
|   if (message = nil) or (message.ArgumentList = nil) then exit; | ||||
|  | ||||
|   if (message.Name = 'mouseover') then | ||||
|     begin | ||||
|       // Message received from the extension | ||||
|       StatusBar1.Panels[0].Text := message.ArgumentList.GetString(0); | ||||
|       Result                    := True; | ||||
|       ShowStatusText(message.ArgumentList.GetString(0)); | ||||
|       Result := True; | ||||
|     end | ||||
|    else | ||||
|     Result := False; | ||||
|     if (message.Name = 'domvisitor') then | ||||
|       begin | ||||
|         // Message received from the DOMVISITOR in CEF | ||||
|         ShowStatusText(message.ArgumentList.GetString(0)); | ||||
|         Result := True; | ||||
|       end | ||||
|      else | ||||
|     if (message.Name = 'customname') then | ||||
|       begin | ||||
|         // Message received from the Javascript DOM visitor | ||||
|         FText := message.ArgumentList.GetString(0); | ||||
|         PostMessage(Handle, MINIBROWSER_SHOWTEXTVIEWER, 0, 0); | ||||
|         Result := True; | ||||
|       end | ||||
|      else | ||||
|       Result := False; | ||||
| end; | ||||
|  | ||||
| procedure TMiniBrowserFrm.ShowStatusText(const aText : string); | ||||
| begin | ||||
|   StatusBar1.Panels[0].Text := aText; | ||||
| end; | ||||
|  | ||||
| procedure TMiniBrowserFrm.Chromium1StatusMessage(Sender: TObject; | ||||
|   const browser: ICefBrowser; const value: ustring); | ||||
| begin | ||||
|   StatusBar1.Panels[0].Text := value; | ||||
|   ShowStatusText(value); | ||||
| end; | ||||
|  | ||||
| procedure TMiniBrowserFrm.Chromium1TextResultAvailable(Sender: TObject; const aText: string); | ||||
| @@ -591,6 +628,12 @@ begin | ||||
|   Chromium1.SendProcessMessage(PID_RENDERER, TempMsg); | ||||
| end; | ||||
|  | ||||
| procedure TMiniBrowserFrm.ShowTextViewerMsg(var aMessage : TMessage); | ||||
| begin | ||||
|   SimpleTextViewerFrm.Memo1.Lines.Text := FText; | ||||
|   SimpleTextViewerFrm.ShowModal; | ||||
| end; | ||||
|  | ||||
| procedure TMiniBrowserFrm.WMMove(var aMessage : TWMMove); | ||||
| begin | ||||
|   inherited; | ||||
|   | ||||
							
								
								
									
										31
									
								
								demos/MiniBrowser/uSimpleTextViewer.dfm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								demos/MiniBrowser/uSimpleTextViewer.dfm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| object SimpleTextViewerFrm: TSimpleTextViewerFrm | ||||
|   Left = 0 | ||||
|   Top = 0 | ||||
|   BorderIcons = [biSystemMenu] | ||||
|   BorderStyle = bsSingle | ||||
|   Caption = 'Simple text viewer' | ||||
|   ClientHeight = 572 | ||||
|   ClientWidth = 694 | ||||
|   Color = clBtnFace | ||||
|   Font.Charset = DEFAULT_CHARSET | ||||
|   Font.Color = clWindowText | ||||
|   Font.Height = -11 | ||||
|   Font.Name = 'Tahoma' | ||||
|   Font.Style = [] | ||||
|   OldCreateOrder = False | ||||
|   Position = poScreenCenter | ||||
|   PixelsPerInch = 96 | ||||
|   TextHeight = 13 | ||||
|   object Memo1: TMemo | ||||
|     Left = 0 | ||||
|     Top = 0 | ||||
|     Width = 694 | ||||
|     Height = 572 | ||||
|     Align = alClient | ||||
|     ReadOnly = True | ||||
|     ScrollBars = ssBoth | ||||
|     TabOrder = 0 | ||||
|     ExplicitWidth = 611 | ||||
|     ExplicitHeight = 495 | ||||
|   end | ||||
| end | ||||
							
								
								
									
										25
									
								
								demos/MiniBrowser/uSimpleTextViewer.pas
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								demos/MiniBrowser/uSimpleTextViewer.pas
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| unit uSimpleTextViewer; | ||||
|  | ||||
| interface | ||||
|  | ||||
| uses | ||||
|   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, | ||||
|   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; | ||||
|  | ||||
| type | ||||
|   TSimpleTextViewerFrm = class(TForm) | ||||
|     Memo1: TMemo; | ||||
|   private | ||||
|     { Private declarations } | ||||
|   public | ||||
|     { Public declarations } | ||||
|   end; | ||||
|  | ||||
| var | ||||
|   SimpleTextViewerFrm: TSimpleTextViewerFrm; | ||||
|  | ||||
| implementation | ||||
|  | ||||
| {$R *.dfm} | ||||
|  | ||||
| end. | ||||
| @@ -53,10 +53,14 @@ uses | ||||
| type | ||||
|   TTestExtension = class | ||||
|     class procedure mouseover(const data: string); | ||||
|     class procedure sendresulttobrowser(const msgtext, msgname : string); | ||||
|   end; | ||||
|  | ||||
| implementation | ||||
|  | ||||
| uses | ||||
|   uCEFMiscFunctions, uCEFConstants; | ||||
|  | ||||
| class procedure TTestExtension.mouseover(const data: string); | ||||
| var | ||||
|   msg: ICefProcessMessage; | ||||
| @@ -69,4 +73,14 @@ begin | ||||
|   TCefv8ContextRef.Current.Browser.SendProcessMessage(PID_BROWSER, msg); | ||||
| end; | ||||
|  | ||||
| class procedure TTestExtension.sendresulttobrowser(const msgtext, msgname : string); | ||||
| var | ||||
|   msg: ICefProcessMessage; | ||||
| begin | ||||
|   msg := TCefProcessMessageRef.New(msgname); | ||||
|   msg.ArgumentList.SetString(0, msgtext); | ||||
|  | ||||
|   TCefv8ContextRef.Current.Browser.SendProcessMessage(PID_BROWSER, msg); | ||||
| end; | ||||
|  | ||||
| end. | ||||
|   | ||||
| @@ -2,8 +2,8 @@ | ||||
| <BorlandProject> | ||||
| 	<Transactions> | ||||
|     <Transaction>2017/01/22 14:37:05.000.577,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/01/22 14:41:11.000.096,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleBrowser\uSimpleBrowser.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm</Transaction> | ||||
|     <Transaction>2017/01/22 14:41:11.000.096,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleBrowser\uSimpleBrowser.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/01/22 14:41:18.000.226,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleBrowser\SimpleBrowser.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj</Transaction> | ||||
|     <Transaction>2017/01/22 14:41:11.000.096,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleBrowser\uSimpleBrowser.pas</Transaction> | ||||
|     <Transaction>2017/01/22 14:41:11.000.096,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleBrowser\uSimpleBrowser.dfm</Transaction> | ||||
|     <Transaction>2017/01/22 14:41:18.000.226,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleBrowser\SimpleBrowser.dproj</Transaction> | ||||
|   </Transactions> | ||||
| </BorlandProject> | ||||
|   | ||||
| @@ -52,15 +52,16 @@ BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0 | ||||
| TopPanelSize=0 | ||||
| LeftPanelSize=0 | ||||
| RightPanelSize=2000 | ||||
| RightPanelClients=DockSite2,DockSite4 | ||||
| RightPanelData=00000800010100000000551500000000000001D00700000000000001000000004312000009000000446F636B536974653201000000009D1D000009000000446F636B5369746534FFFFFFFF | ||||
| BottomPanelSize=1475 | ||||
| RightPanelClients=DockSite2 | ||||
| RightPanelData=00000800010100000000AA1900000000000001D0070000000000000100000000A123000009000000446F636B5369746532FFFFFFFF | ||||
| BottomPanelSize=0 | ||||
| BottomPanelClients=DockSite1,MessageView | ||||
| BottomPanelData=0000080001020100000009000000446F636B53697465313B3600000000000002C30500000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF | ||||
| BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D3B3600000000000002820F000000000000FFFFFFFF | ||||
| BottomMiddlePanelSize=0 | ||||
| BottomMiddlePanelClients=DockSite0,GraphDrawingModel | ||||
| BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF | ||||
| TabDockLeftClients=PropertyInspector=0,DockSite3=1 | ||||
| TabDockLeftClients=DockSite3=0,PropertyInspector=1 | ||||
| TabDockRightClients=DockSite4=0 | ||||
|  | ||||
| [View0] | ||||
| CustomEditViewType=TWelcomePageView | ||||
| @@ -102,11 +103,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=13602 | ||||
| Dockable=1 | ||||
| @@ -150,11 +151,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=4226 | ||||
| Height=8868 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4226 | ||||
| ClientHeight=8868 | ||||
| TBDockHeight=5897 | ||||
| LRDockWidth=2352 | ||||
| Dockable=1 | ||||
| @@ -163,18 +164,18 @@ StayOnTop=0 | ||||
| [MessageView] | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=10000 | ||||
| Height=1267 | ||||
| Width=2773 | ||||
| Height=3845 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=10000 | ||||
| ClientHeight=1267 | ||||
| TBDockHeight=1267 | ||||
| ClientWidth=2773 | ||||
| ClientHeight=3845 | ||||
| TBDockHeight=3845 | ||||
| LRDockWidth=2773 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -187,12 +188,12 @@ Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=2747 | ||||
| Width=1875 | ||||
| Height=6693 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=2747 | ||||
| ClientWidth=1875 | ||||
| ClientHeight=6693 | ||||
| TBDockHeight=7152 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| @@ -242,8 +243,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-148 | ||||
| Top=-137 | ||||
| Left=-8 | ||||
| Top=-30 | ||||
| Width=1844 | ||||
| Height=3139 | ||||
| MaxLeft=-1 | ||||
| @@ -299,19 +300,19 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=362 | ||||
| Left=78 | ||||
| Top=386 | ||||
| Width=1898 | ||||
| Height=5370 | ||||
| Height=7164 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=5370 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=7164 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| SplitPos=111 | ||||
| SplitPos=136 | ||||
|  | ||||
| [frmDesignPreview] | ||||
| PercentageSizes=1 | ||||
| @@ -322,11 +323,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=5964 | ||||
| LRDockWidth=2508 | ||||
| Dockable=1 | ||||
| @@ -338,8 +339,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-898 | ||||
| Top=-137 | ||||
| Left=-946 | ||||
| Top=1 | ||||
| Width=2844 | ||||
| Height=6200 | ||||
| MaxLeft=-1 | ||||
| @@ -357,8 +358,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-1026 | ||||
| Top=-137 | ||||
| Left=-8 | ||||
| Top=287 | ||||
| Width=273 | ||||
| Height=359 | ||||
| MaxLeft=-1 | ||||
| @@ -382,11 +383,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=415 | ||||
| LRDockWidth=4953 | ||||
| Dockable=1 | ||||
| @@ -401,11 +402,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=7406 | ||||
| Dockable=1 | ||||
| @@ -424,11 +425,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1536 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -443,11 +444,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=2063 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -462,11 +463,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2336 | ||||
| Height=1177 | ||||
| Height=942 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2336 | ||||
| ClientHeight=1177 | ||||
| ClientHeight=942 | ||||
| TBDockHeight=2321 | ||||
| LRDockWidth=2820 | ||||
| Dockable=1 | ||||
| @@ -527,11 +528,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=4888 | ||||
| LRDockWidth=7148 | ||||
| Dockable=1 | ||||
| @@ -543,8 +544,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Left=249 | ||||
| Top=709 | ||||
| Width=2859 | ||||
| Height=3206 | ||||
| MaxLeft=-1 | ||||
| @@ -565,11 +566,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1547 | ||||
| LRDockWidth=8742 | ||||
| Dockable=1 | ||||
| @@ -590,12 +591,12 @@ Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=1898 | ||||
| Height=9170 | ||||
| Width=1773 | ||||
| Height=6738 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=9170 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=3677 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| @@ -610,11 +611,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=4888 | ||||
| LRDockWidth=5305 | ||||
| Dockable=1 | ||||
| @@ -675,14 +676,14 @@ Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Top=23 | ||||
| Width=3820 | ||||
| Height=1424 | ||||
| Height=874 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1424 | ||||
| TBDockHeight=1424 | ||||
| ClientHeight=874 | ||||
| TBDockHeight=874 | ||||
| LRDockWidth=3820 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -701,12 +702,12 @@ State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=2000 | ||||
| Height=4529 | ||||
| Height=9170 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4529 | ||||
| TBDockHeight=7164 | ||||
| ClientHeight=9170 | ||||
| TBDockHeight=7119 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -723,13 +724,13 @@ Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Top=0 | ||||
| Width=1898 | ||||
| Height=9170 | ||||
| Height=7164 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=9170 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=7164 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| @@ -739,22 +740,22 @@ ActiveTabID=StructureView | ||||
| TabDockClients=StructureView,ClassBrowserTool | ||||
|  | ||||
| [DockSite4] | ||||
| HostDockSite=DockRightPanel | ||||
| HostDockSite=RightTabDock | ||||
| DockSiteType=1 | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=454 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=2747 | ||||
| Height=7119 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=2747 | ||||
| TBDockHeight=7164 | ||||
| ClientWidth=1875 | ||||
| ClientHeight=6693 | ||||
| TBDockHeight=7119 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							| @@ -3,7 +3,7 @@ EditorSecs=4647 | ||||
| DesignerSecs=301 | ||||
| InspectorSecs=137 | ||||
| CompileSecs=326894 | ||||
| OtherSecs=1036 | ||||
| OtherSecs=1037 | ||||
| StartTime=22/01/2017 14:51:01 | ||||
| RealKeys=0 | ||||
| EffectiveKeys=0 | ||||
|   | ||||
| @@ -46,6 +46,7 @@ uses | ||||
|   Forms, Windows, | ||||
|   {$ENDIF} | ||||
|   uCEFApplication, | ||||
|   uCEFTypes, | ||||
|   uSimpleOSRBrowser in 'uSimpleOSRBrowser.pas' {Form1}; | ||||
|  | ||||
| {$R *.res} | ||||
| @@ -56,6 +57,8 @@ uses | ||||
| begin | ||||
|   GlobalCEFApp                            := TCefApplication.Create; | ||||
|   GlobalCEFApp.WindowlessRenderingEnabled := True; | ||||
|   GlobalCEFApp.AddCustomCommandLine('--disable-gpu'); | ||||
|   GlobalCEFApp.AddCustomCommandLine('--disable-gpu-compositing'); | ||||
|  | ||||
|   // In case you want to use custom directories for the CEF3 binaries, cache, cookies and user data. | ||||
| { | ||||
| @@ -66,7 +69,6 @@ begin | ||||
|   GlobalCEFApp.cookies              := 'cef\cookies'; | ||||
|   GlobalCEFApp.UserDataPath         := 'cef\User Data'; | ||||
| } | ||||
|  | ||||
|   if GlobalCEFApp.StartMainProcess then | ||||
|     begin | ||||
|       Application.Initialize; | ||||
|   | ||||
| @@ -2,8 +2,8 @@ | ||||
| <BorlandProject> | ||||
| 	<Transactions> | ||||
|     <Transaction>2017/01/22 17:26:58.000.836,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/01/22 17:28:20.000.762,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleOSRBrowser\uSimpleOSRBrowser.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/01/22 17:28:20.000.762,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleOSRBrowser\uSimpleOSRBrowser.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm</Transaction> | ||||
|     <Transaction>2017/01/22 17:28:25.000.780,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleOSRBrowser\SimpleOSRBrowser.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj</Transaction> | ||||
|     <Transaction>2017/01/22 17:28:20.000.762,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleOSRBrowser\uSimpleOSRBrowser.pas</Transaction> | ||||
|     <Transaction>2017/01/22 17:28:20.000.762,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleOSRBrowser\uSimpleOSRBrowser.dfm</Transaction> | ||||
|     <Transaction>2017/01/22 17:28:25.000.780,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleOSRBrowser\SimpleOSRBrowser.dproj</Transaction> | ||||
|   </Transactions> | ||||
| </BorlandProject> | ||||
|   | ||||
| @@ -1,14 +1,14 @@ | ||||
| [Closed Files] | ||||
| File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleOSRBrowser\uSimpleOSRBrowser.pas',0,1,260,54,289,0,0,, | ||||
| File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,338,30,360,0,0,, | ||||
| File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,10,21,38,0,0,, | ||||
| File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas',0,1,34,23,38,0,0,, | ||||
| File_4=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumWindow.pas',0,1,35,24,60,0,0,, | ||||
| File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,219,63,249,0,0,, | ||||
| File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas',0,1,416,36,438,0,0,, | ||||
| File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFBrowser.pas',0,1,208,111,219,0,0,, | ||||
| File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleBrowser\uSimpleBrowser.pas',0,1,71,13,84,0,0,, | ||||
| File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\BriskBard\uBriskBardMainForm.pas',0,1,50,11,57,0,0,, | ||||
| File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleOSRBrowser\uSimpleOSRBrowser.pas',0,1,102,90,177,0,0,,{1,338,1}{2,392,43} | ||||
| File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas',0,1,1111,61,1007,0,0,, | ||||
| File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDragAndDropMgr.pas',0,1,94,1,702,0,0,, | ||||
| File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,2780,29,2804,0,0,, | ||||
| File_4=TSourceModule,'c:\program files\embarcadero\studio\17.0\source\rtl\win\Winapi.Windows.pas',0,1,21523,35,21547,0,0,, | ||||
| File_5=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\VCL\Vcl.Controls.pas',0,1,2509,46,2537,0,0,, | ||||
| File_6=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\VCL\Vcl.ExtCtrls.pas',0,1,237,30,245,0,0,, | ||||
| File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uOLEDragAndDrop.pas',0,1,16,21,38,0,0,, | ||||
| File_8=TSourceModule,'V:\3071\tests\cefclient\browser\osr_dragdrop_win.cc',0,1,355,64,383,0,0,, | ||||
| File_9=TSourceModule,'V:\3071\tests\cefclient\browser\osr_window_win.cc',0,1,962,45,989,0,0,, | ||||
|  | ||||
| [Modules] | ||||
| Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleOSRBrowser\SimpleOSRBrowser.dproj | ||||
| @@ -46,10 +46,10 @@ TopPanelSize=0 | ||||
| LeftPanelSize=0 | ||||
| RightPanelSize=2000 | ||||
| RightPanelClients=DockSite2 | ||||
| RightPanelData=00000800010100000000551500000000000001D00700000000000001000000009D1D000009000000446F636B5369746532FFFFFFFF | ||||
| BottomPanelSize=1475 | ||||
| RightPanelData=00000800010100000000AA1900000000000001D0070000000000000100000000A123000009000000446F636B5369746532FFFFFFFF | ||||
| BottomPanelSize=0 | ||||
| BottomPanelClients=DockSite1,MessageView | ||||
| BottomPanelData=0000080001020100000009000000446F636B53697465313B3600000000000002C30500000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF | ||||
| BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D3B3600000000000002820F000000000000FFFFFFFF | ||||
| BottomMiddlePanelSize=0 | ||||
| BottomMiddlePanelClients=DockSite0,GraphDrawingModel | ||||
| BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF | ||||
| @@ -64,8 +64,8 @@ WelcomePageURL=bds:/default.htm | ||||
| CustomEditViewType=TEditView | ||||
| Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleOSRBrowser\SimpleOSRBrowser.dpr | ||||
| CursorX=2 | ||||
| CursorY=68 | ||||
| TopLine=28 | ||||
| CursorY=64 | ||||
| TopLine=31 | ||||
| LeftCol=1 | ||||
| Elisions= | ||||
| Bookmarks= | ||||
| @@ -85,11 +85,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=964 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=964 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=13602 | ||||
| Dockable=1 | ||||
| @@ -133,11 +133,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=7276 | ||||
| Height=8868 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=7276 | ||||
| ClientHeight=8868 | ||||
| TBDockHeight=5897 | ||||
| LRDockWidth=2352 | ||||
| Dockable=1 | ||||
| @@ -146,18 +146,18 @@ StayOnTop=0 | ||||
| [MessageView] | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=10000 | ||||
| Height=1267 | ||||
| Width=2773 | ||||
| Height=3845 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=10000 | ||||
| ClientHeight=1267 | ||||
| TBDockHeight=1267 | ||||
| ClientWidth=2773 | ||||
| ClientHeight=3845 | ||||
| TBDockHeight=3845 | ||||
| LRDockWidth=2773 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -294,7 +294,7 @@ TBDockHeight=7164 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| SplitPos=111 | ||||
| SplitPos=136 | ||||
|  | ||||
| [frmDesignPreview] | ||||
| PercentageSizes=1 | ||||
| @@ -365,11 +365,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=964 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=964 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=415 | ||||
| LRDockWidth=4953 | ||||
| Dockable=1 | ||||
| @@ -384,11 +384,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=964 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=964 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=7406 | ||||
| Dockable=1 | ||||
| @@ -407,11 +407,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=964 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=964 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1536 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -426,11 +426,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=964 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=964 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=2063 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -548,11 +548,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=964 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=964 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1547 | ||||
| LRDockWidth=8742 | ||||
| Dockable=1 | ||||
| @@ -660,12 +660,12 @@ State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=3820 | ||||
| Height=1267 | ||||
| Height=874 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1267 | ||||
| TBDockHeight=1267 | ||||
| ClientHeight=874 | ||||
| TBDockHeight=874 | ||||
| LRDockWidth=3820 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -684,11 +684,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=2000 | ||||
| Height=7578 | ||||
| Height=9170 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=7578 | ||||
| ClientHeight=9170 | ||||
| TBDockHeight=7119 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| [Stats] | ||||
| EditorSecs=3911 | ||||
| DesignerSecs=253 | ||||
| InspectorSecs=1 | ||||
| CompileSecs=331279 | ||||
| OtherSecs=710 | ||||
| EditorSecs=25695 | ||||
| DesignerSecs=383 | ||||
| InspectorSecs=181 | ||||
| CompileSecs=1179317 | ||||
| OtherSecs=2960 | ||||
| StartTime=22/01/2017 17:35:20 | ||||
| RealKeys=0 | ||||
| EffectiveKeys=0 | ||||
| DebugSecs=1815 | ||||
| DebugSecs=15914 | ||||
|   | ||||
| @@ -2,8 +2,8 @@ object Form1: TForm1 | ||||
|   Left = 0 | ||||
|   Top = 0 | ||||
|   Caption = 'Simple OSR Browser' | ||||
|   ClientHeight = 712 | ||||
|   ClientWidth = 984 | ||||
|   ClientHeight = 716 | ||||
|   ClientWidth = 992 | ||||
|   Color = clBtnFace | ||||
|   Font.Charset = DEFAULT_CHARSET | ||||
|   Font.Color = clWindowText | ||||
| @@ -13,37 +13,28 @@ object Form1: TForm1 | ||||
|   OldCreateOrder = False | ||||
|   Position = poScreenCenter | ||||
|   OnAfterMonitorDpiChanged = FormAfterMonitorDpiChanged | ||||
|   OnCreate = FormCreate | ||||
|   OnDestroy = FormDestroy | ||||
|   OnHide = FormHide | ||||
|   OnShow = FormShow | ||||
|   PixelsPerInch = 96 | ||||
|   TextHeight = 13 | ||||
|   object Panel1: TPanel | ||||
|   object NavControlPnl: TPanel | ||||
|     Left = 0 | ||||
|     Top = 0 | ||||
|     Width = 984 | ||||
|     Width = 992 | ||||
|     Height = 30 | ||||
|     Align = alTop | ||||
|     BevelOuter = bvNone | ||||
|     Enabled = False | ||||
|     Padding.Left = 5 | ||||
|     Padding.Top = 5 | ||||
|     Padding.Right = 5 | ||||
|     Padding.Bottom = 5 | ||||
|     ShowCaption = False | ||||
|     TabOrder = 0 | ||||
|     ExplicitWidth = 677 | ||||
|     object Edit1: TEdit | ||||
|       Left = 5 | ||||
|       Top = 5 | ||||
|       Width = 943 | ||||
|       Height = 20 | ||||
|       Margins.Right = 5 | ||||
|       Align = alClient | ||||
|       TabOrder = 0 | ||||
|       Text = 'http://www.google.com' | ||||
|       ExplicitWidth = 636 | ||||
|       ExplicitHeight = 21 | ||||
|     end | ||||
|     object Button1: TButton | ||||
|       Left = 948 | ||||
|     TabOrder = 1 | ||||
|     object GoBtn: TButton | ||||
|       Left = 956 | ||||
|       Top = 5 | ||||
|       Width = 31 | ||||
|       Height = 20 | ||||
| @@ -51,26 +42,51 @@ object Form1: TForm1 | ||||
|       Align = alRight | ||||
|       Caption = 'Go' | ||||
|       TabOrder = 1 | ||||
|       OnClick = Button1Click | ||||
|       ExplicitLeft = 641 | ||||
|       OnClick = GoBtnClick | ||||
|     end | ||||
|     object ComboBox1: TComboBox | ||||
|       Left = 5 | ||||
|       Top = 5 | ||||
|       Width = 951 | ||||
|       Height = 21 | ||||
|       Align = alClient | ||||
|       ItemIndex = 0 | ||||
|       TabOrder = 0 | ||||
|       Text = 'https://www.google.com' | ||||
|       Items.Strings = ( | ||||
|         'https://www.google.com' | ||||
|         'https://html5demos.com/drag') | ||||
|     end | ||||
|   end | ||||
|   object PaintBox: TPaintBox32 | ||||
|   object Panel1: TPanel | ||||
|     Left = 0 | ||||
|     Top = 30 | ||||
|     Width = 984 | ||||
|     Height = 682 | ||||
|     Width = 992 | ||||
|     Height = 686 | ||||
|     Align = alClient | ||||
|     TabOrder = 1 | ||||
|     OnMouseDown = PaintBoxMouseDown | ||||
|     OnMouseMove = PaintBoxMouseMove | ||||
|     OnMouseUp = PaintBoxMouseUp | ||||
|     OnMouseWheel = PaintBoxMouseWheel | ||||
|     OnResize = PaintBoxResize | ||||
|     ExplicitWidth = 677 | ||||
|     ExplicitHeight = 548 | ||||
|     BevelOuter = bvNone | ||||
|     ShowCaption = False | ||||
|     TabOrder = 0 | ||||
|     TabStop = True | ||||
|     OnEnter = Panel1Enter | ||||
|     OnExit = Panel1Exit | ||||
|     object PaintBox: TPaintBox32 | ||||
|       Left = 0 | ||||
|       Top = 0 | ||||
|       Width = 992 | ||||
|       Height = 686 | ||||
|       Align = alClient | ||||
|       TabOrder = 0 | ||||
|       OnClick = PaintBoxClick | ||||
|       OnMouseDown = PaintBoxMouseDown | ||||
|       OnMouseMove = PaintBoxMouseMove | ||||
|       OnMouseUp = PaintBoxMouseUp | ||||
|       OnMouseWheel = PaintBoxMouseWheel | ||||
|       OnResize = PaintBoxResize | ||||
|     end | ||||
|   end | ||||
|   object chrmosr: TChromium | ||||
|     OnAfterCreated = chrmosrAfterCreated | ||||
|     OnGetRootScreenRect = chrmosrGetRootScreenRect | ||||
|     OnGetViewRect = chrmosrGetViewRect | ||||
|     OnGetScreenPoint = chrmosrGetScreenPoint | ||||
|   | ||||
| @@ -52,52 +52,49 @@ uses | ||||
|   GR32_Image, // You need the Graphics32 components for this demo available at http://graphics32.org | ||||
|   uCEFChromium, uCEFTypes, uCEFInterfaces; | ||||
|  | ||||
| const | ||||
|   MINIBROWSER_CREATED       = WM_APP + $100; | ||||
|  | ||||
| type | ||||
|   TForm1 = class(TForm) | ||||
|     Panel1: TPanel; | ||||
|     Edit1: TEdit; | ||||
|     Button1: TButton; | ||||
|     PaintBox: TPaintBox32; | ||||
|     NavControlPnl: TPanel; | ||||
|     GoBtn: TButton; | ||||
|     chrmosr: TChromium; | ||||
|     AppEvents: TApplicationEvents; | ||||
|     Panel1: TPanel;    // This is just a quick and dirty hack to receive some events that the PaintBox can't receive. | ||||
|     PaintBox: TPaintBox32; | ||||
|     ComboBox1: TComboBox; | ||||
|     procedure FormShow(Sender: TObject); | ||||
|     procedure PaintBoxResize(Sender: TObject); | ||||
|     procedure PaintBoxMouseDown(Sender: TObject; Button: TMouseButton; | ||||
|       Shift: TShiftState; X, Y: Integer); | ||||
|     procedure PaintBoxMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); | ||||
|     procedure AppEventsMessage(var Msg: tagMSG; var Handled: Boolean); | ||||
|     procedure PaintBoxMouseUp(Sender: TObject; Button: TMouseButton; | ||||
|       Shift: TShiftState; X, Y: Integer); | ||||
|     procedure PaintBoxMouseMove(Sender: TObject; Shift: TShiftState; X, | ||||
|       Y: Integer); | ||||
|     procedure chrmosrPaint(Sender: TObject; const browser: ICefBrowser; | ||||
|       kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; | ||||
|       const dirtyRects: PCefRectArray; const buffer: Pointer; width, | ||||
|       height: Integer); | ||||
|     procedure chrmosrGetRootScreenRect(Sender: TObject; | ||||
|       const browser: ICefBrowser; rect: PCefRect; out Result: Boolean); | ||||
|     procedure chrmosrCursorChange(Sender: TObject; | ||||
|       const browser: ICefBrowser; cursor: HICON; | ||||
|       cursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo); | ||||
|     procedure PaintBoxMouseWheel(Sender: TObject; Shift: TShiftState; | ||||
|       WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); | ||||
|     procedure Button1Click(Sender: TObject); | ||||
|     procedure chrmosrGetViewRect(Sender: TObject; | ||||
|       const browser: ICefBrowser; rect: PCefRect; out Result: Boolean); | ||||
|     procedure chrmosrGetScreenPoint(Sender: TObject; | ||||
|       const browser: ICefBrowser; viewX, viewY: Integer; screenX, | ||||
|       screenY: PInteger; out Result: Boolean); | ||||
|     procedure FormAfterMonitorDpiChanged(Sender: TObject; OldDPI, | ||||
|       NewDPI: Integer); | ||||
|     procedure chrmosrPopupShow(Sender: TObject; const browser: ICefBrowser; | ||||
|       show: Boolean); | ||||
|     procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; | ||||
|       const rect: PCefRect); | ||||
|     procedure PaintBoxMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); | ||||
|     procedure PaintBoxMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); | ||||
|     procedure chrmosrPaint(Sender: TObject; const browser: ICefBrowser; kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const buffer: Pointer; width, height: Integer); | ||||
|     procedure chrmosrGetRootScreenRect(Sender: TObject; const browser: ICefBrowser; rect: PCefRect; out Result: Boolean); | ||||
|     procedure chrmosrCursorChange(Sender: TObject; const browser: ICefBrowser; cursor: HICON; cursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo); | ||||
|     procedure PaintBoxMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); | ||||
|     procedure GoBtnClick(Sender: TObject); | ||||
|     procedure chrmosrGetViewRect(Sender: TObject; const browser: ICefBrowser; rect: PCefRect; out Result: Boolean); | ||||
|     procedure chrmosrGetScreenPoint(Sender: TObject; const browser: ICefBrowser; viewX, viewY: Integer; screenX, screenY: PInteger; out Result: Boolean); | ||||
|     procedure FormAfterMonitorDpiChanged(Sender: TObject; OldDPI, NewDPI: Integer); | ||||
|     procedure chrmosrPopupShow(Sender: TObject; const browser: ICefBrowser; show: Boolean); | ||||
|     procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect); | ||||
|     procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure Panel1Enter(Sender: TObject); | ||||
|     procedure Panel1Exit(Sender: TObject); | ||||
|     procedure FormHide(Sender: TObject); | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure PaintBoxClick(Sender: TObject); | ||||
|     procedure FormDestroy(Sender: TObject); | ||||
|  | ||||
|   private | ||||
|     function getModifiers(Shift: TShiftState): TCefEventFlags; | ||||
|     function GetButton(Button: TMouseButton): TCefMouseButtonType; | ||||
|     function  getModifiers(Shift: TShiftState): TCefEventFlags; | ||||
|     function  GetButton(Button: TMouseButton): TCefMouseButtonType; | ||||
|  | ||||
|     procedure WMMove(var aMessage : TWMMove); message WM_MOVE; | ||||
|     procedure WMMoving(var aMessage : TMessage); message WM_MOVING; | ||||
|     procedure BrowserCreatedMsg(var aMessage : TMessage); message MINIBROWSER_CREATED; | ||||
|  | ||||
|   public | ||||
|     { Public declarations } | ||||
| @@ -111,77 +108,154 @@ implementation | ||||
| {$R *.dfm} | ||||
|  | ||||
| uses | ||||
|   uCEFMiscFunctions; | ||||
|   uCEFMiscFunctions, uCEFConstants; | ||||
|  | ||||
| procedure TForm1.AppEventsMessage(var Msg: tagMSG; var Handled: Boolean); | ||||
| var | ||||
|   event: TCefKeyEvent; | ||||
|   TempEvent : TCefKeyEvent; | ||||
| begin | ||||
|   case Msg.message of | ||||
|     WM_CHAR: | ||||
|      begin | ||||
|        FillChar(event, SizeOf(TCefKeyEvent), 0); | ||||
|        event.kind := KEYEVENT_CHAR; | ||||
|        event.windows_key_code := Msg.wParam; | ||||
|        event.native_key_code := Msg.lParam; | ||||
|        chrmosr.SendKeyEvent(@event); | ||||
|      end; | ||||
|     WM_SYSCHAR : | ||||
|       if (Panel1.Focused or chrmosr.FrameIsFocused) and | ||||
|          (Msg.wParam in [VK_BACK..VK_HELP]) then | ||||
|         begin | ||||
|           TempEvent.kind                    := KEYEVENT_CHAR; | ||||
|           TempEvent.modifiers               := GetCefKeyboardModifiers(Msg.wParam, Msg.lParam); | ||||
|           TempEvent.windows_key_code        := Msg.wParam; | ||||
|           TempEvent.native_key_code         := Msg.lParam; | ||||
|           TempEvent.is_system_key           := ord(True); | ||||
|           TempEvent.character               := #0; | ||||
|           TempEvent.unmodified_character    := #0; | ||||
|           TempEvent.focus_on_editable_field := ord(False); | ||||
|  | ||||
|           chrmosr.SendKeyEvent(@TempEvent); | ||||
|           Handled := True; | ||||
|         end; | ||||
|  | ||||
|     WM_SYSKEYDOWN : | ||||
|       if (Panel1.Focused or chrmosr.FrameIsFocused) and | ||||
|          (Msg.wParam in [VK_BACK..VK_HELP]) then | ||||
|         begin | ||||
|           TempEvent.kind                    := KEYEVENT_RAWKEYDOWN; | ||||
|           TempEvent.modifiers               := GetCefKeyboardModifiers(Msg.wParam, Msg.lParam); | ||||
|           TempEvent.windows_key_code        := Msg.wParam; | ||||
|           TempEvent.native_key_code         := Msg.lParam; | ||||
|           TempEvent.is_system_key           := ord(True); | ||||
|           TempEvent.character               := #0; | ||||
|           TempEvent.unmodified_character    := #0; | ||||
|           TempEvent.focus_on_editable_field := ord(False); | ||||
|  | ||||
|           chrmosr.SendKeyEvent(@TempEvent); | ||||
|           Handled := True; | ||||
|         end; | ||||
|  | ||||
|     WM_SYSKEYUP : | ||||
|       if (Panel1.Focused or chrmosr.FrameIsFocused) and | ||||
|          (Msg.wParam in [VK_BACK..VK_HELP]) then | ||||
|         begin | ||||
|           TempEvent.kind                    := KEYEVENT_KEYUP; | ||||
|           TempEvent.modifiers               := GetCefKeyboardModifiers(Msg.wParam, Msg.lParam); | ||||
|           TempEvent.windows_key_code        := Msg.wParam; | ||||
|           TempEvent.native_key_code         := Msg.lParam; | ||||
|           TempEvent.is_system_key           := ord(True); | ||||
|           TempEvent.character               := #0; | ||||
|           TempEvent.unmodified_character    := #0; | ||||
|           TempEvent.focus_on_editable_field := ord(False); | ||||
|  | ||||
|           chrmosr.SendKeyEvent(@TempEvent); | ||||
|           Handled := True; | ||||
|         end; | ||||
|  | ||||
|     WM_KEYDOWN : | ||||
|       if (Panel1.Focused or chrmosr.FrameIsFocused) and | ||||
|          (Msg.wParam in [VK_BACK..VK_HELP]) then | ||||
|         begin | ||||
|           TempEvent.kind                    := KEYEVENT_RAWKEYDOWN; | ||||
|           TempEvent.modifiers               := GetCefKeyboardModifiers(Msg.wParam, Msg.lParam); | ||||
|           TempEvent.windows_key_code        := Msg.wParam; | ||||
|           TempEvent.native_key_code         := Msg.lParam; | ||||
|           TempEvent.is_system_key           := ord(False); | ||||
|           TempEvent.character               := #0; | ||||
|           TempEvent.unmodified_character    := #0; | ||||
|           TempEvent.focus_on_editable_field := ord(False); | ||||
|  | ||||
|           chrmosr.SendKeyEvent(@TempEvent); | ||||
|           Handled := True; | ||||
|         end; | ||||
|  | ||||
|     WM_KEYUP : | ||||
|       if (Panel1.Focused or chrmosr.FrameIsFocused) and | ||||
|          (Msg.wParam in [VK_BACK..VK_HELP]) then | ||||
|         begin | ||||
|           TempEvent.kind                    := KEYEVENT_KEYUP; | ||||
|           TempEvent.modifiers               := GetCefKeyboardModifiers(Msg.wParam, Msg.lParam); | ||||
|           TempEvent.windows_key_code        := Msg.wParam; | ||||
|           TempEvent.native_key_code         := Msg.lParam; | ||||
|           TempEvent.is_system_key           := ord(False); | ||||
|           TempEvent.character               := #0; | ||||
|           TempEvent.unmodified_character    := #0; | ||||
|           TempEvent.focus_on_editable_field := ord(False); | ||||
|  | ||||
|           chrmosr.SendKeyEvent(@TempEvent); | ||||
|           Handled := True; | ||||
|         end; | ||||
|  | ||||
|     WM_CHAR : | ||||
|       if Panel1.Focused or chrmosr.FrameIsFocused then | ||||
|         begin | ||||
|           TempEvent.kind                    := KEYEVENT_CHAR; | ||||
|           TempEvent.modifiers               := GetCefKeyboardModifiers(Msg.wParam, Msg.lParam); | ||||
|           TempEvent.windows_key_code        := Msg.wParam; | ||||
|           TempEvent.native_key_code         := Msg.lParam; | ||||
|           TempEvent.is_system_key           := ord(False); | ||||
|           TempEvent.character               := #0; | ||||
|           TempEvent.unmodified_character    := #0; | ||||
|           TempEvent.focus_on_editable_field := ord(False); | ||||
|  | ||||
|           chrmosr.SendKeyEvent(@TempEvent); | ||||
|           Handled := True; | ||||
|         end; | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.Button1Click(Sender: TObject); | ||||
| procedure TForm1.GoBtnClick(Sender: TObject); | ||||
| begin | ||||
|   chrmosr.LoadURL(Edit1.Text); | ||||
|   chrmosr.LoadURL(ComboBox1.Text); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrCursorChange(Sender: TObject; | ||||
|   const browser: ICefBrowser; cursor: HICON; cursorType: TCefCursorType; | ||||
|   const customCursorInfo: PCefCursorInfo); | ||||
| procedure TForm1.chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser); | ||||
| begin | ||||
|   case cursorType of | ||||
|     CT_POINTER: PaintBox.Cursor := crArrow; | ||||
|     CT_CROSS: PaintBox.Cursor:= crCross; | ||||
|     CT_HAND: PaintBox.Cursor := crHandPoint; | ||||
|     CT_IBEAM: PaintBox.Cursor := crIBeam; | ||||
|     CT_WAIT: PaintBox.Cursor := crHourGlass; | ||||
|     CT_HELP: PaintBox.Cursor := crHelp; | ||||
|     CT_EASTRESIZE: PaintBox.Cursor := crSizeWE; | ||||
|     CT_NORTHRESIZE: PaintBox.Cursor := crSizeNS; | ||||
|     CT_NORTHEASTRESIZE: PaintBox.Cursor:= crSizeNESW; | ||||
|     CT_NORTHWESTRESIZE: PaintBox.Cursor:= crSizeNWSE; | ||||
|     CT_SOUTHRESIZE: PaintBox.Cursor:= crSizeNS; | ||||
|     CT_SOUTHEASTRESIZE: PaintBox.Cursor:= crSizeNWSE; | ||||
|     CT_SOUTHWESTRESIZE: PaintBox.Cursor:= crSizeNESW; | ||||
|     CT_WESTRESIZE: PaintBox.Cursor := crSizeWE; | ||||
|     CT_NORTHSOUTHRESIZE: PaintBox.Cursor:= crSizeNS; | ||||
|     CT_EASTWESTRESIZE: PaintBox.Cursor := crSizeWE; | ||||
|     CT_NORTHEASTSOUTHWESTRESIZE: PaintBox.Cursor:= crSizeNESW; | ||||
|     CT_NORTHWESTSOUTHEASTRESIZE: PaintBox.Cursor:= crSizeNWSE; | ||||
|     CT_COLUMNRESIZE: PaintBox.Cursor:= crHSplit; | ||||
|     CT_ROWRESIZE: PaintBox.Cursor:= crVSplit; | ||||
|     CT_MOVE: PaintBox.Cursor := crSizeAll; | ||||
|     CT_PROGRESS: PaintBox.Cursor := crAppStart; | ||||
|     CT_NODROP: PaintBox.Cursor:= crNo; | ||||
|     CT_NONE: PaintBox.Cursor:= crNone; | ||||
|     CT_NOTALLOWED: PaintBox.Cursor:= crNo; | ||||
|   else | ||||
|     PaintBox.Cursor := crArrow; | ||||
|   end; | ||||
|   PostMessage(Handle, MINIBROWSER_CREATED, 0, 0); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrGetRootScreenRect(Sender: TObject; | ||||
|   const browser: ICefBrowser; rect: PCefRect; out Result: Boolean); | ||||
| procedure TForm1.chrmosrCursorChange(Sender : TObject; | ||||
|                                      const browser          : ICefBrowser; | ||||
|                                            cursor           : HICON; | ||||
|                                            cursorType       : TCefCursorType; | ||||
|                                      const customCursorInfo : PCefCursorInfo); | ||||
| begin | ||||
|   rect.x := 0; | ||||
|   rect.y := 0; | ||||
|   rect.width := PaintBox.Width; | ||||
|   PaintBox.Cursor := GefCursorToWindowsCursor(cursorType); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrGetRootScreenRect(Sender : TObject; | ||||
|                                           const browser : ICefBrowser; | ||||
|                                                 rect    : PCefRect; | ||||
|                                           out   Result  : Boolean); | ||||
| begin | ||||
|   rect.x      := 0; | ||||
|   rect.y      := 0; | ||||
|   rect.width  := PaintBox.Width; | ||||
|   rect.height := PaintBox.Height; | ||||
|   Result := True; | ||||
|   Result      := True; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrGetScreenPoint(Sender: TObject; | ||||
|   const browser: ICefBrowser; viewX, viewY: Integer; screenX, | ||||
|   screenY: PInteger; out Result: Boolean); | ||||
| procedure TForm1.chrmosrGetScreenPoint(Sender : TObject; | ||||
|                                        const browser : ICefBrowser; | ||||
|                                              viewX   : Integer; | ||||
|                                              viewY   : Integer; | ||||
|                                              screenX : PInteger; | ||||
|                                              screenY : PInteger; | ||||
|                                        out   Result  : Boolean); | ||||
| var | ||||
|   TempScreenPt, TempViewPt : TPoint; | ||||
| begin | ||||
| @@ -193,8 +267,10 @@ begin | ||||
|   Result       := True; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrGetViewRect(Sender: TObject; | ||||
|   const browser: ICefBrowser; rect: PCefRect; out Result: Boolean); | ||||
| procedure TForm1.chrmosrGetViewRect(Sender : TObject; | ||||
|                                     const browser : ICefBrowser; | ||||
|                                           rect    : PCefRect; | ||||
|                                     out   Result  : Boolean); | ||||
| begin | ||||
|   rect.x      := 0; | ||||
|   rect.y      := 0; | ||||
| @@ -203,10 +279,14 @@ begin | ||||
|   Result      := True; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrPaint(Sender: TObject; const browser: ICefBrowser; | ||||
|   kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; | ||||
|   const dirtyRects: PCefRectArray; const buffer: Pointer; width, | ||||
|   height: Integer); | ||||
| procedure TForm1.chrmosrPaint(Sender : TObject; | ||||
|                               const browser         : ICefBrowser; | ||||
|                                     kind            : TCefPaintElementType; | ||||
|                                     dirtyRectsCount : NativeUInt; | ||||
|                               const dirtyRects      : PCefRectArray; | ||||
|                               const buffer          : Pointer; | ||||
|                                     width           : Integer; | ||||
|                                     height          : Integer); | ||||
| var | ||||
|   src, dst: PByte; | ||||
|   offset, i, j, w: Integer; | ||||
| @@ -241,35 +321,38 @@ begin | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrPopupShow(Sender: TObject; | ||||
|   const browser: ICefBrowser; show: Boolean); | ||||
| procedure TForm1.chrmosrPopupShow(Sender : TObject; | ||||
|                                   const browser : ICefBrowser; | ||||
|                                         show : Boolean); | ||||
| begin | ||||
|   // TO DO : Needed to draw the "select" items | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrPopupSize(Sender: TObject; | ||||
|   const browser: ICefBrowser; const rect: PCefRect); | ||||
| procedure TForm1.chrmosrPopupSize(Sender : TObject; | ||||
|                                   const browser : ICefBrowser; | ||||
|                                   const rect    : PCefRect); | ||||
| begin | ||||
|   // TO DO : Needed to draw the "select" items | ||||
| end; | ||||
|  | ||||
| function TForm1.getModifiers(Shift: TShiftState): TCefEventFlags; | ||||
| begin | ||||
|   Result := []; | ||||
|   if ssShift in Shift then Include(Result, EVENTFLAG_SHIFT_DOWN); | ||||
|   if ssAlt in Shift then Include(Result, EVENTFLAG_ALT_DOWN); | ||||
|   if ssCtrl in Shift then Include(Result, EVENTFLAG_CONTROL_DOWN); | ||||
|   if ssLeft in Shift then Include(Result, EVENTFLAG_LEFT_MOUSE_BUTTON); | ||||
|   if ssRight in Shift then Include(Result, EVENTFLAG_RIGHT_MOUSE_BUTTON); | ||||
|   if ssMiddle in Shift then Include(Result, EVENTFLAG_MIDDLE_MOUSE_BUTTON); | ||||
|   Result := EVENTFLAG_NONE; | ||||
|  | ||||
|   if (ssShift  in Shift) then Result := Result or EVENTFLAG_SHIFT_DOWN; | ||||
|   if (ssAlt    in Shift) then Result := Result or EVENTFLAG_ALT_DOWN; | ||||
|   if (ssCtrl   in Shift) then Result := Result or EVENTFLAG_CONTROL_DOWN; | ||||
|   if (ssLeft   in Shift) then Result := Result or EVENTFLAG_LEFT_MOUSE_BUTTON; | ||||
|   if (ssRight  in Shift) then Result := Result or EVENTFLAG_RIGHT_MOUSE_BUTTON; | ||||
|   if (ssMiddle in Shift) then Result := Result or EVENTFLAG_MIDDLE_MOUSE_BUTTON; | ||||
| end; | ||||
|  | ||||
| function TForm1.GetButton(Button: TMouseButton): TCefMouseButtonType; | ||||
| begin | ||||
|   case Button of | ||||
|     TMouseButton.mbRight: Result := MBT_RIGHT; | ||||
|     TMouseButton.mbMiddle: Result := MBT_MIDDLE; | ||||
|     else  Result := MBT_LEFT; | ||||
|     TMouseButton.mbRight  : Result := MBT_RIGHT; | ||||
|     TMouseButton.mbMiddle : Result := MBT_MIDDLE; | ||||
|     else                    Result := MBT_LEFT; | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| @@ -287,8 +370,13 @@ begin | ||||
|   if (chrmosr <> nil) then chrmosr.NotifyMoveOrResizeStarted; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.FormAfterMonitorDpiChanged(Sender: TObject; OldDPI, | ||||
|   NewDPI: Integer); | ||||
| procedure TForm1.BrowserCreatedMsg(var aMessage : TMessage); | ||||
| begin | ||||
|   NavControlPnl.Enabled := True; | ||||
|   GoBtn.Click; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.FormAfterMonitorDpiChanged(Sender: TObject; OldDPI, NewDPI: Integer); | ||||
| begin | ||||
|   if (chrmosr <> nil) then | ||||
|     begin | ||||
| @@ -297,61 +385,93 @@ begin | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.FormShow(Sender: TObject); | ||||
| procedure TForm1.FormCreate(Sender: TObject); | ||||
| begin | ||||
|   chrmosr.Options.BackgroundColor := CefColorSetARGB($FF, $FF, $FF, $FF); // opaque white background color | ||||
|   chrmosr.CreateBrowser(nil, ''); | ||||
|   chrmosr.InitializeDragAndDrop(PaintBox); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.PaintBoxMouseDown(Sender: TObject; Button: TMouseButton; | ||||
|   Shift: TShiftState; X, Y: Integer); | ||||
| var | ||||
|   event: TCefMouseEvent; | ||||
| procedure TForm1.FormDestroy(Sender: TObject); | ||||
| begin | ||||
|   event.x := X; | ||||
|   event.y := Y; | ||||
|   event.modifiers := getModifiers(Shift); | ||||
|   chrmosr.SendMouseClickEvent(@event, GetButton(Button), False, 1); | ||||
|   chrmosr.ShutdownDragAndDrop; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.PaintBoxMouseMove(Sender: TObject; Shift: TShiftState; X, | ||||
|   Y: Integer); | ||||
| var | ||||
|   event: TCefMouseEvent; | ||||
| procedure TForm1.FormHide(Sender: TObject); | ||||
| begin | ||||
|   event.x := X; | ||||
|   event.y := Y; | ||||
|   event.modifiers := getModifiers(Shift); | ||||
|   chrmosr.SendMouseMoveEvent(@event, not PaintBox.MouseInControl); | ||||
|   chrmosr.SendFocusEvent(False); | ||||
|   chrmosr.WasHidden(True); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.PaintBoxMouseUp(Sender: TObject; Button: TMouseButton; | ||||
|   Shift: TShiftState; X, Y: Integer); | ||||
| var | ||||
|   event: TCefMouseEvent; | ||||
| procedure TForm1.FormShow(Sender: TObject); | ||||
| begin | ||||
|   event.x := X; | ||||
|   event.y := Y; | ||||
|   event.modifiers := getModifiers(Shift); | ||||
|   chrmosr.SendMouseClickEvent(@event, GetButton(Button), True, 1); | ||||
|   chrmosr.WasHidden(False); | ||||
|   chrmosr.SendFocusEvent(True); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.PaintBoxMouseWheel(Sender: TObject; Shift: TShiftState; | ||||
|   WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); | ||||
| var | ||||
|   event: TCefMouseEvent; | ||||
| procedure TForm1.PaintBoxClick(Sender: TObject); | ||||
| begin | ||||
|   event.x := MousePos.X; | ||||
|   event.y := MousePos.Y; | ||||
|   event.modifiers := getModifiers(Shift); | ||||
|   chrmosr.SendMouseWheelEvent(@event, 0, WheelDelta); | ||||
|   Panel1.SetFocus; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.PaintBoxMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); | ||||
| var | ||||
|   TempEvent : TCefMouseEvent; | ||||
| begin | ||||
|   TempEvent.x         := X; | ||||
|   TempEvent.y         := Y; | ||||
|   TempEvent.modifiers := getModifiers(Shift); | ||||
|   chrmosr.SendMouseClickEvent(@TempEvent, GetButton(Button), False, 1); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.PaintBoxMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); | ||||
| var | ||||
|   TempEvent : TCefMouseEvent; | ||||
| begin | ||||
|   TempEvent.x         := X; | ||||
|   TempEvent.y         := Y; | ||||
|   TempEvent.modifiers := getModifiers(Shift); | ||||
|   chrmosr.SendMouseMoveEvent(@TempEvent, not PaintBox.MouseInControl); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.PaintBoxMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); | ||||
| var | ||||
|   TempEvent : TCefMouseEvent; | ||||
| begin | ||||
|   TempEvent.x         := X; | ||||
|   TempEvent.y         := Y; | ||||
|   TempEvent.modifiers := getModifiers(Shift); | ||||
|   chrmosr.SendMouseClickEvent(@TempEvent, GetButton(Button), True, 1); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.PaintBoxMouseWheel(Sender      : TObject; | ||||
|                                     Shift       : TShiftState; | ||||
|                                     WheelDelta  : Integer; | ||||
|                                     MousePos    : TPoint; | ||||
|                                     var Handled : Boolean); | ||||
| var | ||||
|   TempEvent : TCefMouseEvent; | ||||
| begin | ||||
|   TempEvent.x         := MousePos.X; | ||||
|   TempEvent.y         := MousePos.Y; | ||||
|   TempEvent.modifiers := getModifiers(Shift); | ||||
|   chrmosr.SendMouseWheelEvent(@TempEvent, 0, WheelDelta); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.PaintBoxResize(Sender: TObject); | ||||
| begin | ||||
|   PaintBox.Buffer.SetSize(PaintBox.Width, PaintBox.Height); | ||||
|   chrmosr.WasResized; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.Panel1Enter(Sender: TObject); | ||||
| begin | ||||
|   chrmosr.SendFocusEvent(True); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.Panel1Exit(Sender: TObject); | ||||
| begin | ||||
|   chrmosr.SendFocusEvent(False); | ||||
| end; | ||||
|  | ||||
| end. | ||||
|   | ||||
| @@ -2,11 +2,11 @@ | ||||
| <BorlandProject> | ||||
| 	<Transactions> | ||||
|     <Transaction>2017/05/21 15:39:53.000.029,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/05/21 15:40:36.000.672,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\uMainForm.pas</Transaction> | ||||
|     <Transaction>2017/05/21 15:40:36.000.672,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\uMainForm.dfm</Transaction> | ||||
|     <Transaction>2017/05/21 15:40:43.000.627,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\ToolBoxBrowser.dproj</Transaction> | ||||
|     <Transaction>2017/05/21 15:40:36.000.672,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\uMainForm.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/05/21 15:40:36.000.672,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\uMainForm.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm</Transaction> | ||||
|     <Transaction>2017/05/21 15:40:43.000.627,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\ToolBoxBrowser.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj</Transaction> | ||||
|     <Transaction>2017/05/21 15:44:20.000.154,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\Unit2.pas</Transaction> | ||||
|     <Transaction>2017/05/21 15:46:19.000.247,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\Unit2.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\uChildForm.dfm</Transaction> | ||||
|     <Transaction>2017/05/21 15:46:19.000.247,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\Unit2.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\uChildForm.pas</Transaction> | ||||
|     <Transaction>2017/05/21 15:46:19.000.247,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\uChildForm.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\Unit2.pas</Transaction> | ||||
|     <Transaction>2017/05/21 15:46:19.000.247,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\uChildForm.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\ToolBoxBrowser\Unit2.dfm</Transaction> | ||||
|   </Transactions> | ||||
| </BorlandProject> | ||||
|   | ||||
| @@ -45,15 +45,16 @@ BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0 | ||||
| TopPanelSize=0 | ||||
| LeftPanelSize=0 | ||||
| RightPanelSize=2000 | ||||
| RightPanelClients=DockSite2,DockSite4 | ||||
| RightPanelData=00000800010100000000551500000000000001D00700000000000001000000004312000009000000446F636B536974653201000000009D1D000009000000446F636B5369746534FFFFFFFF | ||||
| BottomPanelSize=1475 | ||||
| RightPanelClients=DockSite2 | ||||
| RightPanelData=00000800010100000000AA1900000000000001D0070000000000000100000000A123000009000000446F636B5369746532FFFFFFFF | ||||
| BottomPanelSize=0 | ||||
| BottomPanelClients=DockSite1,MessageView | ||||
| BottomPanelData=0000080001020100000009000000446F636B53697465313B3600000000000002C30500000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF | ||||
| BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D3B3600000000000002820F000000000000FFFFFFFF | ||||
| BottomMiddlePanelSize=0 | ||||
| BottomMiddlePanelClients=DockSite0,GraphDrawingModel | ||||
| BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF | ||||
| TabDockLeftClients=PropertyInspector=0,DockSite3=1 | ||||
| TabDockLeftClients=DockSite3=0,PropertyInspector=1 | ||||
| TabDockRightClients=DockSite4=0 | ||||
|  | ||||
| [View0] | ||||
| CustomEditViewType=TWelcomePageView | ||||
| @@ -84,11 +85,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=13602 | ||||
| Dockable=1 | ||||
| @@ -132,11 +133,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=4226 | ||||
| Height=8868 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4226 | ||||
| ClientHeight=8868 | ||||
| TBDockHeight=5897 | ||||
| LRDockWidth=2352 | ||||
| Dockable=1 | ||||
| @@ -145,18 +146,18 @@ StayOnTop=0 | ||||
| [MessageView] | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=10000 | ||||
| Height=1267 | ||||
| Width=2773 | ||||
| Height=3845 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=10000 | ||||
| ClientHeight=1267 | ||||
| TBDockHeight=1267 | ||||
| ClientWidth=2773 | ||||
| ClientHeight=3845 | ||||
| TBDockHeight=3845 | ||||
| LRDockWidth=2773 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -169,12 +170,12 @@ Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=2747 | ||||
| Width=1875 | ||||
| Height=6693 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=2747 | ||||
| ClientWidth=1875 | ||||
| ClientHeight=6693 | ||||
| TBDockHeight=7152 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| @@ -224,8 +225,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-148 | ||||
| Top=-137 | ||||
| Left=-8 | ||||
| Top=-30 | ||||
| Width=1844 | ||||
| Height=3139 | ||||
| MaxLeft=-1 | ||||
| @@ -281,19 +282,19 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=362 | ||||
| Left=78 | ||||
| Top=386 | ||||
| Width=1898 | ||||
| Height=5370 | ||||
| Height=7164 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=5370 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=7164 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| SplitPos=111 | ||||
| SplitPos=136 | ||||
|  | ||||
| [frmDesignPreview] | ||||
| PercentageSizes=1 | ||||
| @@ -304,11 +305,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=5964 | ||||
| LRDockWidth=2508 | ||||
| Dockable=1 | ||||
| @@ -320,8 +321,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-898 | ||||
| Top=-137 | ||||
| Left=-946 | ||||
| Top=1 | ||||
| Width=2844 | ||||
| Height=6200 | ||||
| MaxLeft=-1 | ||||
| @@ -339,8 +340,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-1026 | ||||
| Top=-137 | ||||
| Left=-8 | ||||
| Top=287 | ||||
| Width=273 | ||||
| Height=359 | ||||
| MaxLeft=-1 | ||||
| @@ -364,11 +365,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=415 | ||||
| LRDockWidth=4953 | ||||
| Dockable=1 | ||||
| @@ -383,11 +384,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=7406 | ||||
| Dockable=1 | ||||
| @@ -406,11 +407,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1536 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -425,11 +426,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=2063 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -444,11 +445,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2336 | ||||
| Height=1177 | ||||
| Height=942 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2336 | ||||
| ClientHeight=1177 | ||||
| ClientHeight=942 | ||||
| TBDockHeight=2321 | ||||
| LRDockWidth=2820 | ||||
| Dockable=1 | ||||
| @@ -509,11 +510,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=4888 | ||||
| LRDockWidth=7148 | ||||
| Dockable=1 | ||||
| @@ -525,8 +526,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Left=249 | ||||
| Top=709 | ||||
| Width=2859 | ||||
| Height=3206 | ||||
| MaxLeft=-1 | ||||
| @@ -547,11 +548,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1547 | ||||
| LRDockWidth=8742 | ||||
| Dockable=1 | ||||
| @@ -572,12 +573,12 @@ Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=1898 | ||||
| Height=9170 | ||||
| Width=1773 | ||||
| Height=6738 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=9170 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=3677 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| @@ -592,11 +593,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=4888 | ||||
| LRDockWidth=5305 | ||||
| Dockable=1 | ||||
| @@ -657,14 +658,14 @@ Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Top=23 | ||||
| Width=3820 | ||||
| Height=1424 | ||||
| Height=874 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1424 | ||||
| TBDockHeight=1424 | ||||
| ClientHeight=874 | ||||
| TBDockHeight=874 | ||||
| LRDockWidth=3820 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -683,12 +684,12 @@ State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=2000 | ||||
| Height=4529 | ||||
| Height=9170 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4529 | ||||
| TBDockHeight=7164 | ||||
| ClientHeight=9170 | ||||
| TBDockHeight=7119 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -705,13 +706,13 @@ Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Top=0 | ||||
| Width=1898 | ||||
| Height=9170 | ||||
| Height=7164 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=9170 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=7164 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| @@ -721,22 +722,22 @@ ActiveTabID=StructureView | ||||
| TabDockClients=StructureView,ClassBrowserTool | ||||
|  | ||||
| [DockSite4] | ||||
| HostDockSite=DockRightPanel | ||||
| HostDockSite=RightTabDock | ||||
| DockSiteType=1 | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=454 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=2747 | ||||
| Height=7119 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=2747 | ||||
| TBDockHeight=7164 | ||||
| ClientWidth=1875 | ||||
| ClientHeight=6693 | ||||
| TBDockHeight=7119 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
|   | ||||
| @@ -3,7 +3,7 @@ EditorSecs=684 | ||||
| DesignerSecs=16 | ||||
| InspectorSecs=1 | ||||
| CompileSecs=22006 | ||||
| OtherSecs=57 | ||||
| OtherSecs=58 | ||||
| StartTime=21/05/2017 17:35:40 | ||||
| RealKeys=0 | ||||
| EffectiveKeys=0 | ||||
|   | ||||
| @@ -151,6 +151,8 @@ contains | ||||
|   uCEFChromiumWindow in 'uCEFChromiumWindow.pas', | ||||
|   uCEFBaseRefCounted in 'uCEFBaseRefCounted.pas', | ||||
|   uCEFBaseScopedWrapper in 'uCEFBaseScopedWrapper.pas', | ||||
|   uCEFAccessibilityHandler in 'uCEFAccessibilityHandler.pas'; | ||||
|   uCEFAccessibilityHandler in 'uCEFAccessibilityHandler.pas', | ||||
|   uOLEDragAndDrop in 'uOLEDragAndDrop.pas', | ||||
|   uCEFDragAndDropMgr in 'uCEFDragAndDropMgr.pas'; | ||||
|  | ||||
| end. | ||||
|   | ||||
| @@ -210,6 +210,8 @@ | ||||
|         <DCCReference Include="uCEFBaseRefCounted.pas"/> | ||||
|         <DCCReference Include="uCEFBaseScopedWrapper.pas"/> | ||||
|         <DCCReference Include="uCEFAccessibilityHandler.pas"/> | ||||
|         <DCCReference Include="uOLEDragAndDrop.pas"/> | ||||
|         <DCCReference Include="uCEFDragAndDropMgr.pas"/> | ||||
|         <BuildConfiguration Include="Release"> | ||||
|             <Key>Cfg_2</Key> | ||||
|             <CfgParent>Base</CfgParent> | ||||
|   | ||||
| @@ -2,288 +2,289 @@ | ||||
| <BorlandProject> | ||||
| 	<Transactions> | ||||
|     <Transaction>2016/11/03 13:34:24.000.622,=rtl.dcp</Transaction> | ||||
|     <Transaction>2016/11/03 13:36:50.000.899,C:\Program Files\Embarcadero\Studio\17.0\cef3\cef3.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Package1.dproj</Transaction> | ||||
|     <Transaction>2016/11/03 13:36:50.000.899,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Package1.dproj=C:\Program Files\Embarcadero\Studio\17.0\cef3\cef3.dproj</Transaction> | ||||
|     <Transaction>2016/11/03 13:37:44.000.301,=C:\Program Files\Embarcadero\Studio\17.0\cef3\ceferr.pas</Transaction> | ||||
|     <Transaction>2016/11/03 13:37:45.000.236,=C:\Program Files\Embarcadero\Studio\17.0\cef3\cefreg.pas</Transaction> | ||||
|     <Transaction>2016/11/03 13:37:45.000.074,=C:\Program Files\Embarcadero\Studio\17.0\cef3\cefgui.pas</Transaction> | ||||
|     <Transaction>2016/11/03 13:37:45.000.219,=C:\Program Files\Embarcadero\Studio\17.0\cef3\ceflib.pas</Transaction> | ||||
|     <Transaction>2016/11/03 13:37:45.000.236,=C:\Program Files\Embarcadero\Studio\17.0\cef3\cefreg.pas</Transaction> | ||||
|     <Transaction>2016/11/03 13:37:47.000.876,=C:\Program Files\Embarcadero\Studio\17.0\cef3\cefvcl.pas</Transaction> | ||||
|     <Transaction>2016/11/03 13:42:03.000.211,=vcl.dcp</Transaction> | ||||
|     <Transaction>2016/11/03 14:22:14.000.293,C:\Program Files\Embarcadero\Studio\17.0\cef3\ceferr.pas=</Transaction> | ||||
|     <Transaction>2016/11/03 14:22:31.000.065,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/03 14:23:07.000.607,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFConstants.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/03 14:23:07.000.607,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFConstants.pas</Transaction> | ||||
|     <Transaction>2016/11/03 16:02:18.000.380,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/03 16:02:54.000.678,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFLibrary.pas</Transaction> | ||||
|     <Transaction>2016/11/03 19:41:00.000.323,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFLibrary.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFTypes.pas</Transaction> | ||||
|     <Transaction>2016/11/03 16:02:54.000.678,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFLibrary.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/03 19:41:00.000.323,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFTypes.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFLibrary.pas</Transaction> | ||||
|     <Transaction>2016/11/03 19:41:47.000.437,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/03 19:42:09.000.623,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFInterfaces.pas</Transaction> | ||||
|     <Transaction>2016/11/03 19:42:09.000.623,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFInterfaces.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/03 19:47:24.000.150,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/03 19:47:36.000.023,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFMiscFunctions.pas</Transaction> | ||||
|     <Transaction>2016/11/03 19:47:36.000.023,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFMiscFunctions.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 09:38:54.000.499,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 09:39:27.000.208,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFLibFunctions.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:17:03.000.353,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFHandlers.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\cefgui.pas</Transaction> | ||||
|     <Transaction>2016/11/04 09:39:27.000.208,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFLibFunctions.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:17:03.000.353,C:\Program Files\Embarcadero\Studio\17.0\cef3\cefgui.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFHandlers.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:19:09.000.192,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:19:19.000.721,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFApplication.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:19:19.000.721,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFApplication.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:28:32.000.523,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:28:45.000.314,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFBase.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:28:45.000.314,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFBase.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:53:47.000.492,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:54:04.000.082,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSchemeRegistrar.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:54:04.000.082,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSchemeRegistrar.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:57:19.000.058,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:57:35.000.208,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCommandLine.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 10:57:35.000.208,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCommandLine.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:12:13.000.709,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:12:22.000.981,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFClient.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:12:22.000.981,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFClient.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:18:45.000.858,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:19:23.000.685,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFProcessMessage.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:19:23.000.685,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFProcessMessage.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:22:59.000.325,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:23:09.000.748,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFBrowser.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:23:09.000.748,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFBrowser.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:30:13.000.870,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:30:22.000.479,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFListValue.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:30:22.000.479,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFListValue.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:33:29.000.686,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:33:40.000.124,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFBinaryValue.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:33:40.000.124,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFBinaryValue.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:36:10.000.379,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:36:37.000.046,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFValue.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:36:37.000.046,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFValue.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:40:42.000.080,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:41:02.000.855,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDictionaryValue.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 11:41:02.000.855,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDictionaryValue.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:04:55.000.807,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:05:21.000.299,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFastDownloadImageCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:05:37.000.607,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFastDownloadImage.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFastDownloadImageCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:10:01.000.351,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDownloadImage.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFastDownloadImage.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:10:25.000.976,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDownloadImageCallBack.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDownloadImage.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:05:21.000.299,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFastDownloadImageCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:05:37.000.607,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFastDownloadImageCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFastDownloadImage.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:10:01.000.351,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFastDownloadImage.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDownloadImage.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:10:25.000.976,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDownloadImage.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDownloadImageCallBack.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:12:39.000.648,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:12:49.000.133,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFrame.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:12:49.000.133,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFrame.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:16:41.000.794,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:16:57.000.667,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFPDFPrintCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:16:57.000.667,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFPDFPrintCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:21:00.000.581,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:21:15.000.075,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRunFileDialogCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:21:15.000.075,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRunFileDialogCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:25:08.000.825,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:25:24.000.237,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRequestContext.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:25:24.000.237,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRequestContext.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:31:41.000.426,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:31:57.000.575,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFNavigationEntryVisitor.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:31:57.000.575,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFNavigationEntryVisitor.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:37:26.000.233,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:37:41.000.439,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFStringVisitor.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:37:41.000.439,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFStringVisitor.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:41:15.000.143,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:41:29.000.653,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8Context.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:41:29.000.653,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8Context.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:44:15.000.121,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:44:21.000.835,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDomVisitor.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:44:21.000.835,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDomVisitor.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:47:43.000.602,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:47:55.000.980,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFNavigationEntry.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:47:55.000.980,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFNavigationEntry.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:54:00.000.201,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:54:11.000.315,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCookieManager.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:54:11.000.315,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCookieManager.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:57:30.000.891,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:57:42.000.499,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCompletionCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 12:57:42.000.499,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCompletionCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 13:01:09.000.833,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 13:01:23.000.562,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRequestContextHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 13:01:23.000.562,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRequestContextHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 13:57:45.000.846,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 13:57:59.000.369,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFWebPluginInfo.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 13:57:59.000.369,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFWebPluginInfo.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:31:30.000.550,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:31:41.000.938,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDomDocument.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:31:41.000.938,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDomDocument.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:34:17.000.090,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:34:28.000.129,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDomNode.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:34:28.000.129,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDomNode.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:37:55.000.209,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:38:03.000.057,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8Value.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:38:03.000.057,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8Value.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:41:40.000.277,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:41:59.000.136,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFV8Accessor.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:42:16.000.591,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFastv8Accessor.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFV8Accessor.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:42:25.000.676,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8Accessor.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFastv8Accessor.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:22:35.000.321,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromium.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\cefvcl.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:41:59.000.136,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFV8Accessor.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:42:16.000.591,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFV8Accessor.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFastv8Accessor.pas</Transaction> | ||||
|     <Transaction>2016/11/04 14:42:25.000.676,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFastv8Accessor.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8Accessor.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:22:35.000.321,C:\Program Files\Embarcadero\Studio\17.0\cef3\cefvcl.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromium.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:35:00.000.300,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:35:10.000.181,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFLoadHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:35:10.000.181,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFLoadHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:41:55.000.278,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:42:06.000.032,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFocusHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:42:06.000.032,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFocusHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:45:35.000.950,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:45:45.000.999,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFContextMenuHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:45:45.000.999,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFContextMenuHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:50:29.000.265,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:50:38.000.989,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDialogHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:50:38.000.989,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDialogHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:56:26.000.967,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:56:35.000.859,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFKeyboardHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:56:35.000.859,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFKeyboardHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:59:45.000.629,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:59:55.000.903,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDisplayHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 15:59:55.000.903,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDisplayHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:02:33.000.750,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:02:43.000.771,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDownloadHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:02:43.000.771,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDownloadHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:05:14.000.727,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:05:25.000.707,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFGeolocationHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:05:25.000.707,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFGeolocationHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:07:34.000.747,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:07:48.000.604,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFJsDialogHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:07:48.000.604,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFJsDialogHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:10:46.000.310,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:10:57.000.068,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFLifeSpanHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:10:57.000.068,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFLifeSpanHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:14:08.000.188,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:14:20.000.442,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRequestHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:14:20.000.442,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRequestHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:18:01.000.623,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:18:07.000.730,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRenderHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:18:07.000.730,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRenderHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:21:06.000.326,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:21:15.000.423,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDragHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:27:29.000.133,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFindHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFHandlers.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:21:15.000.423,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDragHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:27:29.000.133,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFHandlers.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFindHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:29:59.000.889,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:30:12.000.364,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFPostData.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:30:12.000.364,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFPostData.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:32:14.000.814,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:32:25.000.911,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFPostDataElement.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:32:25.000.911,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFPostDataElement.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:33:41.000.767,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:33:51.000.107,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRequest.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:33:51.000.107,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRequest.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:35:36.000.010,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:35:50.000.837,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFStreamReader.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:35:50.000.837,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFStreamReader.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:37:53.000.753,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:38:01.000.643,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFWriteHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:38:01.000.643,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFWriteHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:39:57.000.905,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:40:04.000.132,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFStreamWriter.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:40:04.000.132,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFStreamWriter.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:41:56.000.888,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:42:13.000.418,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8StackFrame.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:42:13.000.418,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8StackFrame.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:43:23.000.259,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:43:31.000.890,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8StackTrace.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:43:31.000.890,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8StackTrace.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:45:02.000.388,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:45:15.000.769,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8Handler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:45:15.000.769,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8Handler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:47:31.000.384,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:47:43.000.976,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRequestCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:47:43.000.976,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRequestCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:48:49.000.916,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:49:13.000.169,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCustomStreamReader.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:49:13.000.169,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCustomStreamReader.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:52:24.000.501,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:54:53.000.505,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:54:53.000.505,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:57:17.000.239,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:57:26.000.077,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFResourceHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 16:57:26.000.077,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFResourceHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:00:50.000.674,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:00:59.000.259,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSchemeHandlerFactory.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:00:59.000.259,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSchemeHandlerFactory.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:03:15.000.546,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:05:49.000.016,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFTask.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:05:49.000.016,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFTask.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:10:43.000.387,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:10:57.000.795,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFTaskRunner.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:10:57.000.795,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFTaskRunner.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:11:52.000.079,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:11:59.000.503,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFStringMap.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:11:59.000.503,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFStringMap.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:13:03.000.928,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:13:12.000.687,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFStringMultimap.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:13:12.000.687,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFStringMultimap.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:15:01.000.582,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:15:12.000.909,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFXmlReader.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:15:12.000.909,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFXmlReader.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:16:26.000.528,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:16:34.000.014,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFZipReader.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:16:34.000.014,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFZipReader.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:17:43.000.074,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:17:51.000.944,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFResponse.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:17:51.000.944,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFResponse.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:29:30.000.463,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:29:40.000.733,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCookieVisitor.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:29:40.000.733,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCookieVisitor.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:32:01.000.224,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:32:07.000.583,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFV8Exception.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:32:07.000.583,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFV8Exception.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:34:32.000.893,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:34:39.000.833,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFResourceBundleHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:34:39.000.833,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFResourceBundleHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:38:58.000.648,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:39:04.000.466,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSetCookieCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:39:04.000.466,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSetCookieCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:40:44.000.949,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:40:57.000.165,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDeleteCookiesCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:40:57.000.165,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDeleteCookiesCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:43:27.000.412,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:43:42.000.253,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDownLoadItem.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:43:42.000.253,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDownLoadItem.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:45:13.000.508,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:45:19.000.703,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFBeforeDownloadCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:45:19.000.703,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFBeforeDownloadCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:46:27.000.140,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:46:38.000.480,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDownloadItemCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:46:38.000.480,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDownloadItemCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:49:03.000.980,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:49:13.000.577,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFAuthCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:49:13.000.577,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFAuthCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:50:22.000.655,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:50:32.000.879,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFJsDialogCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:50:32.000.879,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFJsDialogCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:51:12.000.076,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:51:18.000.891,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFGeolocationCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:51:18.000.891,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFGeolocationCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:52:26.000.379,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:52:38.000.008,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFContextMenuParams.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:52:38.000.008,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFContextMenuParams.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:53:51.000.704,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:53:59.000.469,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFMenuModel.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:53:59.000.469,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFMenuModel.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:55:42.000.326,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:55:54.000.047,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFBrowserProcessHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:55:54.000.047,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFBrowserProcessHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:57:33.000.807,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:57:44.000.320,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRenderProcessHandler.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 17:57:44.000.320,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRenderProcessHandler.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:01:03.000.908,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:01:16.000.502,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFUrlrequestClient.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:01:16.000.502,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFUrlrequestClient.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:03:22.000.002,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:03:36.000.694,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFUrlRequest.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:03:36.000.694,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFUrlRequest.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:04:54.000.070,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:05:01.000.724,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFWebPluginInfoVisitor.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:05:01.000.724,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFWebPluginInfoVisitor.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:08:01.000.312,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:08:10.000.190,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFWebPluginUnstableCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:08:10.000.190,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFWebPluginUnstableCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:09:22.000.047,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:09:32.000.833,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFEndTracingCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:09:32.000.833,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFEndTracingCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:10:56.000.167,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:11:03.000.863,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFGetGeolocationCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:11:03.000.863,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFGetGeolocationCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:11:49.000.619,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:11:58.000.315,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFileDialogCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:11:58.000.315,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFFileDialogCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:13:17.000.596,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:13:28.000.975,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDragData.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:13:28.000.975,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFDragData.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:14:46.000.315,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:14:55.000.027,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFResolveCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:14:55.000.027,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFResolveCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:17:10.000.544,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:17:23.000.918,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFPrintSettings.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:17:23.000.918,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFPrintSettings.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:18:17.000.655,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:18:25.000.031,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSslCertPrincipal.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:18:25.000.031,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSslCertPrincipal.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:19:36.000.246,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:19:49.000.081,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSslInfo.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:19:49.000.081,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSslInfo.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:21:23.000.319,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:21:29.000.499,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRunContextMenuCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:21:29.000.499,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRunContextMenuCallback.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:22:54.000.779,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:23:07.000.660,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFResourceBundle.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:23:07.000.660,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFResourceBundle.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:24:23.000.928,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:24:31.000.808,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFResponseFilter.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:24:31.000.808,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFResponseFilter.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:25:31.000.691,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:25:41.000.021,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFImage.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:25:41.000.021,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFImage.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:26:54.000.263,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:27:04.000.226,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFMenuModelDelegate.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:27:04.000.226,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFMenuModelDelegate.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:28:19.000.494,C:\Program Files\Embarcadero\Studio\17.0\cef3\ceflib.pas=</Transaction> | ||||
|     <Transaction>2016/11/04 18:31:57.000.277,C:\Program Files\Embarcadero\Studio\17.0\cef3\cefreg.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uRegister.pas</Transaction> | ||||
|     <Transaction>2016/11/04 18:31:57.000.277,C:\Program Files\Embarcadero\Studio\17.0\cef3\uRegister.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\cefreg.pas</Transaction> | ||||
|     <Transaction>2016/11/05 09:18:32.000.021,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/05 09:18:43.000.557,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8Types.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/05 09:41:11.000.609,C:\Program Files\Embarcadero\Studio\17.0\cef3\uRegister.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRegisterComponents.pas</Transaction> | ||||
|     <Transaction>2016/11/05 09:18:43.000.557,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8Types.pas</Transaction> | ||||
|     <Transaction>2016/11/05 09:41:11.000.609,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFRegisterComponents.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uRegister.pas</Transaction> | ||||
|     <Transaction>2016/11/06 17:42:31.000.412,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/06 17:42:57.000.570,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCookieDeleterTask.pas</Transaction> | ||||
|     <Transaction>2016/11/06 17:42:57.000.570,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCookieDeleterTask.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/06 17:57:18.000.164,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFCookieDeleterTask.pas=</Transaction> | ||||
|     <Transaction>2016/11/13 17:16:54.000.597,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/13 17:17:19.000.616,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumOSR.pas</Transaction> | ||||
|     <Transaction>2016/11/13 17:17:19.000.616,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumOSR.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/13 18:46:07.000.526,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/13 18:52:50.000.372,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumDevTools.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/13 18:52:50.000.372,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumDevTools.pas</Transaction> | ||||
|     <Transaction>2016/11/14 14:57:55.000.572,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumOSR.pas=</Transaction> | ||||
|     <Transaction>2016/11/25 09:35:30.000.156,=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumOSR.pas</Transaction> | ||||
|     <Transaction>2016/11/25 09:39:41.000.590,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumOSR.pas=</Transaction> | ||||
|     <Transaction>2016/11/29 09:52:14.000.850,=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumOSR.pas</Transaction> | ||||
|     <Transaction>2016/11/29 10:05:42.000.033,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/29 10:06:49.000.745,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumEvents.pas</Transaction> | ||||
|     <Transaction>2016/11/29 10:06:49.000.745,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumEvents.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/29 10:08:16.000.524,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/29 10:10:28.000.078,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumOptions.pas</Transaction> | ||||
|     <Transaction>2016/11/29 10:10:28.000.078,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumOptions.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/29 10:11:26.000.030,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/29 10:12:11.000.187,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumFontOptions.pas</Transaction> | ||||
|     <Transaction>2016/11/29 10:12:11.000.187,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumFontOptions.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/29 10:14:39.000.549,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/29 10:15:46.000.466,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFPDFPrintOptions.pas</Transaction> | ||||
|     <Transaction>2016/11/29 11:35:06.000.964,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumOSR.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumBase.pas</Transaction> | ||||
|     <Transaction>2016/11/29 10:15:46.000.466,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFPDFPrintOptions.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/29 11:35:06.000.964,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumBase.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumOSR.pas</Transaction> | ||||
|     <Transaction>2016/11/29 11:35:58.000.919,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromium.pas=</Transaction> | ||||
|     <Transaction>2016/11/29 11:36:22.000.935,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumBase.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromium.pas</Transaction> | ||||
|     <Transaction>2016/11/29 11:41:17.000.365,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumDevTools.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFWindowParent.pas</Transaction> | ||||
|     <Transaction>2016/11/29 11:36:22.000.935,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromium.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumBase.pas</Transaction> | ||||
|     <Transaction>2016/11/29 11:41:17.000.365,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFWindowParent.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumDevTools.pas</Transaction> | ||||
|     <Transaction>2016/11/29 14:26:03.000.580,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/29 14:38:08.000.147,C:\Program Files\Embarcadero\Studio\17.0\cef3\TCEFChromiumWindow.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/11/29 14:41:18.000.620,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumWindow.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\TCEFChromiumWindow.pas</Transaction> | ||||
|     <Transaction>2016/11/29 14:38:08.000.147,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\TCEFChromiumWindow.pas</Transaction> | ||||
|     <Transaction>2016/11/29 14:41:18.000.620,C:\Program Files\Embarcadero\Studio\17.0\cef3\TCEFChromiumWindow.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumWindow.pas</Transaction> | ||||
|     <Transaction>2016/11/29 15:48:26.000.475,=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromium2.pas</Transaction> | ||||
|     <Transaction>2016/11/29 16:29:04.000.712,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromium2.pas=</Transaction> | ||||
|     <Transaction>2016/12/14 09:31:37.000.825,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/14 09:43:37.000.496,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCefRegisterCDMCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/14 09:43:37.000.496,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCefRegisterCDMCallback.pas</Transaction> | ||||
|     <Transaction>2016/12/15 11:52:46.000.153,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/15 15:23:08.000.388,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/15 15:27:53.000.729,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFThread.pas</Transaction> | ||||
|     <Transaction>2016/12/15 15:27:53.000.729,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFThread.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/15 16:33:21.000.646,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/15 16:33:59.000.530,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8Interceptor.pas</Transaction> | ||||
|     <Transaction>2016/12/15 16:33:59.000.530,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFv8Interceptor.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/15 18:08:50.000.736,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/15 18:10:25.000.832,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFWaitableEvent.pas</Transaction> | ||||
|     <Transaction>2016/12/15 18:10:25.000.832,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFWaitableEvent.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/16 09:51:23.000.585,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/16 09:53:31.000.858,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFX509CertPrincipal.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/16 09:53:31.000.858,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFX509CertPrincipal.pas</Transaction> | ||||
|     <Transaction>2016/12/16 10:34:36.000.246,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/16 10:39:48.000.349,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFX509Certificate.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/16 10:39:48.000.349,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFX509Certificate.pas</Transaction> | ||||
|     <Transaction>2016/12/16 11:11:31.000.335,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSslCertPrincipal.pas=</Transaction> | ||||
|     <Transaction>2016/12/16 12:46:25.000.699,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/16 12:51:53.000.173,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSSLStatus.pas</Transaction> | ||||
|     <Transaction>2016/12/16 12:51:53.000.173,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSSLStatus.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/16 13:03:29.000.911,=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2016/12/16 13:15:23.000.921,C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSelectClientCertificateCallback.pas</Transaction> | ||||
|     <Transaction>2016/12/16 13:15:23.000.921,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFSelectClientCertificateCallback.pas=C:\Program Files\Embarcadero\Studio\17.0\cef3\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/01/05 09:46:44.000.222,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumWindow.pas=</Transaction> | ||||
|     <Transaction>2017/01/05 10:34:46.000.529,=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumWindow.pas</Transaction> | ||||
|     <Transaction>2017/01/22 10:37:38.000.090,C:\Program Files\Embarcadero\Studio\17.0\cef3\cef3.dproj=C:\Program Files\Embarcadero\Studio\17.0\cef3\CEF4Delphi.dproj</Transaction> | ||||
|     <Transaction>2017/01/22 10:37:38.000.090,C:\Program Files\Embarcadero\Studio\17.0\cef3\CEF4Delphi.dproj=C:\Program Files\Embarcadero\Studio\17.0\cef3\cef3.dproj</Transaction> | ||||
|     <Transaction>2017/03/16 09:32:10.000.622,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFBaseRefCounted.pas</Transaction> | ||||
|     <Transaction>2017/03/16 09:32:22.000.431,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFBaseScopedWrapper.pas</Transaction> | ||||
|     <Transaction>2017/03/16 09:32:54.000.567,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFBase.pas=</Transaction> | ||||
|     <Transaction>2017/03/26 17:18:35.000.135,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/03/26 17:19:20.000.644,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDLLFunctions.pas</Transaction> | ||||
|     <Transaction>2017/03/26 17:19:20.000.644,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDLLFunctions.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/03/26 17:28:33.000.757,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDLLFunctions.pas=</Transaction> | ||||
|     <Transaction>2017/05/21 15:27:39.000.810,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/05/21 15:34:16.000.487,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumTool.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\Unit1.dfm</Transaction> | ||||
|     <Transaction>2017/05/21 15:34:16.000.487,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumTool.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/05/21 15:34:16.000.487,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\Unit1.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumTool.dfm</Transaction> | ||||
|     <Transaction>2017/05/21 15:34:16.000.487,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumTool.pas</Transaction> | ||||
|     <Transaction>2017/05/21 15:36:08.000.019,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumTool.pas=</Transaction> | ||||
|     <Transaction>2017/06/05 17:09:35.000.867,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/06/05 17:10:51.000.565,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFAccessibilityHandler.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\Unit1.pas</Transaction> | ||||
|     <Transaction>2017/06/05 17:10:51.000.565,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFAccessibilityHandler.pas</Transaction> | ||||
|     <Transaction>2017/07/18 09:50:01.000.551,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDragAndDrop.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uOLEDragAndDrop.pas</Transaction> | ||||
|   </Transactions> | ||||
| </BorlandProject> | ||||
|   | ||||
| @@ -1,27 +1,62 @@ | ||||
| [Closed Files] | ||||
| File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFLibFunctions.pas',0,1,46,123,95,0,0,, | ||||
| File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,52,44,917,0,0,, | ||||
| File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas',0,1,952,39,987,0,0,, | ||||
| File_3=TSourceModule,'V:\3071_2\include\capi\cef_file_util_capi.h',0,1,1,49,38,0,0,, | ||||
| File_4=TSourceModule,'V:\3071\include\capi\cef_file_util_capi.h',0,1,1,1,1,0,0,, | ||||
| File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFClient.pas',0,1,599,83,622,0,0,, | ||||
| File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFConstants.pas',0,1,253,25,279,0,0,, | ||||
| File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDomDocument.pas',0,1,46,1,1,0,0,, | ||||
| File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,751,18,767,0,0,, | ||||
| File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTypes.pas',0,1,2276,92,2313,0,0,, | ||||
| File_0=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\VCL\Vcl.Controls.pas',0,1,13129,37,13152,0,0,, | ||||
| File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFConstants.pas',0,1,335,44,361,0,0,, | ||||
| File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumEvents.pas',0,1,34,3,61,0,0,, | ||||
| File_3=TSourceModule,'c:\program files\embarcadero\studio\17.0\source\rtl\win\Winapi.ShlObj.pas',0,1,14252,1,14278,0,0,, | ||||
| File_4=TSourceModule,'V:\3071\tests\cefclient\browser\osr_dragdrop_win.cc',0,1,553,35,552,0,0,,{1 | ||||
| File_5=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\source\data\Data.DB.pas',0,1,2846,29,2870,0,0,, | ||||
| File_6=TSourceModule,'O:\GWDrgDrp\GWDragDemo\GWDragDemoAppInterface.pas',0,1,112,50,152,0,0,, | ||||
| File_7=TSourceModule,'O:\GWDrgDrp\GWDragDemo\GWDragSource.pas',0,1,540,29,568,0,0,, | ||||
| File_8=TSourceModule,'c:\program files\embarcadero\studio\17.0\source\rtl\win\Winapi.ActiveX.pas',0,1,131,3,155,0,0,, | ||||
| File_9=TSourceModule,'c:\program files\embarcadero\studio\17.0\source\rtl\win\Winapi.Windows.pas',0,1,23379,1,23403,0,0,, | ||||
|  | ||||
| [Modules] | ||||
| Module0=default.htm | ||||
| Count=1 | ||||
| Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDragAndDropMgr.pas | ||||
| Module1=default.htm | ||||
| Module2=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas | ||||
| Module3=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas | ||||
| Module4=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uOLEDragAndDrop.pas | ||||
| Module5=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas | ||||
| Count=6 | ||||
| EditWindowCount=1 | ||||
|  | ||||
| [C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDragAndDropMgr.pas] | ||||
| ModuleType=TSourceModule | ||||
| FormState=0 | ||||
| FormOnTop=0 | ||||
|  | ||||
| [default.htm] | ||||
| ModuleType=TURLModule | ||||
|  | ||||
| [C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas] | ||||
| ModuleType=TSourceModule | ||||
| FormState=0 | ||||
| FormOnTop=0 | ||||
|  | ||||
| [C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas] | ||||
| ModuleType=TSourceModule | ||||
| FormState=0 | ||||
| FormOnTop=0 | ||||
|  | ||||
| [C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uOLEDragAndDrop.pas] | ||||
| ModuleType=TSourceModule | ||||
| FormState=0 | ||||
| FormOnTop=0 | ||||
|  | ||||
| [C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas] | ||||
| ModuleType=TSourceModule | ||||
| FormState=0 | ||||
| FormOnTop=0 | ||||
|  | ||||
| [EditWindow0] | ||||
| ViewCount=1 | ||||
| CurrentView=0 | ||||
| ViewCount=6 | ||||
| CurrentEditView=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDragAndDropMgr.pas | ||||
| View0=0 | ||||
| View1=1 | ||||
| View2=2 | ||||
| View3=3 | ||||
| View4=4 | ||||
| View5=5 | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=1 | ||||
| @@ -39,20 +74,76 @@ DockedToMainForm=1 | ||||
| BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0 | ||||
| TopPanelSize=0 | ||||
| LeftPanelSize=0 | ||||
| RightPanelSize=0 | ||||
| BottomPanelSize=0 | ||||
| RightPanelSize=2000 | ||||
| RightPanelClients=DockSite2,DockSite4 | ||||
| RightPanelData=00000800010100000000661600000000000001D0070000000000000100000000610A000009000000446F636B53697465320100000000191F000009000000446F636B5369746534FFFFFFFF | ||||
| BottomPanelSize=1095 | ||||
| BottomPanelClients=DockSite1,MessageView | ||||
| BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D1234000000000000022506000000000000FFFFFFFF | ||||
| BottomPanelData=0000080001020100000009000000446F636B53697465313B3600000000000002470400000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF | ||||
| BottomMiddlePanelSize=0 | ||||
| BottomMiddlePanelClients=DockSite0,GraphDrawingModel | ||||
| BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF | ||||
| TabDockLeftClients=PropertyInspector=0,DockSite3=1 | ||||
| TabDockRightClients=DockSite4=0,DockSite2=1 | ||||
| TabDockLeftClients=DockSite3=0,PropertyInspector=1 | ||||
|  | ||||
| [View0] | ||||
| CustomEditViewType=TWelcomePageView | ||||
| WelcomePageURL=bds:/default.htm | ||||
|  | ||||
| [View1] | ||||
| CustomEditViewType=TEditView | ||||
| Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uOLEDragAndDrop.pas | ||||
| CursorX=1 | ||||
| CursorY=618 | ||||
| TopLine=581 | ||||
| LeftCol=1 | ||||
| Elisions= | ||||
| Bookmarks={1,502,1}{2,425,1}{3,425,1}{4,317,1} | ||||
| EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uOLEDragAndDrop.pas | ||||
|  | ||||
| [View2] | ||||
| CustomEditViewType=TEditView | ||||
| Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas | ||||
| CursorX=31 | ||||
| CursorY=2804 | ||||
| TopLine=2795 | ||||
| LeftCol=1 | ||||
| Elisions= | ||||
| Bookmarks={1,932,1}{2,2248,29}{4,692,1} | ||||
| EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas | ||||
|  | ||||
| [View3] | ||||
| CustomEditViewType=TEditView | ||||
| Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDragAndDropMgr.pas | ||||
| CursorX=74 | ||||
| CursorY=694 | ||||
| TopLine=667 | ||||
| LeftCol=1 | ||||
| Elisions= | ||||
| Bookmarks={1,727,1}{2,55,13} | ||||
| EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDragAndDropMgr.pas | ||||
|  | ||||
| [View4] | ||||
| CustomEditViewType=TEditView | ||||
| Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas | ||||
| CursorX=53 | ||||
| CursorY=1401 | ||||
| TopLine=1371 | ||||
| LeftCol=1 | ||||
| Elisions= | ||||
| Bookmarks= | ||||
| EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas | ||||
|  | ||||
| [View5] | ||||
| CustomEditViewType=TEditView | ||||
| Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas | ||||
| CursorX=1 | ||||
| CursorY=1135 | ||||
| TopLine=1121 | ||||
| LeftCol=1 | ||||
| Elisions= | ||||
| Bookmarks= | ||||
| EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas | ||||
|  | ||||
| [Watches] | ||||
| Count=0 | ||||
|  | ||||
| @@ -67,11 +158,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=13602 | ||||
| Dockable=1 | ||||
| @@ -115,11 +206,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=8845 | ||||
| Height=2141 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=8845 | ||||
| ClientHeight=2141 | ||||
| TBDockHeight=5897 | ||||
| LRDockWidth=2352 | ||||
| Dockable=1 | ||||
| @@ -128,18 +219,18 @@ StayOnTop=0 | ||||
| [MessageView] | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=0 | ||||
| Visible=1 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2773 | ||||
| Height=1424 | ||||
| Top=23 | ||||
| Width=10000 | ||||
| Height=874 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2773 | ||||
| ClientHeight=1424 | ||||
| TBDockHeight=1424 | ||||
| ClientWidth=10000 | ||||
| ClientHeight=874 | ||||
| TBDockHeight=874 | ||||
| LRDockWidth=2773 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -153,11 +244,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=4339 | ||||
| Height=5224 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4339 | ||||
| ClientHeight=5224 | ||||
| TBDockHeight=7152 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| @@ -207,8 +298,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-148 | ||||
| Top=-137 | ||||
| Left=-8 | ||||
| Top=-30 | ||||
| Width=1844 | ||||
| Height=3139 | ||||
| MaxLeft=-1 | ||||
| @@ -264,19 +355,19 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=362 | ||||
| Left=78 | ||||
| Top=386 | ||||
| Width=1898 | ||||
| Height=5370 | ||||
| Height=7164 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=5370 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=7164 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| SplitPos=111 | ||||
| SplitPos=136 | ||||
|  | ||||
| [frmDesignPreview] | ||||
| PercentageSizes=1 | ||||
| @@ -287,11 +378,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=5964 | ||||
| LRDockWidth=2508 | ||||
| Dockable=1 | ||||
| @@ -303,8 +394,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-898 | ||||
| Top=-137 | ||||
| Left=-946 | ||||
| Top=1 | ||||
| Width=2844 | ||||
| Height=6200 | ||||
| MaxLeft=-1 | ||||
| @@ -322,8 +413,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=-1026 | ||||
| Top=-137 | ||||
| Left=-1152 | ||||
| Top=243 | ||||
| Width=273 | ||||
| Height=359 | ||||
| MaxLeft=-1 | ||||
| @@ -347,11 +438,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=415 | ||||
| LRDockWidth=4953 | ||||
| Dockable=1 | ||||
| @@ -366,11 +457,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=213 | ||||
| LRDockWidth=7406 | ||||
| Dockable=1 | ||||
| @@ -389,11 +480,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1536 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -408,11 +499,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=2063 | ||||
| LRDockWidth=3484 | ||||
| Dockable=1 | ||||
| @@ -427,11 +518,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2336 | ||||
| Height=1177 | ||||
| Height=942 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2336 | ||||
| ClientHeight=1177 | ||||
| ClientHeight=942 | ||||
| TBDockHeight=2321 | ||||
| LRDockWidth=2820 | ||||
| Dockable=1 | ||||
| @@ -492,11 +583,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=4888 | ||||
| LRDockWidth=7148 | ||||
| Dockable=1 | ||||
| @@ -508,8 +599,8 @@ Create=1 | ||||
| Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Left=249 | ||||
| Top=709 | ||||
| Width=2859 | ||||
| Height=3206 | ||||
| MaxLeft=-1 | ||||
| @@ -530,11 +621,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=3820 | ||||
| Height=1121 | ||||
| Height=572 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1121 | ||||
| ClientHeight=572 | ||||
| TBDockHeight=1547 | ||||
| LRDockWidth=8742 | ||||
| Dockable=1 | ||||
| @@ -555,12 +646,12 @@ Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=1898 | ||||
| Height=9170 | ||||
| Width=1773 | ||||
| Height=6738 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=9170 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=3677 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| @@ -575,11 +666,11 @@ State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Width=2000 | ||||
| Height=6861 | ||||
| Height=6816 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=6861 | ||||
| ClientHeight=6816 | ||||
| TBDockHeight=4888 | ||||
| LRDockWidth=5305 | ||||
| Dockable=1 | ||||
| @@ -640,14 +731,14 @@ Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=0 | ||||
| Top=23 | ||||
| Width=3820 | ||||
| Height=1424 | ||||
| Height=874 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=3820 | ||||
| ClientHeight=1424 | ||||
| TBDockHeight=1424 | ||||
| ClientHeight=874 | ||||
| TBDockHeight=874 | ||||
| LRDockWidth=3820 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -656,22 +747,22 @@ ActiveTabID=DebugLogView | ||||
| TabDockClients=DebugLogView,BreakpointWindow,ThreadStatusWindow,CallStackWindow,WatchWindow,LocalVarsWindow | ||||
|  | ||||
| [DockSite2] | ||||
| HostDockSite=RightTabDock | ||||
| HostDockSite=DockRightPanel | ||||
| DockSiteType=1 | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=0 | ||||
| Visible=1 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=4 | ||||
| Top=24 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Width=2000 | ||||
| Height=9148 | ||||
| Height=2444 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=9148 | ||||
| TBDockHeight=7164 | ||||
| ClientHeight=2444 | ||||
| TBDockHeight=7119 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
| @@ -688,13 +779,13 @@ Visible=0 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=23 | ||||
| Top=0 | ||||
| Width=1898 | ||||
| Height=9170 | ||||
| Height=7164 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=1898 | ||||
| ClientHeight=9170 | ||||
| ClientWidth=1773 | ||||
| ClientHeight=6738 | ||||
| TBDockHeight=7164 | ||||
| LRDockWidth=1898 | ||||
| Dockable=1 | ||||
| @@ -704,22 +795,22 @@ ActiveTabID=StructureView | ||||
| TabDockClients=StructureView,ClassBrowserTool | ||||
|  | ||||
| [DockSite4] | ||||
| HostDockSite=RightTabDock | ||||
| HostDockSite=DockRightPanel | ||||
| DockSiteType=1 | ||||
| PercentageSizes=1 | ||||
| Create=1 | ||||
| Visible=0 | ||||
| Visible=1 | ||||
| Docked=1 | ||||
| State=0 | ||||
| Left=0 | ||||
| Top=454 | ||||
| Top=268 | ||||
| Width=2000 | ||||
| Height=4339 | ||||
| Height=5224 | ||||
| MaxLeft=-1 | ||||
| MaxTop=-1 | ||||
| ClientWidth=2000 | ||||
| ClientHeight=4339 | ||||
| TBDockHeight=7164 | ||||
| ClientHeight=5224 | ||||
| TBDockHeight=7119 | ||||
| LRDockWidth=2000 | ||||
| Dockable=1 | ||||
| StayOnTop=0 | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							| @@ -1,9 +1,9 @@ | ||||
| [Stats] | ||||
| EditorSecs=112337 | ||||
| EditorSecs=138579 | ||||
| DesignerSecs=97 | ||||
| InspectorSecs=324 | ||||
| CompileSecs=3145294 | ||||
| OtherSecs=12000 | ||||
| CompileSecs=4032654 | ||||
| OtherSecs=14027 | ||||
| StartTime=22/01/2017 10:49:52 | ||||
| RealKeys=0 | ||||
| EffectiveKeys=0 | ||||
|   | ||||
| @@ -48,57 +48,62 @@ interface | ||||
|  | ||||
| uses | ||||
|   {$IFDEF DELPHI16_UP} | ||||
|   WinApi.Windows, WinApi.Messages, System.Classes, Vcl.Controls, Vcl.Graphics, Vcl.Forms, | ||||
|   WinApi.Windows, WinApi.Messages, System.Classes, Vcl.Controls, Vcl.Graphics, Vcl.Forms, WinApi.ActiveX, | ||||
|   {$ELSE} | ||||
|   Windows, Messages, Classes, Controls, Graphics, Forms, | ||||
|   Windows, Messages, Classes, Controls, Graphics, Forms, ActiveX, | ||||
|   {$ENDIF} | ||||
|   uCEFTypes, uCEFInterfaces, uCEFLibFunctions, uCEFMiscFunctions, uCEFClient, | ||||
|   uCEFPDFPrintCallback, uCEFStringVisitor, uCEFConstants, uCEFTask, | ||||
|   uCEFDeleteCookiesCallback, uCEFDomVisitor, uCEFChromiumEvents, | ||||
|   uCEFChromiumOptions, uCEFChromiumFontOptions, uCEFPDFPrintOptions; | ||||
|   uCEFChromiumOptions, uCEFChromiumFontOptions, uCEFPDFPrintOptions, | ||||
|   uCEFDragAndDropMgr; | ||||
|  | ||||
| type | ||||
|   TChromium = class(TComponent, IChromiumEvents) | ||||
|     protected | ||||
|       FCompHandle         : HWND; | ||||
|       FVisitor            : ICefStringVisitor; | ||||
|       FPDFPrintcb         : ICefPdfPrintCallback; | ||||
|       FCookiDeletercb     : ICefDeleteCookiesCallback; | ||||
|       FHandler            : ICefClient; | ||||
|       FBrowser            : ICefBrowser; | ||||
|       FBrowserId          : Integer; | ||||
|       FDefaultUrl         : ustring; | ||||
|       FOptions            : TChromiumOptions; | ||||
|       FFontOptions        : TChromiumFontOptions; | ||||
|       FPDFPrintOptions    : TPDFPrintOptions; | ||||
|       FDefaultEncoding    : ustring; | ||||
|       FProxyType          : integer; | ||||
|       FProxyServer        : string; | ||||
|       FProxyPort          : integer; | ||||
|       FProxyUsername      : string; | ||||
|       FProxyPassword      : string; | ||||
|       FProxyScriptURL     : string; | ||||
|       FProxyByPassList    : string; | ||||
|       FUpdatePreferences  : boolean; | ||||
|       FCustomHeaderName   : string; | ||||
|       FCustomHeaderValue  : string; | ||||
|       FAddCustomHeader    : boolean; | ||||
|       FDoNotTrack         : boolean; | ||||
|       FSendReferrer       : boolean; | ||||
|       FHyperlinkAuditing  : boolean; | ||||
|       FCookiePrefs        : integer; | ||||
|       FImagesPrefs        : integer; | ||||
|       FCMStoragePath      : ustring; | ||||
|       FZoomStep           : byte; | ||||
|       FWindowName         : string; | ||||
|       FPrefsFileName      : string; | ||||
|       FIsOSR              : boolean; | ||||
|       FInitialized        : boolean; | ||||
|       FClosing            : boolean; | ||||
|       FWindowInfo         : TCefWindowInfo; | ||||
|       FBrowserSettings    : TCefBrowserSettings; | ||||
|       FDevWindowInfo      : TCefWindowInfo; | ||||
|       FDevBrowserSettings : TCefBrowserSettings; | ||||
|       FCompHandle             : HWND; | ||||
|       FVisitor                : ICefStringVisitor; | ||||
|       FPDFPrintcb             : ICefPdfPrintCallback; | ||||
|       FCookiDeletercb         : ICefDeleteCookiesCallback; | ||||
|       FHandler                : ICefClient; | ||||
|       FBrowser                : ICefBrowser; | ||||
|       FBrowserId              : Integer; | ||||
|       FDefaultUrl             : ustring; | ||||
|       FOptions                : TChromiumOptions; | ||||
|       FFontOptions            : TChromiumFontOptions; | ||||
|       FPDFPrintOptions        : TPDFPrintOptions; | ||||
|       FDefaultEncoding        : ustring; | ||||
|       FProxyType              : integer; | ||||
|       FProxyServer            : string; | ||||
|       FProxyPort              : integer; | ||||
|       FProxyUsername          : string; | ||||
|       FProxyPassword          : string; | ||||
|       FProxyScriptURL         : string; | ||||
|       FProxyByPassList        : string; | ||||
|       FUpdatePreferences      : boolean; | ||||
|       FCustomHeaderName       : string; | ||||
|       FCustomHeaderValue      : string; | ||||
|       FAddCustomHeader        : boolean; | ||||
|       FDoNotTrack             : boolean; | ||||
|       FSendReferrer           : boolean; | ||||
|       FHyperlinkAuditing      : boolean; | ||||
|       FCookiePrefs            : integer; | ||||
|       FImagesPrefs            : integer; | ||||
|       FCMStoragePath          : ustring; | ||||
|       FZoomStep               : byte; | ||||
|       FWindowName             : string; | ||||
|       FPrefsFileName          : string; | ||||
|       FIsOSR                  : boolean; | ||||
|       FInitialized            : boolean; | ||||
|       FClosing                : boolean; | ||||
|       FWindowInfo             : TCefWindowInfo; | ||||
|       FBrowserSettings        : TCefBrowserSettings; | ||||
|       FDevWindowInfo          : TCefWindowInfo; | ||||
|       FDevBrowserSettings     : TCefBrowserSettings; | ||||
|       FDragOperations         : TCefDragOperations; | ||||
|       FDragDropManager        : TCEFDragAndDropMgr; | ||||
|       FDropTargetCtrl         : TWinControl; | ||||
|       FDragAndDropInitialized : boolean; | ||||
|  | ||||
|       // ICefClient | ||||
|       FOnProcessMessageReceived       : TOnProcessMessageReceived; | ||||
| @@ -270,9 +275,15 @@ type | ||||
|       procedure PrefsAvailableMsg(var aMessage : TMessage); | ||||
|       function  GetParentForm : TCustomForm; | ||||
|       procedure ApplyZoomStep; | ||||
|       procedure DelayedDragging; | ||||
|       function  SendCompMessage(aMsg : cardinal; wParam : cardinal = 0; lParam : integer = 0) : boolean; | ||||
|       procedure ToMouseEvent(grfKeyState : Longint; pt : TPoint; var aMouseEvent : TCefMouseEvent); | ||||
|       procedure WndProc(var aMessage: TMessage); | ||||
|  | ||||
|       procedure DragDropManager_OnDragEnter(Sender: TObject; const aDragData : ICefDragData; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint); | ||||
|       procedure DragDropManager_OnDragOver(Sender: TObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint); | ||||
|       procedure DragDropManager_OnDragLeave(Sender: TObject); | ||||
|       procedure DragDropManager_OnDrop(Sender: TObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint); | ||||
|  | ||||
|       // ICefClient | ||||
|       function  doOnProcessMessageReceived(const browser: ICefBrowser; sourceProcess: TCefProcessId; const aMessage: ICefProcessMessage): Boolean; virtual; | ||||
| @@ -378,6 +389,8 @@ type | ||||
|       procedure   CloseBrowser(aForceClose : boolean); | ||||
|       function    CreateBrowser(const aBrowserParent : TWinControl = nil; const aWindowName : string = '') : boolean; overload; | ||||
|       function    CreateBrowser(aParentHandle : HWND; aParentRect : TRect; const aWindowName : string = '') : boolean; overload; | ||||
|       procedure   InitializeDragAndDrop(const aDropTargetCtrl : TWinControl); | ||||
|       procedure   ShutdownDragAndDrop; | ||||
|  | ||||
|       // Internal procedures. | ||||
|       // Only tasks, visitors or callbacks should use them in the right thread/process. | ||||
| @@ -450,6 +463,13 @@ type | ||||
|       procedure   SetFocus(focus: Boolean); | ||||
|       procedure   SetAccessibilityState(accessibilityState: TCefState); | ||||
|  | ||||
|       procedure   DragTargetDragEnter(const dragData: ICefDragData; const event: PCefMouseEvent; allowedOps: TCefDragOperations); | ||||
|       procedure   DragTargetDragOver(const event: PCefMouseEvent; allowedOps: TCefDragOperations); | ||||
|       procedure   DragTargetDragLeave; | ||||
|       procedure   DragTargetDrop(event: PCefMouseEvent); | ||||
|       procedure   DragSourceEndedAt(x, y: Integer; op: TCefDragOperation); | ||||
|       procedure   DragSourceSystemDragEnded; | ||||
|  | ||||
|  | ||||
|       property  DefaultUrl              : ustring                      read FDefaultUrl               write FDefaultUrl; | ||||
|       property  Options                 : TChromiumOptions             read FOptions                  write FOptions; | ||||
| @@ -488,6 +508,7 @@ type | ||||
|       property  SendReferrer            : boolean                      read FSendReferrer             write SetSendReferrer; | ||||
|       property  HyperlinkAuditing       : boolean                      read FHyperlinkAuditing        write SetHyperlinkAuditing; | ||||
|       property  HasValidMainFrame       : boolean                      read GetHasValidMainFrame; | ||||
|       property  DragOperations          : TCefDragOperations           read FDragOperations           write FDragOperations; | ||||
|  | ||||
|       property  ProxyType               : integer                      read FProxyType                write SetProxyType; | ||||
|       property  ProxyServer             : string                       read FProxyServer              write SetProxyServer; | ||||
| @@ -609,45 +630,49 @@ uses | ||||
|   SysUtils, Math, | ||||
|   {$ENDIF} | ||||
|   uCEFBrowser, uCEFValue, uCEFDictionaryValue, uCEFStringMultimap, uCEFCookieManager, uCEFFrame, | ||||
|   uCEFApplication, uCEFProcessMessage; | ||||
|   uCEFApplication, uCEFProcessMessage, uOLEDragAndDrop; | ||||
|  | ||||
| constructor TChromium.Create(AOwner: TComponent); | ||||
| begin | ||||
|   FBrowser               := nil; | ||||
|   FBrowserId             := 0; | ||||
|   FCompHandle            := 0; | ||||
|   FClosing               := False; | ||||
|   FInitialized           := False; | ||||
|   FIsOSR                 := False; | ||||
|   FDefaultUrl            := 'about:blank'; | ||||
|   FHandler               := nil; | ||||
|   FOptions               := nil; | ||||
|   FFontOptions           := nil; | ||||
|   FDefaultEncoding       := ''; | ||||
|   FVisitor               := nil; | ||||
|   FPDFPrintcb            := nil; | ||||
|   FCookiDeletercb        := nil; | ||||
|   FPDFPrintOptions       := nil; | ||||
|   FUpdatePreferences     := False; | ||||
|   FCustomHeaderName      := ''; | ||||
|   FCustomHeaderValue     := ''; | ||||
|   FPrefsFileName         := ''; | ||||
|   FAddCustomHeader       := False; | ||||
|   FDoNotTrack            := True; | ||||
|   FSendReferrer          := True; | ||||
|   FHyperlinkAuditing     := False; | ||||
|   FCookiePrefs           := CEF_CONTENT_SETTING_ALLOW; | ||||
|   FImagesPrefs           := CEF_CONTENT_SETTING_ALLOW; | ||||
|   FZoomStep              := ZOOM_STEP_DEF; | ||||
|   FWindowName            := ''; | ||||
|   FBrowser                := nil; | ||||
|   FBrowserId              := 0; | ||||
|   FCompHandle             := 0; | ||||
|   FClosing                := False; | ||||
|   FInitialized            := False; | ||||
|   FIsOSR                  := False; | ||||
|   FDefaultUrl             := 'about:blank'; | ||||
|   FHandler                := nil; | ||||
|   FOptions                := nil; | ||||
|   FFontOptions            := nil; | ||||
|   FDefaultEncoding        := ''; | ||||
|   FVisitor                := nil; | ||||
|   FPDFPrintcb             := nil; | ||||
|   FCookiDeletercb         := nil; | ||||
|   FPDFPrintOptions        := nil; | ||||
|   FUpdatePreferences      := False; | ||||
|   FCustomHeaderName       := ''; | ||||
|   FCustomHeaderValue      := ''; | ||||
|   FPrefsFileName          := ''; | ||||
|   FAddCustomHeader        := False; | ||||
|   FDoNotTrack             := True; | ||||
|   FSendReferrer           := True; | ||||
|   FHyperlinkAuditing      := False; | ||||
|   FCookiePrefs            := CEF_CONTENT_SETTING_ALLOW; | ||||
|   FImagesPrefs            := CEF_CONTENT_SETTING_ALLOW; | ||||
|   FZoomStep               := ZOOM_STEP_DEF; | ||||
|   FWindowName             := ''; | ||||
|   FDragOperations         := DRAG_OPERATION_NONE; | ||||
|   FDragDropManager        := nil; | ||||
|   FDropTargetCtrl         := nil; | ||||
|   FDragAndDropInitialized := False; | ||||
|  | ||||
|   FProxyType             := CEF_PROXYTYPE_DIRECT; | ||||
|   FProxyServer           := ''; | ||||
|   FProxyPort             := 80; | ||||
|   FProxyUsername         := ''; | ||||
|   FProxyPassword         := ''; | ||||
|   FProxyScriptURL        := ''; | ||||
|   FProxyByPassList       := ''; | ||||
|   FProxyType         := CEF_PROXYTYPE_DIRECT; | ||||
|   FProxyServer       := ''; | ||||
|   FProxyPort         := 80; | ||||
|   FProxyUsername     := ''; | ||||
|   FProxyPassword     := ''; | ||||
|   FProxyScriptURL    := ''; | ||||
|   FProxyByPassList   := ''; | ||||
|  | ||||
|   FillChar(FWindowInfo,    SizeOf(TCefWindowInfo), 0); | ||||
|   FillChar(FDevWindowInfo, SizeOf(TCefWindowInfo), 0); | ||||
| @@ -664,6 +689,8 @@ destructor TChromium.Destroy; | ||||
| begin | ||||
|   try | ||||
|     try | ||||
|       if (FDragDropManager <> nil) then FreeAndNil(FDragDropManager); | ||||
|  | ||||
|       if (FCompHandle <> 0) then | ||||
|         begin | ||||
|           DeallocateHWnd(FCompHandle); | ||||
| @@ -898,6 +925,91 @@ begin | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| procedure TChromium.InitializeDragAndDrop(const aDropTargetCtrl : TWinControl); | ||||
| var | ||||
|   TempDropTarget : IDropTarget; | ||||
| begin | ||||
|   if FIsOSR and (FDragDropManager = nil) and (aDropTargetCtrl <> nil) then | ||||
|     begin | ||||
|       FDropTargetCtrl                 := aDropTargetCtrl; | ||||
|  | ||||
|       FDragDropManager                := TCEFDragAndDropMgr.Create; | ||||
|       FDragDropManager.OnDragEnter    := DragDropManager_OnDragEnter; | ||||
|       FDragDropManager.OnDragOver     := DragDropManager_OnDragOver; | ||||
|       FDragDropManager.OnDragLeave    := DragDropManager_OnDragLeave; | ||||
|       FDragDropManager.OnDrop         := DragDropManager_OnDrop; | ||||
|  | ||||
|       TempDropTarget                  := TOLEDropTarget.Create(FDragDropManager); | ||||
|  | ||||
|       RegisterDragDrop(FDropTargetCtrl.Handle, TempDropTarget); | ||||
|  | ||||
|       FDragAndDropInitialized := True; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| procedure TChromium.ShutdownDragAndDrop; | ||||
| begin | ||||
|   if FDragAndDropInitialized and (FDropTargetCtrl <> nil) then | ||||
|     RevokeDragDrop(FDropTargetCtrl.Handle); | ||||
| end; | ||||
|  | ||||
| procedure TChromium.ToMouseEvent(grfKeyState : Longint; pt : TPoint; var aMouseEvent : TCefMouseEvent); | ||||
| begin | ||||
|   if (FDropTargetCtrl <> nil) then | ||||
|     begin | ||||
|       pt                    := FDropTargetCtrl.ScreenToClient(pt); | ||||
|       aMouseEvent.x         := pt.x; | ||||
|       aMouseEvent.y         := pt.y; | ||||
|       aMouseEvent.modifiers := GetCefMouseModifiers(grfKeyState); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| procedure TChromium.DragDropManager_OnDragEnter(Sender: TObject; const aDragData : ICefDragData; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint); | ||||
| var | ||||
|   TempMouseEvent : TCefMouseEvent; | ||||
|   TempAllowedOps : TCefDragOperations; | ||||
| begin | ||||
|   ToMouseEvent(grfKeyState, pt, TempMouseEvent); | ||||
|   DropEffectToDragOperation(dwEffect, TempAllowedOps); | ||||
|  | ||||
|   DragTargetDragEnter(aDragData, @TempMouseEvent, TempAllowedOps); | ||||
|   DragTargetDragOver(@TempMouseEvent, TempAllowedOps); | ||||
|  | ||||
|   DragOperationToDropEffect(FDragOperations, dwEffect); | ||||
| end; | ||||
|  | ||||
| procedure TChromium.DragDropManager_OnDragOver(Sender: TObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint); | ||||
| var | ||||
|  | ||||
|   TempMouseEvent : TCefMouseEvent; | ||||
|   TempAllowedOps : TCefDragOperations; | ||||
|  | ||||
| begin | ||||
|  | ||||
|   ToMouseEvent(grfKeyState, pt, TempMouseEvent); | ||||
|   DropEffectToDragOperation(dwEffect, TempAllowedOps); | ||||
|  | ||||
|   DragTargetDragOver(@TempMouseEvent, TempAllowedOps); | ||||
|  | ||||
|   DragOperationToDropEffect(FDragOperations, dwEffect); | ||||
| end; | ||||
|  | ||||
| procedure TChromium.DragDropManager_OnDragLeave(Sender: TObject); | ||||
| begin | ||||
|  | ||||
|   DragTargetDragLeave; | ||||
| end; | ||||
|  | ||||
| procedure TChromium.DragDropManager_OnDrop(Sender: TObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint); | ||||
| var | ||||
|  | ||||
|   TempMouseEvent : TCefMouseEvent; | ||||
|   TempAllowedOps : TCefDragOperations; | ||||
|  | ||||
| begin | ||||
|  | ||||
|   ToMouseEvent(grfKeyState, pt, TempMouseEvent); | ||||
|   DropEffectToDragOperation(dwEffect, TempAllowedOps); | ||||
|  | ||||
|   DragTargetDragOver(@TempMouseEvent, TempAllowedOps); | ||||
|   DragTargetDrop(@TempMouseEvent); | ||||
| @@ -1615,7 +1727,7 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TChromium.SimulateMouseWheel(aDeltaX, aDeltaY : integer); | ||||
|       TempEvent.modifiers := []; | ||||
| var | ||||
|   TempEvent : TCefMouseEvent; | ||||
| begin | ||||
|   if Initialized then | ||||
| @@ -2133,6 +2245,7 @@ procedure TChromium.WndProc(var aMessage: TMessage); | ||||
|         end; | ||||
|  | ||||
|       if (FBrowser <> nil) then FBrowser.Host.CloseDevTools; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| procedure TChromium.WndProc(var aMessage: TMessage); | ||||
| @@ -2687,9 +2800,35 @@ function TChromium.doOnStartDragging(const browser    : ICefBrowser; | ||||
| end; | ||||
|  | ||||
| function TChromium.doOnStartDragging(const browser    : ICefBrowser; | ||||
|                                      const dragData   : ICefDragData; | ||||
|                                            allowedOps : TCefDragOperations; | ||||
|                                            x          : integer; | ||||
|                                            y          : Integer): Boolean; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if FDragAndDropInitialized and | ||||
|      FDragDropManager.CloneDragData(dragData, allowedOps) then | ||||
|     begin | ||||
|       Result := True; | ||||
|       SendCompMessage(CEF_STARTDRAGGING); | ||||
|     end; | ||||
|  | ||||
|   if Assigned(FOnStartDragging) then FOnStartDragging(Self, browser, dragData, allowedOps, x, y, Result); | ||||
| end; | ||||
|  | ||||
| procedure TChromium.DelayedDragging; | ||||
| var | ||||
|   TempOperation : TCefDragOperation; | ||||
|   TempPoint     : TPoint; | ||||
| begin | ||||
|   if FDragAndDropInitialized then | ||||
|     begin | ||||
|       FDragOperations := DRAG_OPERATION_NONE; | ||||
|       TempOperation   := FDragDropManager.StartDragging; | ||||
|       FDragOperations := DRAG_OPERATION_NONE; | ||||
|  | ||||
|       GetCursorPos(TempPoint); | ||||
|       TempPoint := FDropTargetCtrl.ScreenToClient(TempPoint); | ||||
|  | ||||
|       DragSourceEndedAt(TempPoint.x, TempPoint.y, TempOperation); | ||||
| @@ -2714,6 +2853,8 @@ end; | ||||
|  | ||||
| function TChromium.doOnTooltip(const browser: ICefBrowser; var text: ustring): Boolean; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if Assigned(FOnTooltip) then FOnTooltip(Self, browser, text, Result); | ||||
| end; | ||||
|  | ||||
| @@ -2893,4 +3034,34 @@ begin | ||||
| procedure TChromium.SetAccessibilityState(accessibilityState: TCefState); | ||||
| begin | ||||
|   if Initialized then FBrowser.Host.SetAccessibilityState(accessibilityState); | ||||
| end; | ||||
|  | ||||
| function TChromium.SendProcessMessage(targetProcess: TCefProcessId; const ProcMessage: ICefProcessMessage): Boolean; | ||||
| begin | ||||
|   Result := Initialized and FBrowser.SendProcessMessage(targetProcess, ProcMessage); | ||||
| end; | ||||
|  | ||||
| procedure TChromium.DragTargetDragEnter(const dragData: ICefDragData; const event: PCefMouseEvent; allowedOps: TCefDragOperations); | ||||
| begin | ||||
|   if Initialized then FBrowser.Host.DragTargetDragEnter(dragData, event, allowedOps); | ||||
| end; | ||||
|  | ||||
| procedure TChromium.DragTargetDragOver(const event: PCefMouseEvent; allowedOps: TCefDragOperations); | ||||
| begin | ||||
|   if Initialized then FBrowser.Host.DragTargetDragOver(event, allowedOps); | ||||
| end; | ||||
|  | ||||
| procedure TChromium.DragTargetDragLeave; | ||||
| begin | ||||
|   if Initialized then FBrowser.Host.DragTargetDragLeave; | ||||
| end; | ||||
|  | ||||
| procedure TChromium.DragTargetDrop(event: PCefMouseEvent); | ||||
| begin | ||||
|   if Initialized then FBrowser.Host.DragTargetDrop(event); | ||||
| end; | ||||
|  | ||||
| procedure TChromium.DragSourceEndedAt(x, y: Integer; op: TCefDragOperation); | ||||
| begin | ||||
|   if Initialized then FBrowser.Host.DragSourceEndedAt(x, y, op); | ||||
| end; | ||||
|   | ||||
| @@ -134,9 +134,17 @@ const | ||||
|   CERT_STATUS_FIRST_ERROR = CERT_STATUS_COMMON_NAME_INVALID; | ||||
|   CERT_STATUS_LAST_ERROR  = CERT_STATUS_VALIDITY_TOO_LONG; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_v8_accesscontrol_t) | ||||
|   V8_ACCESS_CONTROL_DEFAULT               = 0; | ||||
|   V8_ACCESS_CONTROL_ALL_CAN_READ          = 1 shl 0; | ||||
|   V8_ACCESS_CONTROL_ALL_CAN_WRITE         = 1 shl 1; | ||||
|   V8_ACCESS_CONTROL_PROHIBITS_OVERWRITING = 1 shl 2; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_v8_propertyattribute_t) | ||||
|   V8_PROPERTY_ATTRIBUTE_NONE = []; | ||||
|   V8_PROPERTY_ATTRIBUTE_NONE       = 0; | ||||
|   V8_PROPERTY_ATTRIBUTE_READONLY   = 1 shl 0; | ||||
|   V8_PROPERTY_ATTRIBUTE_DONTENUM   = 1 shl 1; | ||||
|   V8_PROPERTY_ATTRIBUTE_DONTDELETE = 1 shl 2; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_transition_type_t) | ||||
|   TT_LINK                 = 0; | ||||
| @@ -145,7 +153,7 @@ const | ||||
|   TT_MANUAL_SUBFRAME      = 4; | ||||
|   TT_FORM_SUBMIT          = 7; | ||||
|   TT_RELOAD               = 8; | ||||
|   TT_SOURCE_MASK          = $FF; | ||||
|   TT_SOURCE_MASK          = $000000FF; | ||||
|   TT_BLOCKED_FLAG         = $00800000; | ||||
|   TT_FORWARD_BACK_FLAG    = $01000000; | ||||
|   TT_CHAIN_START_FLAG     = $10000000; | ||||
| @@ -155,27 +163,60 @@ const | ||||
|   TT_IS_REDIRECT_MASK     = $C0000000; | ||||
|   TT_QUALIFIER_MASK       = $FFFFFF00; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_urlrequest_flags_t) | ||||
|   UR_FLAG_NONE                     = 0; | ||||
|   UR_FLAG_SKIP_CACHE               = 1 shl 0; | ||||
|   UR_FLAG_ALLOW_CACHED_CREDENTIALS = 1 shl 1; | ||||
|   UR_FLAG_REPORT_UPLOAD_PROGRESS   = 1 shl 3; | ||||
|   UR_FLAG_NO_DOWNLOAD_DATA         = 1 shl 6; | ||||
|   UR_FLAG_NO_RETRY_ON_5XX          = 1 shl 7; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_dom_event_category_t) | ||||
|   DOM_EVENT_CATEGORY_UNKNOWN                 = $0; | ||||
|   DOM_EVENT_CATEGORY_UI                      = $1; | ||||
|   DOM_EVENT_CATEGORY_MOUSE                   = $2; | ||||
|   DOM_EVENT_CATEGORY_MUTATION                = $4; | ||||
|   DOM_EVENT_CATEGORY_KEYBOARD                = $8; | ||||
|   DOM_EVENT_CATEGORY_TEXT                    = $10; | ||||
|   DOM_EVENT_CATEGORY_COMPOSITION             = $20; | ||||
|   DOM_EVENT_CATEGORY_DRAG                    = $40; | ||||
|   DOM_EVENT_CATEGORY_CLIPBOARD               = $80; | ||||
|   DOM_EVENT_CATEGORY_MESSAGE                 = $100; | ||||
|   DOM_EVENT_CATEGORY_WHEEL                   = $200; | ||||
|   DOM_EVENT_CATEGORY_BEFORE_TEXT_INSERTED    = $400; | ||||
|   DOM_EVENT_CATEGORY_OVERFLOW                = $800; | ||||
|   DOM_EVENT_CATEGORY_PAGE_TRANSITION         = $1000; | ||||
|   DOM_EVENT_CATEGORY_POPSTATE                = $2000; | ||||
|   DOM_EVENT_CATEGORY_PROGRESS                = $4000; | ||||
|   DOM_EVENT_CATEGORY_XMLHTTPREQUEST_PROGRESS = $8000; | ||||
|   DOM_EVENT_CATEGORY_UNKNOWN                 = 0; | ||||
|   DOM_EVENT_CATEGORY_UI                      = 1 shl 0; | ||||
|   DOM_EVENT_CATEGORY_MOUSE                   = 1 shl 1; | ||||
|   DOM_EVENT_CATEGORY_MUTATION                = 1 shl 2; | ||||
|   DOM_EVENT_CATEGORY_KEYBOARD                = 1 shl 3; | ||||
|   DOM_EVENT_CATEGORY_TEXT                    = 1 shl 4; | ||||
|   DOM_EVENT_CATEGORY_COMPOSITION             = 1 shl 5; | ||||
|   DOM_EVENT_CATEGORY_DRAG                    = 1 shl 6; | ||||
|   DOM_EVENT_CATEGORY_CLIPBOARD               = 1 shl 7; | ||||
|   DOM_EVENT_CATEGORY_MESSAGE                 = 1 shl 8; | ||||
|   DOM_EVENT_CATEGORY_WHEEL                   = 1 shl 9; | ||||
|   DOM_EVENT_CATEGORY_BEFORE_TEXT_INSERTED    = 1 shl 10; | ||||
|   DOM_EVENT_CATEGORY_OVERFLOW                = 1 shl 11; | ||||
|   DOM_EVENT_CATEGORY_PAGE_TRANSITION         = 1 shl 12; | ||||
|   DOM_EVENT_CATEGORY_POPSTATE                = 1 shl 13; | ||||
|   DOM_EVENT_CATEGORY_PROGRESS                = 1 shl 14; | ||||
|   DOM_EVENT_CATEGORY_XMLHTTPREQUEST_PROGRESS = 1 shl 15; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_event_flags_t) | ||||
|   EVENTFLAG_NONE                 = 0; | ||||
|   EVENTFLAG_CAPS_LOCK_ON         = 1 shl 0; | ||||
|   EVENTFLAG_SHIFT_DOWN           = 1 shl 1; | ||||
|   EVENTFLAG_CONTROL_DOWN         = 1 shl 2; | ||||
|   EVENTFLAG_ALT_DOWN             = 1 shl 3; | ||||
|   EVENTFLAG_LEFT_MOUSE_BUTTON    = 1 shl 4; | ||||
|   EVENTFLAG_MIDDLE_MOUSE_BUTTON  = 1 shl 5; | ||||
|   EVENTFLAG_RIGHT_MOUSE_BUTTON   = 1 shl 6; | ||||
|   EVENTFLAG_COMMAND_DOWN         = 1 shl 7; | ||||
|   EVENTFLAG_NUM_LOCK_ON          = 1 shl 8; | ||||
|   EVENTFLAG_IS_KEY_PAD           = 1 shl 9; | ||||
|   EVENTFLAG_IS_LEFT              = 1 shl 10; | ||||
|   EVENTFLAG_IS_RIGHT             = 1 shl 11; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_drag_operations_mask_t) | ||||
|   DRAG_OPERATION_NONE     = 0; | ||||
|   DRAG_OPERATION_COPY     = 1 shl 0; | ||||
|   DRAG_OPERATION_LINK     = 1 shl 1; | ||||
|   DRAG_OPERATION_GENERIC  = 1 shl 2; | ||||
|   DRAG_OPERATION_PRIVATE  = 1 shl 3; | ||||
|   DRAG_OPERATION_MOVE     = 1 shl 4; | ||||
|   DRAG_OPERATION_DELETE   = 1 shl 5; | ||||
|   DRAG_OPERATION_EVERY    = $FFFFFFFF; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_file_dialog_mode_t) | ||||
|   FILE_DIALOG_TYPE_MASK            = $FF; | ||||
|   FILE_DIALOG_TYPE_MASK            = $000000FF; | ||||
|   FILE_DIALOG_OVERWRITEPROMPT_FLAG = $01000000; | ||||
|   FILE_DIALOG_HIDEREADONLY_FLAG    = $02000000; | ||||
|  | ||||
| @@ -217,6 +258,39 @@ const | ||||
|   MENU_ID_PRINT                      = 131; | ||||
|  | ||||
|   MENU_ID_VIEW_SOURCE                = 132; | ||||
|  | ||||
|   MENU_ID_SPELLCHECK_SUGGESTION_0    = 200; | ||||
|  | ||||
|   MENU_ID_SPELLCHECK_SUGGESTION_1    = 201; | ||||
|  | ||||
|   MENU_ID_SPELLCHECK_SUGGESTION_2    = 202; | ||||
|  | ||||
|   MENU_ID_SPELLCHECK_SUGGESTION_3    = 203; | ||||
|  | ||||
|   MENU_ID_SPELLCHECK_SUGGESTION_4    = 204; | ||||
|  | ||||
|   MENU_ID_SPELLCHECK_SUGGESTION_LAST = 204; | ||||
|  | ||||
|   MENU_ID_NO_SPELLING_SUGGESTIONS    = 205; | ||||
|  | ||||
|   MENU_ID_ADD_TO_DICTIONARY          = 206; | ||||
|  | ||||
|   MENU_ID_CUSTOM_FIRST               = 220; | ||||
|  | ||||
|   MENU_ID_CUSTOM_LAST                = 250; | ||||
|  | ||||
|   MENU_ID_USER_FIRST                 = 26500; | ||||
|  | ||||
|   MENU_ID_USER_LAST                  = 28500; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_context_menu_type_flags_t) | ||||
|   CM_TYPEFLAG_NONE      = 0; | ||||
|   CM_TYPEFLAG_PAGE      = 1 shl 0; | ||||
|   CM_TYPEFLAG_FRAME     = 1 shl 1; | ||||
|   CM_TYPEFLAG_LINK      = 1 shl 2; | ||||
|   CM_TYPEFLAG_MEDIA     = 1 shl 3; | ||||
|   CM_TYPEFLAG_SELECTION = 1 shl 4; | ||||
|   CM_TYPEFLAG_EDITABLE  = 1 shl 5; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_context_menu_media_state_flags_t) | ||||
|   CM_MEDIAFLAG_NONE                  = 0; | ||||
| @@ -226,6 +300,18 @@ const | ||||
|   CM_MEDIAFLAG_LOOP                  = 1 shl 3; | ||||
|   CM_MEDIAFLAG_CAN_SAVE              = 1 shl 4; | ||||
|   CM_MEDIAFLAG_HAS_AUDIO             = 1 shl 5; | ||||
|   CM_MEDIAFLAG_HAS_VIDEO             = 1 shl 6; | ||||
|   CM_MEDIAFLAG_CONTROL_ROOT_ELEMENT  = 1 shl 7; | ||||
|   CM_MEDIAFLAG_CAN_PRINT             = 1 shl 8; | ||||
|   CM_MEDIAFLAG_CAN_ROTATE            = 1 shl 9; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_context_menu_edit_state_flags_t) | ||||
|   CM_EDITFLAG_NONE                   = 0; | ||||
|   CM_EDITFLAG_CAN_UNDO               = 1 shl 0; | ||||
|   CM_EDITFLAG_CAN_REDO               = 1 shl 1; | ||||
|   CM_EDITFLAG_CAN_CUT                = 1 shl 2; | ||||
|   CM_EDITFLAG_CAN_COPY               = 1 shl 3; | ||||
|   CM_EDITFLAG_CAN_PASTE              = 1 shl 4; | ||||
|   CM_EDITFLAG_CAN_DELETE             = 1 shl 5; | ||||
|   CM_EDITFLAG_CAN_SELECT_ALL         = 1 shl 6; | ||||
|   CM_EDITFLAG_CAN_TRANSLATE          = 1 shl 7; | ||||
| @@ -272,6 +358,7 @@ const | ||||
|   CEF_CONTENT_SETTING_ASK           = 3; | ||||
|   CEF_CONTENT_SETTING_SESSION_ONLY  = 4; | ||||
|   CEF_CONTENT_SETTING_NUM_SETTINGS  = 5; | ||||
|  | ||||
|   // Used in the severity parameter of cef_log | ||||
|   CEF_LOG_SEVERITY_INFO    = 0; | ||||
|   CEF_LOG_SEVERITY_WARNING = 1; | ||||
|   | ||||
| @@ -112,7 +112,7 @@ end; | ||||
|  | ||||
| function TCefContextMenuParamsRef.GetEditStateFlags: TCefContextMenuEditStateFlags; | ||||
| begin | ||||
|   Byte(Result) := PCefContextMenuParams(FData).get_edit_state_flags(PCefContextMenuParams(FData)); | ||||
|   Result := PCefContextMenuParams(FData).get_edit_state_flags(PCefContextMenuParams(FData)); | ||||
| end; | ||||
|  | ||||
| function TCefContextMenuParamsRef.GetFrameCharset: ustring; | ||||
| @@ -132,7 +132,7 @@ end; | ||||
|  | ||||
| function TCefContextMenuParamsRef.GetMediaStateFlags: TCefContextMenuMediaStateFlags; | ||||
| begin | ||||
|   Word(Result) := PCefContextMenuParams(FData).get_media_state_flags(PCefContextMenuParams(FData)); | ||||
|   Result := PCefContextMenuParams(FData).get_media_state_flags(PCefContextMenuParams(FData)); | ||||
| end; | ||||
|  | ||||
| function TCefContextMenuParamsRef.GetMediaType: TCefContextMenuMediaType; | ||||
| @@ -167,7 +167,7 @@ end; | ||||
|  | ||||
| function TCefContextMenuParamsRef.GetTypeFlags: TCefContextMenuTypeFlags; | ||||
| begin | ||||
|   Byte(Result) := PCefContextMenuParams(FData).get_type_flags(PCefContextMenuParams(FData)); | ||||
|   Result := PCefContextMenuParams(FData).get_type_flags(PCefContextMenuParams(FData)); | ||||
| end; | ||||
|  | ||||
| function TCefContextMenuParamsRef.GetUnfilteredLinkUrl: ustring; | ||||
|   | ||||
| @@ -60,7 +60,7 @@ type | ||||
|  | ||||
|   TCefFastDomVisitor = class(TCefDomVisitorOwn) | ||||
|     protected | ||||
|       FProc: TCefDomVisitorProc; | ||||
|       FProc    : TCefDomVisitorProc; | ||||
|  | ||||
|       procedure visit(const document: ICefDomDocument); override; | ||||
|  | ||||
| @@ -68,6 +68,18 @@ type | ||||
|       constructor Create(const proc: TCefDomVisitorProc); reintroduce; virtual; | ||||
|   end; | ||||
|  | ||||
|   TCefFastDomVisitor2 = class(TCefDomVisitorOwn) | ||||
|     protected | ||||
|       FProc    : TCefDomVisitorProc2; | ||||
|       FBrowser : ICefBrowser; | ||||
|  | ||||
|       procedure visit(const document: ICefDomDocument); override; | ||||
|  | ||||
|     public | ||||
|       constructor Create(const browser: ICefBrowser; const proc: TCefDomVisitorProc2); reintroduce; virtual; | ||||
|       destructor  Destroy; override; | ||||
|   end; | ||||
|  | ||||
| implementation | ||||
|  | ||||
| uses | ||||
| @@ -97,6 +109,7 @@ end; | ||||
| constructor TCefFastDomVisitor.Create(const proc: TCefDomVisitorProc); | ||||
| begin | ||||
|   inherited Create; | ||||
|  | ||||
|   FProc := proc; | ||||
| end; | ||||
|  | ||||
| @@ -105,4 +118,27 @@ begin | ||||
|   FProc(document); | ||||
| end; | ||||
|  | ||||
|  | ||||
| // TCefFastDomVisitor2 | ||||
|  | ||||
| constructor TCefFastDomVisitor2.Create(const browser: ICefBrowser; const proc: TCefDomVisitorProc2); | ||||
| begin | ||||
|   inherited Create; | ||||
|  | ||||
|   FBrowser := browser; | ||||
|   FProc    := proc; | ||||
| end; | ||||
|  | ||||
| destructor TCefFastDomVisitor2.Destroy; | ||||
| begin | ||||
|   FBrowser := nil; | ||||
|  | ||||
|   inherited Destroy; | ||||
| end; | ||||
|  | ||||
| procedure TCefFastDomVisitor2.visit(const document: ICefDomDocument); | ||||
| begin | ||||
|   FProc(FBrowser, document); | ||||
| end; | ||||
|  | ||||
| end. | ||||
|   | ||||
							
								
								
									
										777
									
								
								source/uCEFDragAndDropMgr.pas
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										777
									
								
								source/uCEFDragAndDropMgr.pas
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,777 @@ | ||||
| // ************************************************************************ | ||||
| // ***************************** CEF4Delphi ******************************* | ||||
| // ************************************************************************ | ||||
| // | ||||
| // CEF4Delphi is based on DCEF3 which uses CEF3 to embed a chromium-based | ||||
| // browser in Delphi applications. | ||||
| // | ||||
| // The original license of DCEF3 still applies to CEF4Delphi. | ||||
| // | ||||
| // For more information about CEF4Delphi visit : | ||||
| //         https://www.briskbard.com/index.php?lang=en&pageid=cef | ||||
| // | ||||
| //        Copyright � 2017 Salvador D�az Fau. All rights reserved. | ||||
| // | ||||
| // ************************************************************************ | ||||
| // ************ vvvv Original license and comments below vvvv ************* | ||||
| // ************************************************************************ | ||||
| (* | ||||
|  *                       Delphi Chromium Embedded 3 | ||||
|  * | ||||
|  * Usage allowed under the restrictions of the Lesser GNU General Public License | ||||
|  * or alternatively the restrictions of the Mozilla Public License 1.1 | ||||
|  * | ||||
|  * Software distributed under the License is distributed on an "AS IS" basis, | ||||
|  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for | ||||
|  * the specific language governing rights and limitations under the License. | ||||
|  * | ||||
|  * Unit owner : Henri Gourvest <hgourvest@gmail.com> | ||||
|  * Web site   : http://www.progdigy.com | ||||
|  * Repository : http://code.google.com/p/delphichromiumembedded/ | ||||
|  * Group      : http://groups.google.com/group/delphichromiumembedded | ||||
|  * | ||||
|  * Embarcadero Technologies, Inc is not permitted to use or redistribute | ||||
|  * this source code without explicit permission. | ||||
|  * | ||||
|  *) | ||||
|  | ||||
| unit uCEFDragAndDropMgr; | ||||
|  | ||||
| {$I cef.inc} | ||||
|  | ||||
| interface | ||||
|  | ||||
| uses | ||||
|   {$IFDEF DELPHI16_UP} | ||||
|   WinApi.Windows, System.Classes, Vcl.Controls, System.SysUtils, System.Math, | ||||
|   WinApi.ActiveX, WinApi.ShlObj, WinApi.ShellApi, System.StrUtils, System.AnsiStrings, | ||||
|   {$ELSE} | ||||
|   Windows, Classes, Controls, SysUtils, Math, | ||||
|   ActiveX, ShlObj, Shellapi, StrUtils, AnsiStrings, | ||||
|   {$ENDIF} | ||||
|   uCEFDragData, uCEFInterfaces, uCEFTypes, uOLEDragAndDrop; | ||||
|  | ||||
| type | ||||
|   TDragEnterEvent = procedure(Sender: TObject; const aDragData : ICefDragData; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint) of object; | ||||
|   TDragOverEvent  = procedure(Sender: TObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint) of object; | ||||
|   TDropEvent      = procedure(Sender: TObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint) of object; | ||||
|  | ||||
|   TCEFDragAndDropMgr = class(TOLEDragAndDropMgr) | ||||
|     protected | ||||
|       FCurrentDragData    : ICefDragData; | ||||
|       FOLEEffect          : integer; | ||||
|       FMozURLFormat       : cardinal; | ||||
|       FHTMLFormat         : cardinal; | ||||
|       FFileDescFormat     : cardinal; | ||||
|       FFileContentsFormat : cardinal; | ||||
|  | ||||
|       FOnDragEnter        : TDragEnterEvent; | ||||
|       FOnDragOver         : TDragOverEvent; | ||||
|       FOnDragLeave        : TNotifyEvent; | ||||
|       FOnDrop             : TDropEvent; | ||||
|  | ||||
|       function  DragDataToDataObject_Unicode(const aDragData : ICefDragData; var aFormat : TFormatEtc; var aMedium : TStgMedium) : boolean; | ||||
|       function  DragDataToDataObject_Text(const aDragData : ICefDragData; var aFormat : TFormatEtc;  var aMedium : TStgMedium) : boolean; | ||||
|       function  DragDataToDataObject_HTML(const aDragData : ICefDragData; var aFormat : TFormatEtc; var aMedium : TStgMedium) : boolean; | ||||
|       function  DragDataToDataObject_URL(const aDragData : ICefDragData; var aFormat : TFormatEtc; var aMedium : TStgMedium) : boolean; | ||||
|       function  DragDataToDataObject_FileDesc(const aDragData : ICefDragData; var aFormat : TFormatEtc; var aMedium : TStgMedium) : boolean; | ||||
|       function  DragDataToDataObject_FileContents(const aDragData : ICefDragData; var aFormat : TFormatEtc; var aMedium : TStgMedium) : boolean; | ||||
|  | ||||
|       procedure DataObjectToDragData(const aDataObject : IDataObject; var aDragData : ICefDragData); | ||||
|       function  DataObjectToDragData_Unicode(var aMedium : TStgMedium; var aDragData : ICefDragData) : boolean; | ||||
|       function  DataObjectToDragData_Text(var aMedium : TStgMedium; var aDragData : ICefDragData) : boolean; | ||||
|       function  DataObjectToDragData_URL(var aMedium : TStgMedium; var aDragData : ICefDragData) : boolean; | ||||
|       function  DataObjectToDragData_HTML(var aMedium : TStgMedium; var aDragData : ICefDragData) : boolean; | ||||
|       function  DataObjectToDragData_FileDrop(var aMedium : TStgMedium; var aDragData : ICefDragData) : boolean; | ||||
|  | ||||
|       function  HtmlToCFHtml(var aHTML, aBaseURL : ustring) : AnsiString; | ||||
|       procedure CFHtmlToHtml(const cf_html : AnsiString; var html, base_url : string); | ||||
|       function  FindStringField(const aString, aFieldName : AnsiString; var aPos : integer) : string; | ||||
|  | ||||
|     public | ||||
|       constructor Create; | ||||
|       destructor  Destroy; override; | ||||
|       function    StartDragging : TCefDragOperation; | ||||
|       function    CloneDragData(const aDragData : ICefDragData; aAllowedOps : TCefDragOperations) : boolean; | ||||
|  | ||||
|       function    DragEnter(const DataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; override; | ||||
|       function    DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; override; | ||||
|       function    DragLeave: HRESULT; override; | ||||
|       function    Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; override; | ||||
|  | ||||
|       property    OnDragEnter        : TDragEnterEvent  read FOnDragEnter  write FOnDragEnter; | ||||
|       property    OnDragOver         : TDragOverEvent   read FOnDragOver   write FOnDragOver; | ||||
|       property    OnDragLeave        : TNotifyEvent     read FOnDragLeave  write FOnDragLeave; | ||||
|       property    OnDrop             : TDropEvent       read FOnDrop       write FOnDrop; | ||||
|   end; | ||||
|  | ||||
|  | ||||
| implementation | ||||
|  | ||||
| uses | ||||
|   uCEFMiscFunctions, uCEFWriteHandler, uCEFStreamWriter, uCEFConstants; | ||||
|  | ||||
| // ***************************************************** | ||||
| // **************** TCEFDragAndDropMgr ***************** | ||||
| // ***************************************************** | ||||
|  | ||||
| constructor TCEFDragAndDropMgr.Create; | ||||
| begin | ||||
|   inherited Create; | ||||
|  | ||||
|   FOnDragEnter        := nil; | ||||
|   FOnDragOver         := nil; | ||||
|   FOnDragLeave        := nil; | ||||
|   FOnDrop             := nil; | ||||
|   FCurrentDragData    := nil; | ||||
|  | ||||
|   FMozURLFormat       := RegisterClipboardFormat('text/x-moz-url'); | ||||
|   FHTMLFormat         := RegisterClipboardFormat('HTML Format'); | ||||
|   FFileDescFormat     := RegisterClipboardFormat(CFSTR_FILEDESCRIPTOR); | ||||
|   FFileContentsFormat := RegisterClipboardFormat(CFSTR_FILECONTENTS); | ||||
| end; | ||||
|  | ||||
| destructor TCEFDragAndDropMgr.Destroy; | ||||
| begin | ||||
|   FCurrentDragData := nil; | ||||
|  | ||||
|   inherited Destroy; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DragDataToDataObject_Unicode(const aDragData : ICefDragData; | ||||
|                                                          var   aFormat   : TFormatEtc; | ||||
|                                                          var   aMedium   : TStgMedium) : boolean; | ||||
| var | ||||
|   TempText : ustring; | ||||
| begin | ||||
|   Result   := False; | ||||
|   TempText := aDragData.GetFragmentText; | ||||
|  | ||||
|   if (length(TempText) > 0) then | ||||
|     begin | ||||
|       aFormat.ptd      := nil; | ||||
|       aFormat.dwAspect := DVASPECT_CONTENT; | ||||
|       aFormat.lindex   := -1; | ||||
|       aFormat.tymed    := TYMED_HGLOBAL; | ||||
|       aFormat.cfFormat := CF_UNICODETEXT; | ||||
|  | ||||
|       TempText         := TempText + #0; | ||||
|       Result           := GetStorageForString(aMedium, TempText); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DragDataToDataObject_Text(const aDragData : ICefDragData; | ||||
|                                                       var   aFormat   : TFormatEtc; | ||||
|                                                       var   aMedium   : TStgMedium) : boolean; | ||||
| var | ||||
|   TempText : AnsiString; | ||||
| begin | ||||
|   Result   := False; | ||||
|   TempText := UTF8Encode(aDragData.GetFragmentText); | ||||
|  | ||||
|   if (length(TempText) > 0) then | ||||
|     begin | ||||
|       aFormat.ptd      := nil; | ||||
|       aFormat.dwAspect := DVASPECT_CONTENT; | ||||
|       aFormat.lindex   := -1; | ||||
|       aFormat.tymed    := TYMED_HGLOBAL; | ||||
|       aFormat.cfFormat := CF_TEXT; | ||||
|  | ||||
|       TempText         := TempText + #0; | ||||
|       Result           := GetStorageForString(aMedium, TempText); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DragDataToDataObject_HTML(const aDragData : ICefDragData; | ||||
|                                                       var   aFormat   : TFormatEtc; | ||||
|                                                       var   aMedium   : TStgMedium) : boolean; | ||||
| var | ||||
|   TempBaseURL, TempHTML : ustring; | ||||
|   TempAnsi : AnsiString; | ||||
| begin | ||||
|   Result   := False; | ||||
|   TempHTML := aDragData.GetFragmentHtml; | ||||
|  | ||||
|   if (length(TempHTML) > 0) then | ||||
|     begin | ||||
|       aFormat.ptd      := nil; | ||||
|       aFormat.dwAspect := DVASPECT_CONTENT; | ||||
|       aFormat.lindex   := -1; | ||||
|       aFormat.tymed    := TYMED_HGLOBAL; | ||||
|       aFormat.cfFormat := FHTMLFormat; | ||||
|  | ||||
|       TempBaseURL      := aDragData.GetFragmentBaseURL; | ||||
|       TempAnsi         := HtmlToCFHtml(TempHTML, TempBaseURL) + #0; | ||||
|       Result           := GetStorageForString(aMedium, TempAnsi); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DragDataToDataObject_URL(const aDragData : ICefDragData; | ||||
|                                                      var   aFormat   : TFormatEtc; | ||||
|                                                      var   aMedium   : TStgMedium) : boolean; | ||||
| var | ||||
|   TempURL, TempTitle : ustring; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if aDragData.IsLink then | ||||
|     begin | ||||
|       TempURL   := aDragData.GetLinkURL; | ||||
|       TempTitle := aDragData.GetLinkTitle; | ||||
|  | ||||
|       if (length(TempURL) > 0) then | ||||
|         begin | ||||
|           aFormat.ptd      := nil; | ||||
|           aFormat.dwAspect := DVASPECT_CONTENT; | ||||
|           aFormat.lindex   := -1; | ||||
|           aFormat.tymed    := TYMED_HGLOBAL; | ||||
|           aFormat.cfFormat := FMozURLFormat; | ||||
|  | ||||
|           if (length(TempTitle) > 0) then | ||||
|             TempURL := TempURL + #13 + TempTitle; | ||||
|  | ||||
|           TempURL := TempURL + #0; | ||||
|           Result  := GetStorageForString(aMedium, TempURL); | ||||
|         end; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DragDataToDataObject_FileDesc(const aDragData : ICefDragData; | ||||
|                                                           var   aFormat   : TFormatEtc; | ||||
|                                                           var   aMedium   : TStgMedium) : boolean; | ||||
| var | ||||
|   TempFileName : ustring; | ||||
|   TempSize     : cardinal; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if aDragData.IsFile then | ||||
|     begin | ||||
|       TempSize     := aDragData.GetFileContents(nil); | ||||
|       TempFileName := aDragData.GetFileName; | ||||
|  | ||||
|       if (TempSize > 0) and (length(TempFileName) > 0) then | ||||
|         begin | ||||
|           aFormat.ptd      := nil; | ||||
|           aFormat.dwAspect := DVASPECT_CONTENT; | ||||
|           aFormat.lindex   := -1; | ||||
|           aFormat.tymed    := TYMED_HGLOBAL; | ||||
|           aFormat.cfFormat := FFileDescFormat; | ||||
|  | ||||
|           TempFileName     := TempFileName + #0; | ||||
|           Result           := GetStorageForFileDescriptor(aMedium, TempFileName); | ||||
|         end; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DragDataToDataObject_FileContents(const aDragData : ICefDragData; | ||||
|                                                               var   aFormat   : TFormatEtc; | ||||
|                                                               var   aMedium   : TStgMedium) : boolean; | ||||
| var | ||||
|   TempHandler   : ICefWriteHandler; | ||||
|   TempWriter    : ICefStreamWriter; | ||||
|   TempSize      : cardinal; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if aDragData.IsFile then | ||||
|     begin | ||||
|       TempSize := aDragData.GetFileContents(nil); | ||||
|  | ||||
|       if (TempSize > 0) then | ||||
|         begin | ||||
|           aFormat.ptd      := nil; | ||||
|           aFormat.dwAspect := DVASPECT_CONTENT; | ||||
|           aFormat.lindex   := -1; | ||||
|           aFormat.tymed    := TYMED_HGLOBAL; | ||||
|           aFormat.cfFormat := FFileContentsFormat; | ||||
|  | ||||
|           TempHandler := TCefBytesWriteHandler.Create(TempSize); | ||||
|           TempWriter  := TCefStreamWriterRef.CreateForHandler(TempHandler); | ||||
|  | ||||
|           aDragData.GetFileContents(TempWriter); | ||||
|  | ||||
|           TempSize    := cardinal(TCefBytesWriteHandler(TempHandler).GetDataSize); | ||||
|           Result      := GetStorageForBytes(aMedium, TCefBytesWriteHandler(TempHandler).GetData, TempSize); | ||||
|         end; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.HtmlToCFHtml(var aHTML, aBaseURL : ustring) : AnsiString; | ||||
| const | ||||
|   CRLF           : AnsiString = #13+#10; | ||||
|   HTML_START_TAG : AnsiString = '<html>'; | ||||
|   HTML_END_TAG   : AnsiString = '</html>'; | ||||
|   BODY_START_TAG : AnsiString = '<body>'; | ||||
|   BODY_END_TAG   : AnsiString = '</body>'; | ||||
|   FRAGMENT_START : AnsiString = '<!--StartFragment-->'; | ||||
|   FRAGMENT_END   : AnsiString = '<!--EndFragment-->'; | ||||
|   PATTERN1       : AnsiString = '<<<<<1'; | ||||
|   PATTERN2       : AnsiString = '<<<<<2'; | ||||
|   PATTERN3       : AnsiString = '<<<<<3'; | ||||
|   PATTERN4       : AnsiString = '<<<<<4'; | ||||
| var | ||||
|   TempString, TempDigits : AnsiString; | ||||
|   TempPos : integer; | ||||
| begin | ||||
|   if (length(aHTML) = 0) then | ||||
|     begin | ||||
|       Result := ''; | ||||
|       exit; | ||||
|     end; | ||||
|  | ||||
|   TempString := 'Version:0.9'                + CRLF + | ||||
|                 'StartHTML:'      + PATTERN1 + CRLF + | ||||
|                 'EndHTML:'        + PATTERN2 + CRLF + | ||||
|                 'StartFragment:'  + PATTERN3 + CRLF + | ||||
|                 'EndFragment:'    + PATTERN4 + CRLF + | ||||
|                 'StartSelection:' + PATTERN3 + CRLF + | ||||
|                 'EndSelection:'   + PATTERN4; | ||||
|  | ||||
|   if (length(aBaseURL) > 0) then | ||||
|     TempString := TempString + CRLF + 'SourceURL:' + Utf8Encode(aBaseURL); | ||||
|  | ||||
|   TempString := TempString        + CRLF + | ||||
|                 HTML_START_TAG    + CRLF + | ||||
|                 BODY_START_TAG    + CRLF + | ||||
|                 FRAGMENT_START    + CRLF + | ||||
|                 Utf8Encode(aHTML) + CRLF + | ||||
|                 FRAGMENT_END      + CRLF + | ||||
|                 BODY_END_TAG      + CRLF + | ||||
|                 HTML_END_TAG; | ||||
|  | ||||
|   TempPos := System.AnsiStrings.PosEx(HTML_START_TAG, TempString) + length(HTML_START_TAG); | ||||
|   FmtStr(TempDigits, '%.6d', [TempPos]); | ||||
|   TempString := System.AnsiStrings.StringReplace(TempString, PATTERN1, TempDigits, [rfReplaceAll]); | ||||
|  | ||||
|   TempPos := System.AnsiStrings.PosEx(HTML_END_TAG, TempString); | ||||
|   FmtStr(TempDigits, '%.6d', [TempPos]); | ||||
|   TempString := System.AnsiStrings.StringReplace(TempString, PATTERN2, TempDigits, [rfReplaceAll]); | ||||
|  | ||||
|   TempPos := System.AnsiStrings.PosEx(FRAGMENT_START, TempString) + length(FRAGMENT_START); | ||||
|   FmtStr(TempDigits, '%.6d', [TempPos]); | ||||
|   TempString := System.AnsiStrings.StringReplace(TempString, PATTERN3, TempDigits, [rfReplaceAll]); | ||||
|  | ||||
|   TempPos := System.AnsiStrings.PosEx(FRAGMENT_END, TempString); | ||||
|   FmtStr(TempDigits, '%.6d', [TempPos]); | ||||
|   TempString := System.AnsiStrings.StringReplace(TempString, PATTERN4, TempDigits, [rfReplaceAll]); | ||||
|  | ||||
|   Result := TempString; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.FindStringField(const aString, aFieldName : AnsiString; var aPos : integer) : string; | ||||
| var | ||||
|   TempLen, i, TempValuePos : integer; | ||||
|   TempString : AnsiString; | ||||
| begin | ||||
|   aPos    := pos(aFieldName, aString); | ||||
|   TempLen := length(aString); | ||||
|  | ||||
|   if (aPos > 0) then | ||||
|     begin | ||||
|       TempValuePos := aPos + length(aFieldName); | ||||
|       i            := TempValuePos; | ||||
|  | ||||
|       while (i <= TempLen) and not(CharInSet(aString[i], [#13, #10])) do inc(i); | ||||
|  | ||||
|       TempString := copy(aString, TempValuePos, i - TempValuePos); | ||||
|       if (length(TempString) > 0) then Result := UTF8ToString(TempString); | ||||
|     end | ||||
|    else | ||||
|     Result := ''; | ||||
| end; | ||||
|  | ||||
| procedure TCEFDragAndDropMgr.CFHtmlToHtml(const cf_html : AnsiString; var html, base_url : string); | ||||
| const | ||||
|   CFHTML_VERSION   : AnsiString = 'Version:'; | ||||
|   CFHTML_STARTHTML : AnsiString = 'StartHTML:'; | ||||
|   CFHTML_ENDHTML   : AnsiString = 'EndHTML:'; | ||||
|   CFHTML_STARTFRAG : AnsiString = 'StartFragment:'; | ||||
|   CFHTML_ENDFRAG   : AnsiString = 'EndFragment:'; | ||||
|   CFHTML_STARSEL   : AnsiString = 'StartSelection:'; | ||||
|   CFHTML_ENDSEL    : AnsiString = 'EndSelection:'; | ||||
|   CFHTML_SOURCEURL : AnsiString = 'SourceURL:'; | ||||
|   FRAGMENT_START   : AnsiString = '<!--StartFragment'; | ||||
|   FRAGMENT_END     : AnsiString = '<!--EndFragment'; | ||||
| var | ||||
|   TempHTMLStart, TempHTMLEnd : integer; | ||||
|   TempFragStart, TempFragEnd : integer; | ||||
|   TempVersionPos, TempSourcePos : integer; | ||||
|   TempHTMLStartPos, TempHTMLEndPos : integer; | ||||
|   TempFragStartPos, TempFragEndPos : integer; | ||||
|   TempFragStartCommentPos, TempFragEndCommentPos : integer; | ||||
| begin | ||||
|   html     := ''; | ||||
|   base_url := ''; | ||||
|  | ||||
|   if (FindStringField(cf_html, CFHTML_VERSION, TempVersionPos) <> '0.9') then exit; | ||||
|  | ||||
|   TempHTMLStart := StrToIntDef(FindStringField(cf_html, CFHTML_STARTHTML, TempHTMLStartPos), -1); | ||||
|   TempHTMLEnd   := StrToIntDef(FindStringField(cf_html, CFHTML_ENDHTML,   TempHTMLEndPos),   -1); | ||||
|   TempFragStart := StrToIntDef(FindStringField(cf_html, CFHTML_STARTFRAG, TempFragStartPos), -1); | ||||
|   TempFragEnd   := StrToIntDef(FindStringField(cf_html, CFHTML_ENDFRAG,   TempFragEndPos),   -1); | ||||
|  | ||||
|   if (TempVersionPos   < TempHTMLStartPos) and | ||||
|      (TempHTMLStartPos < TempHTMLEndPos)   and | ||||
|      (TempHTMLEndPos   < TempFragStartPos) and | ||||
|      (TempFragStartPos < TempFragEndPos)   then | ||||
|     begin | ||||
|       TempFragStartCommentPos := pos(FRAGMENT_START, cf_html); | ||||
|  | ||||
|       if (TempFragStartCommentPos > 0) then | ||||
|         TempFragStartCommentPos := System.AnsiStrings.PosEx('-->', cf_html, TempFragStartCommentPos + length(FRAGMENT_START)); | ||||
|  | ||||
|       if (TempFragStartCommentPos > 0) then | ||||
|         begin | ||||
|           TempFragStartCommentPos := TempFragStartCommentPos + 3; | ||||
|           TempFragEndCommentPos   := System.AnsiStrings.PosEx(FRAGMENT_END, cf_html, TempFragStartCommentPos); | ||||
|         end | ||||
|        else | ||||
|         if (TempFragStart > 0) and | ||||
|            (TempFragEnd   > 0) then | ||||
|           begin | ||||
|             TempFragStartCommentPos := TempFragStart; | ||||
|             TempFragEndCommentPos   := TempFragEnd; | ||||
|           end | ||||
|          else | ||||
|           if (TempHTMLStart > 0) and | ||||
|              (TempHTMLEnd   > 0) then | ||||
|             begin | ||||
|               TempFragStartCommentPos := TempHTMLStart; | ||||
|               TempFragEndCommentPos   := TempHTMLEnd; | ||||
|             end | ||||
|            else | ||||
|             exit; | ||||
|  | ||||
|       if (TempFragStartCommentPos > 0) and | ||||
|          (TempFragEndCommentPos   > 0) and | ||||
|          (TempFragEndCommentPos   > TempFragStartCommentPos) then | ||||
|         begin | ||||
|           html     := UTF8ToString(copy(cf_html, TempFragStartCommentPos, TempFragEndCommentPos - TempFragStartCommentPos)); | ||||
|           base_url := FindStringField(cf_html, CFHTML_SOURCEURL, TempSourcePos); | ||||
|         end; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DataObjectToDragData_Unicode(var aMedium : TStgMedium; var aDragData : ICefDragData) : boolean; | ||||
| var | ||||
|   TempText : string; | ||||
|   TempPointer : pointer; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if (aMedium.hGlobal <> 0) then | ||||
|     begin | ||||
|       TempPointer := GlobalLock(aMedium.hGlobal); | ||||
|  | ||||
|       if (TempPointer <> nil) then | ||||
|         begin | ||||
|           TempText := PWideChar(TempPointer); | ||||
|           aDragData.SetFragmentText(TempText); | ||||
|           GlobalUnlock(aMedium.hGlobal); | ||||
|           Result   := True; | ||||
|         end; | ||||
|  | ||||
|       ReleaseStgMedium(aMedium); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DataObjectToDragData_Text(var aMedium : TStgMedium; var aDragData : ICefDragData) : boolean; | ||||
| var | ||||
|   TempText : string; | ||||
|   TempPointer : pointer; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if (aMedium.hGlobal <> 0) then | ||||
|     begin | ||||
|       TempPointer := GlobalLock(aMedium.hGlobal); | ||||
|  | ||||
|       if (TempPointer <> nil) then | ||||
|         begin | ||||
|           TempText := UTF8ToString(PAnsiChar(TempPointer)); | ||||
|           aDragData.SetFragmentText(TempText); | ||||
|           GlobalUnlock(aMedium.hGlobal); | ||||
|           Result   := True; | ||||
|         end; | ||||
|  | ||||
|       ReleaseStgMedium(aMedium); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DataObjectToDragData_URL(var aMedium : TStgMedium; var aDragData : ICefDragData) : boolean; | ||||
| var | ||||
|   TempText, TempURL, TempTitle : string; | ||||
|   TempPos : integer; | ||||
|   TempPointer : pointer; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if (aMedium.hGlobal <> 0) then | ||||
|     begin | ||||
|       TempPointer := GlobalLock(aMedium.hGlobal); | ||||
|  | ||||
|       if (TempPointer <> nil) then | ||||
|         begin | ||||
|           TempText := PWideChar(TempPointer); | ||||
|           TempPos  := LastDelimiter(#13, TempText); | ||||
|  | ||||
|           if (TempPos > 0) then | ||||
|             begin | ||||
|               TempURL   := copy(TempText, 1, pred(TempPos)); | ||||
|               TempTitle := copy(TempText, succ(TempPos), length(TempText)); | ||||
|             end | ||||
|            else | ||||
|             begin | ||||
|               TempURL   := TempText; | ||||
|               TempTitle := TempText; | ||||
|             end; | ||||
|  | ||||
|           aDragData.SetLinkURL(TempURL); | ||||
|           aDragData.SetLinkTitle(TempTitle); | ||||
|           GlobalUnlock(aMedium.hGlobal); | ||||
|           Result := True; | ||||
|         end; | ||||
|  | ||||
|       ReleaseStgMedium(aMedium); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DataObjectToDragData_HTML(var aMedium : TStgMedium; var aDragData : ICefDragData) : boolean; | ||||
| var | ||||
|   TempAnsi : AnsiString; | ||||
|   TempHTML, TempBaseURL : string; | ||||
|   TempPointer : pointer; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if (aMedium.hGlobal <> 0) then | ||||
|     begin | ||||
|       TempPointer := GlobalLock(aMedium.hGlobal); | ||||
|  | ||||
|       if (TempPointer <> nil) then | ||||
|         begin | ||||
|           TempAnsi := PAnsiChar(TempPointer); | ||||
|  | ||||
|           CFHtmlToHtml(TempAnsi, TempHTML, TempBaseURL); | ||||
|  | ||||
|           aDragData.SetFragmentHtml(TempHTML); | ||||
|           aDragData.SetFragmentBaseURL(TempBaseURL); | ||||
|           GlobalUnlock(aMedium.hGlobal); | ||||
|           Result := True; | ||||
|         end; | ||||
|  | ||||
|       ReleaseStgMedium(aMedium); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DataObjectToDragData_FileDrop(var aMedium : TStgMedium; var aDragData : ICefDragData) : boolean; | ||||
| var | ||||
|   TempHdrop : HDROP; | ||||
|   TempNumFiles, i, TempLen : integer; | ||||
|   TempText, TempFilePath, TempFileName : string; | ||||
|   TempPointer : pointer; | ||||
|   TempAdded : boolean; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if (aMedium.hGlobal <> 0) then | ||||
|     begin | ||||
|       TempPointer := GlobalLock(aMedium.hGlobal); | ||||
|  | ||||
|       if (TempPointer <> nil) then | ||||
|         begin | ||||
|           TempHdrop    := THandle(TempPointer); | ||||
|           TempNumFiles := DragQueryFile(TempHdrop, $FFFFFFFF, nil, 0); | ||||
|           TempAdded    := False; | ||||
|           i            := 0; | ||||
|  | ||||
|           SetLength(TempText, succ(MAX_PATH)); | ||||
|  | ||||
|           while (i < TempNumFiles) do | ||||
|             begin | ||||
|               TempLen := DragQueryFile(TempHdrop, i, @TempText[1], succ(MAX_PATH)); | ||||
|  | ||||
|               if (TempLen > 0) then | ||||
|                 begin | ||||
|                   TempFilePath := copy(TempText, 1, TempLen); | ||||
|                   TempFileName := ExtractFileName(TempFilePath); | ||||
|                   TempAdded    := True; | ||||
|  | ||||
|                   if (length(TempFileName) > 0) then | ||||
|                     aDragData.AddFile(TempFilePath, TempFileName) | ||||
|                    else | ||||
|                     aDragData.AddFile(TempFilePath, TempFilePath); | ||||
|                 end; | ||||
|  | ||||
|               inc(i); | ||||
|             end; | ||||
|  | ||||
|           GlobalUnlock(aMedium.hGlobal); | ||||
|           DragFinish(TempHdrop); | ||||
|           Result := TempAdded; | ||||
|         end; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| procedure TCEFDragAndDropMgr.DataObjectToDragData(const aDataObject : IDataObject; var aDragData : ICefDragData); | ||||
| var | ||||
|   TempEnumFrmt : IEnumFormatEtc; | ||||
|   TempFormat   : TFormatEtc; | ||||
|   TempMedium   : TStgMedium; | ||||
|   TempUsed     : boolean; | ||||
| begin | ||||
|   try | ||||
|     aDragData := TCefDragDataRef.New; | ||||
|  | ||||
|     if (aDataObject <> nil) and (aDataObject.EnumFormatEtc(DATADIR_GET, TempEnumFrmt) = S_OK) then | ||||
|       begin | ||||
|         TempEnumFrmt.Reset; | ||||
|         TempUsed := False; | ||||
|  | ||||
|         while (TempEnumFrmt.Next(1, TempFormat, nil) = S_OK) and not(TempUsed) do | ||||
|           begin | ||||
|             try | ||||
|               TempMedium.unkForRelease := nil; | ||||
|  | ||||
|               if ((TempFormat.tymed and TYMED_HGLOBAL) <> 0) and | ||||
|                  (aDataObject.GetData(TempFormat, TempMedium) = S_OK) then | ||||
|                 begin | ||||
|                   if      (TempFormat.cfFormat = CF_UNICODETEXT) then TempUsed := DataObjectToDragData_Unicode(TempMedium, aDragData) | ||||
|                   else if (TempFormat.cfFormat = CF_TEXT)        then TempUsed := DataObjectToDragData_Text(TempMedium, aDragData) | ||||
|                   else if (TempFormat.cfFormat = FMozURLFormat)  then TempUsed := DataObjectToDragData_URL(TempMedium, aDragData) | ||||
|                   else if (TempFormat.cfFormat = FHTMLFormat)    then TempUsed := DataObjectToDragData_HTML(TempMedium, aDragData) | ||||
|                   else if (TempFormat.cfFormat = CF_HDROP)       then TempUsed := DataObjectToDragData_FileDrop(TempMedium, aDragData) | ||||
|                   else ReleaseStgMedium(TempMedium); | ||||
|                 end; | ||||
|             finally | ||||
|               if (TempFormat.ptd <> nil) then | ||||
|                 begin | ||||
|                   CoTaskMemFree(TempFormat.ptd); | ||||
|                   TempFormat.ptd := nil; | ||||
|                 end; | ||||
|             end; | ||||
|           end; | ||||
|       end; | ||||
|   except | ||||
|     on e : exception do | ||||
|       if CustomExceptionHandler('TCEFDragAndDropMgr.DataObjectToDragData', e) then raise; | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.StartDragging : TCefDragOperation; | ||||
| var | ||||
|   TempDataObject  : IDataObject; | ||||
|   TempDropSource  : IDropSource; | ||||
|   TempResEffect   : integer; | ||||
|   TempResult      : HRESULT; | ||||
|   TempFormatArray : TOLEFormatArray; | ||||
|   TempMediumArray : TOLEMediumArray; | ||||
|   i               : integer; | ||||
| begin | ||||
|   Result := DRAG_OPERATION_NONE; | ||||
|  | ||||
|   if (FCurrentDragData <> nil) then | ||||
|     begin | ||||
|       i := 0; | ||||
|  | ||||
|       if DragDataToDataObject_Unicode(FCurrentDragData, TempFormatArray[i], TempMediumArray[i])      then inc(i); | ||||
|       if DragDataToDataObject_Text(FCurrentDragData, TempFormatArray[i], TempMediumArray[i])         then inc(i); | ||||
|       if DragDataToDataObject_URL(FCurrentDragData, TempFormatArray[i], TempMediumArray[i])          then inc(i); | ||||
|       if DragDataToDataObject_HTML(FCurrentDragData, TempFormatArray[i], TempMediumArray[i])         then inc(i); | ||||
|       if DragDataToDataObject_FileDesc(FCurrentDragData, TempFormatArray[i], TempMediumArray[i])     then inc(i); | ||||
|       if DragDataToDataObject_FileContents(FCurrentDragData, TempFormatArray[i], TempMediumArray[i]) then inc(i); | ||||
|  | ||||
|       if (i > 0) then | ||||
|         begin | ||||
|           TempResEffect  := DROPEFFECT_NONE; | ||||
|           TempDataObject := TOLEDataObject.Create(TempFormatArray, TempMediumArray, i); | ||||
|           TempDropSource := TOLEDropSource.Create; | ||||
|           TempResult     := DoDragDrop(TempDataObject, TempDropSource, FOLEEffect, TempResEffect); | ||||
|  | ||||
|           if (TempResult <> DRAGDROP_S_DROP) then TempResEffect := DROPEFFECT_NONE; | ||||
|           FCurrentDragData := nil; | ||||
|  | ||||
|           DropEffectToDragOperation(TempResEffect, Result); | ||||
|         end; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.CloneDragData(const aDragData : ICefDragData; aAllowedOps : TCefDragOperations) : boolean; | ||||
| begin | ||||
|   if (aDragData <> nil) and | ||||
|      ((length(aDragData.GetFragmentText) > 0) or | ||||
|       (length(aDragData.GetFragmentHTML) > 0) or | ||||
|       aDragData.IsLink or | ||||
|       aDragData.IsFile) then | ||||
|     begin | ||||
|       DragOperationToDropEffect(aAllowedOps, FOLEEffect); | ||||
|  | ||||
|       FCurrentDragData := aDragData.Clone; | ||||
|       FCurrentDragData.ResetFileContents; | ||||
|  | ||||
|       Result := True; | ||||
|     end | ||||
|    else | ||||
|     Result := False; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DragEnter(const dataObj     : IDataObject; | ||||
|                                             grfKeyState : Longint; | ||||
|                                             pt          : TPoint; | ||||
|                                       var   dwEffect    : Longint): HRESULT; | ||||
| var | ||||
|   TempDragData : ICefDragData; | ||||
| begin | ||||
|   if assigned(FOnDragEnter) then | ||||
|     begin | ||||
|       if (FCurrentDragData <> nil) then | ||||
|         TempDragData := FCurrentDragData | ||||
|        else | ||||
|         DataObjectToDragData(dataObj, TempDragData); | ||||
|  | ||||
|       FOnDragEnter(self, TempDragData, grfKeyState, pt, dwEffect); | ||||
|       Result := S_OK; | ||||
|     end | ||||
|    else | ||||
|     Result := E_UNEXPECTED; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HResult; | ||||
| begin | ||||
|   if assigned(FOnDragOver) then | ||||
|     begin | ||||
|       FOnDragOver(self, grfKeyState, pt, dwEffect); | ||||
|       Result := S_OK; | ||||
|     end | ||||
|    else | ||||
|     Result := E_UNEXPECTED; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.DragLeave: HResult; | ||||
| begin | ||||
|   if assigned(FOnDragLeave) then | ||||
|     begin | ||||
|       FOnDragLeave(self); | ||||
|       Result := S_OK; | ||||
|     end | ||||
|    else | ||||
|     Result := E_UNEXPECTED; | ||||
| end; | ||||
|  | ||||
| function TCEFDragAndDropMgr.Drop(const dataObj     : IDataObject; | ||||
|                                        grfKeyState : Longint; | ||||
|                                        pt          : TPoint; | ||||
|                                  var   dwEffect    : Longint): HResult; | ||||
|  | ||||
| begin | ||||
|   if assigned(FOnDrop) then | ||||
|     begin | ||||
|       FOnDrop(self, grfKeyState, pt, dwEffect); | ||||
|       Result := S_OK; | ||||
|     end | ||||
|    else | ||||
|     Result := E_UNEXPECTED; | ||||
| end; | ||||
|  | ||||
| end. | ||||
| @@ -100,6 +100,7 @@ type | ||||
|  | ||||
|   TOnPdfPrintFinishedProc          = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const path: ustring; ok: Boolean); | ||||
|   TCefDomVisitorProc               = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const document: ICefDomDocument); | ||||
|   TCefDomVisitorProc2              = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const browser : ICefBrowser; const document: ICefDomDocument); | ||||
|   TCefStringVisitorProc            = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const str: ustring); | ||||
|  | ||||
|   TOnRegisterCustomSchemes         = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const registrar: TCefSchemeRegistrarRef) {$IFNDEF DELPHI12_UP}of object{$ENDIF}; | ||||
|   | ||||
| @@ -48,9 +48,9 @@ interface | ||||
|  | ||||
| uses | ||||
|   {$IFDEF DELPHI16_UP} | ||||
|   WinApi.Windows, System.Classes, System.SysUtils, | ||||
|   WinApi.Windows, System.Classes, System.SysUtils, System.UITypes, WinApi.ActiveX, | ||||
|   {$ELSE} | ||||
|   Windows, Classes, SysUtils, | ||||
|   Windows, Classes, SysUtils, UITypes, ActiveX, | ||||
|   {$ENDIF} | ||||
|   uCEFTypes, uCEFInterfaces, uCEFLibFunctions, uCEFResourceHandler; | ||||
|  | ||||
| @@ -165,6 +165,15 @@ function CefDeleteFile(const path: ustring; recursive: Boolean): Boolean; | ||||
| function CefZipDirectory(const srcDir, destFile: ustring; includeHiddenFiles: Boolean): Boolean; | ||||
| procedure CefLoadCRLSetsFile(const path : ustring); | ||||
|  | ||||
| function CefIsKeyDown(aWparam : WPARAM) : boolean; | ||||
| function CefIsKeyToggled(aWparam : WPARAM) : boolean; | ||||
| function GetCefMouseModifiers(awparam : WPARAM) : TCefEventFlags; | ||||
| function GetCefKeyboardModifiers(aWparam : WPARAM; aLparam : LPARAM) : TCefEventFlags; | ||||
| function GefCursorToWindowsCursor(aCefCursor : TCefCursorType) : TCursor; | ||||
|  | ||||
| procedure DropEffectToDragOperation(aEffect : Longint; var aAllowedOps : TCefDragOperations); | ||||
| procedure DragOperationToDropEffect(const aDragOperations : TCefDragOperations; var aEffect: Longint); | ||||
|  | ||||
| implementation | ||||
|  | ||||
| uses | ||||
| @@ -987,4 +996,156 @@ begin | ||||
|   cef_load_crlsets_file(@TempPath); | ||||
| end; | ||||
|  | ||||
| function CefIsKeyDown(aWparam : WPARAM) : boolean; | ||||
| begin | ||||
|   Result := (GetKeyState(aWparam) < 0); | ||||
| end; | ||||
|  | ||||
| function CefIsKeyToggled(aWparam : WPARAM) : boolean; | ||||
| begin | ||||
|   Result := (GetKeyState(aWparam) and $1) <> 0; | ||||
| end; | ||||
|  | ||||
| function GetCefMouseModifiers(aWparam : WPARAM) : TCefEventFlags; | ||||
| begin | ||||
|   Result := EVENTFLAG_NONE; | ||||
|  | ||||
|   if ((aWparam and MK_CONTROL) <> 0) then Result := Result or EVENTFLAG_CONTROL_DOWN; | ||||
|   if ((aWparam and MK_SHIFT)   <> 0) then Result := Result or EVENTFLAG_SHIFT_DOWN; | ||||
|   if ((aWparam and MK_LBUTTON) <> 0) then Result := Result or EVENTFLAG_LEFT_MOUSE_BUTTON; | ||||
|   if ((aWparam and MK_MBUTTON) <> 0) then Result := Result or EVENTFLAG_MIDDLE_MOUSE_BUTTON; | ||||
|   if ((aWparam and MK_RBUTTON) <> 0) then Result := Result or EVENTFLAG_RIGHT_MOUSE_BUTTON; | ||||
|   if CefIsKeyDown(VK_MENU)           then Result := Result or EVENTFLAG_ALT_DOWN; | ||||
|   if CefIsKeyToggled(VK_NUMLOCK)     then Result := Result or EVENTFLAG_NUM_LOCK_ON; | ||||
|   if CefIsKeyToggled(VK_CAPITAL)     then Result := Result or EVENTFLAG_CAPS_LOCK_ON; | ||||
| end; | ||||
|  | ||||
| function GetCefKeyboardModifiers(aWparam : WPARAM; aLparam : LPARAM) : TCefEventFlags; | ||||
| begin | ||||
|   Result := EVENTFLAG_NONE; | ||||
|  | ||||
|   if CefIsKeyDown(VK_SHIFT)      then Result := Result or EVENTFLAG_SHIFT_DOWN; | ||||
|   if CefIsKeyDown(VK_CONTROL)    then Result := Result or EVENTFLAG_CONTROL_DOWN; | ||||
|   if CefIsKeyDown(VK_MENU)       then Result := Result or EVENTFLAG_ALT_DOWN; | ||||
|   if CefIsKeyToggled(VK_NUMLOCK) then Result := Result or EVENTFLAG_NUM_LOCK_ON; | ||||
|   if CefIsKeyToggled(VK_CAPITAL) then Result := Result or EVENTFLAG_CAPS_LOCK_ON; | ||||
|  | ||||
|  | ||||
|   case aWparam of | ||||
|     VK_RETURN: | ||||
|       if (((aLparam shr 16) and KF_EXTENDED) <> 0) then Result := Result or EVENTFLAG_IS_KEY_PAD; | ||||
|  | ||||
|     VK_INSERT, | ||||
|     VK_DELETE, | ||||
|     VK_HOME, | ||||
|     VK_END, | ||||
|     VK_PRIOR, | ||||
|     VK_NEXT, | ||||
|     VK_UP, | ||||
|     VK_DOWN, | ||||
|     VK_LEFT, | ||||
|     VK_RIGHT : | ||||
|       if (((aLparam shr 16) and KF_EXTENDED) = 0) then Result := Result or EVENTFLAG_IS_KEY_PAD; | ||||
|  | ||||
|     VK_NUMLOCK, | ||||
|     VK_NUMPAD0, | ||||
|     VK_NUMPAD1, | ||||
|     VK_NUMPAD2, | ||||
|     VK_NUMPAD3, | ||||
|     VK_NUMPAD4, | ||||
|     VK_NUMPAD5, | ||||
|     VK_NUMPAD6, | ||||
|     VK_NUMPAD7, | ||||
|     VK_NUMPAD8, | ||||
|     VK_NUMPAD9, | ||||
|     VK_DIVIDE, | ||||
|     VK_MULTIPLY, | ||||
|     VK_SUBTRACT, | ||||
|     VK_ADD, | ||||
|     VK_DECIMAL, | ||||
|     VK_CLEAR : | ||||
|       Result := Result or EVENTFLAG_IS_KEY_PAD; | ||||
|  | ||||
|     VK_SHIFT : | ||||
|       if CefIsKeyDown(VK_LSHIFT) then | ||||
|         Result := Result or EVENTFLAG_IS_LEFT | ||||
|        else | ||||
|         if CefIsKeyDown(VK_RSHIFT) then | ||||
|           Result := Result or EVENTFLAG_IS_RIGHT; | ||||
|  | ||||
|     VK_CONTROL : | ||||
|       if CefIsKeyDown(VK_LCONTROL) then | ||||
|         Result := Result or EVENTFLAG_IS_LEFT | ||||
|        else | ||||
|         if CefIsKeyDown(VK_RCONTROL) then | ||||
|           Result := Result or EVENTFLAG_IS_RIGHT; | ||||
|  | ||||
|     VK_MENU : | ||||
|       if CefIsKeyDown(VK_LMENU) then | ||||
|         Result := Result or EVENTFLAG_IS_LEFT | ||||
|        else | ||||
|         if CefIsKeyDown(VK_RMENU) then | ||||
|           Result := Result or EVENTFLAG_IS_RIGHT; | ||||
|  | ||||
|     VK_LWIN : | ||||
|       Result := Result or EVENTFLAG_IS_LEFT; | ||||
|  | ||||
|     VK_RWIN : | ||||
|       Result := Result or EVENTFLAG_IS_RIGHT; | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| function GefCursorToWindowsCursor(aCefCursor : TCefCursorType) : TCursor; | ||||
| begin | ||||
|   case aCefCursor of | ||||
|     CT_POINTER                  : Result := crArrow; | ||||
|     CT_CROSS                    : Result := crCross; | ||||
|     CT_HAND                     : Result := crHandPoint; | ||||
|     CT_IBEAM                    : Result := crIBeam; | ||||
|     CT_WAIT                     : Result := crHourGlass; | ||||
|     CT_HELP                     : Result := crHelp; | ||||
|     CT_EASTRESIZE               : Result := crSizeWE; | ||||
|     CT_NORTHRESIZE              : Result := crSizeNS; | ||||
|     CT_NORTHEASTRESIZE          : Result := crSizeNESW; | ||||
|     CT_NORTHWESTRESIZE          : Result := crSizeNWSE; | ||||
|     CT_SOUTHRESIZE              : Result := crSizeNS; | ||||
|     CT_SOUTHEASTRESIZE          : Result := crSizeNWSE; | ||||
|     CT_SOUTHWESTRESIZE          : Result := crSizeNESW; | ||||
|     CT_WESTRESIZE               : Result := crSizeWE; | ||||
|     CT_NORTHSOUTHRESIZE         : Result := crSizeNS; | ||||
|     CT_EASTWESTRESIZE           : Result := crSizeWE; | ||||
|     CT_NORTHEASTSOUTHWESTRESIZE : Result := crSizeNESW; | ||||
|     CT_NORTHWESTSOUTHEASTRESIZE : Result := crSizeNWSE; | ||||
|     CT_COLUMNRESIZE             : Result := crHSplit; | ||||
|     CT_ROWRESIZE                : Result := crVSplit; | ||||
|     CT_MOVE                     : Result := crSizeAll; | ||||
|     CT_PROGRESS                 : Result := crAppStart; | ||||
|     CT_NONE                     : Result := crNone; | ||||
|     CT_NODROP, | ||||
|     CT_NOTALLOWED               : Result := crNo; | ||||
|     CT_GRAB, | ||||
|     CT_GRABBING                 : Result := crDrag; | ||||
|  | ||||
|     else Result := crDefault; | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| procedure DropEffectToDragOperation(aEffect: Longint; var aAllowedOps : TCefDragOperations); | ||||
| begin | ||||
|   aAllowedOps := DRAG_OPERATION_NONE; | ||||
|  | ||||
|   if ((aEffect and DROPEFFECT_COPY) <> 0) then aAllowedOps := aAllowedOps or DRAG_OPERATION_COPY; | ||||
|   if ((aEffect and DROPEFFECT_LINK) <> 0) then aAllowedOps := aAllowedOps or DRAG_OPERATION_LINK; | ||||
|   if ((aEffect and DROPEFFECT_MOVE) <> 0) then aAllowedOps := aAllowedOps or DRAG_OPERATION_MOVE; | ||||
| end; | ||||
|  | ||||
| procedure DragOperationToDropEffect(const aDragOperations : TCefDragOperations; var aEffect: Longint); | ||||
| begin | ||||
|   aEffect := DROPEFFECT_NONE; | ||||
|  | ||||
|   if ((aDragOperations and DRAG_OPERATION_COPY) <> 0) then aEffect := aEffect or DROPEFFECT_COPY; | ||||
|   if ((aDragOperations and DRAG_OPERATION_LINK) <> 0) then aEffect := aEffect or DROPEFFECT_LINK; | ||||
|   if ((aDragOperations and DRAG_OPERATION_MOVE) <> 0) then aEffect := aEffect or DROPEFFECT_MOVE; | ||||
| end; | ||||
|  | ||||
| end. | ||||
|   | ||||
| @@ -103,7 +103,7 @@ end; | ||||
|  | ||||
| function TCefRequestRef.GetFlags: TCefUrlRequestFlags; | ||||
| begin | ||||
|   Byte(Result) := PCefRequest(FData)^.get_flags(PCefRequest(FData)); | ||||
|   Result := PCefRequest(FData)^.get_flags(PCefRequest(FData)); | ||||
| end; | ||||
|  | ||||
| procedure TCefRequestRef.GetHeaderMap(const HeaderMap: ICefStringMultimap); | ||||
|   | ||||
| @@ -201,22 +201,32 @@ type | ||||
|   PPCefX509Certificate = ^PCefX509Certificate; | ||||
|  | ||||
|  | ||||
|   TCefWindowHandle         = HWND;        // /include/internal/cef_types_win.h (cef_window_handle_t) | ||||
|   TCefCursorHandle         = HCURSOR;     // /include/internal/cef_types_win.h (cef_cursor_handle_t) | ||||
|   TCefEventHandle          = PMsg;        // /include/internal/cef_types_win.h (cef_event_handle_t) | ||||
|   TCefPlatformThreadId     = DWORD;       // /include/internal/cef_thread_internal.h (cef_platform_thread_id_t) | ||||
|   TCefPlatformThreadHandle = DWORD;       // /include/internal/cef_thread_internal.h (cef_platform_thread_handle_t) | ||||
|   TCefTransitionType       = Cardinal;    // /include/internal/cef_types.h (cef_transition_type_t) | ||||
|   TCefColor                = Cardinal;    // /include/internal/cef_types.h (cef_color_t) | ||||
|   TCefErrorcode            = Integer;     // /include/internal/cef_types.h (cef_errorcode_t) | ||||
|   TCefCertStatus           = Integer;     // /include/internal/cef_types.h (cef_cert_status_t) | ||||
|   TCefSSLVersion           = integer;     // /include/internal/cef_types.h (cef_ssl_version_t) | ||||
|   TCefStringList           = Pointer;     // /include/internal/cef_string_list.h (cef_string_list_t) | ||||
|   TCefStringMap            = Pointer;     // /include/internal/cef_string_map.h (cef_string_map_t) | ||||
|   TCefStringMultimap       = Pointer;     // /include/internal/cef_string_multimap.h (cef_string_multimap_t) | ||||
|   TCefUriUnescapeRule      = Integer;     // /include/internal/cef_types.h (cef_uri_unescape_rule_t) | ||||
|   TCefDomEventCategory     = Integer;     // /include/internal/cef_types.h (cef_dom_event_category_t) | ||||
|  | ||||
|   TCefWindowHandle                 = HWND;        // /include/internal/cef_types_win.h (cef_window_handle_t) | ||||
|   TCefCursorHandle                 = HCURSOR;     // /include/internal/cef_types_win.h (cef_cursor_handle_t) | ||||
|   TCefEventHandle                  = PMsg;        // /include/internal/cef_types_win.h (cef_event_handle_t) | ||||
|   TCefPlatformThreadId             = DWORD;       // /include/internal/cef_thread_internal.h (cef_platform_thread_id_t) | ||||
|   TCefPlatformThreadHandle         = DWORD;       // /include/internal/cef_thread_internal.h (cef_platform_thread_handle_t) | ||||
|   TCefTransitionType               = Cardinal;    // /include/internal/cef_types.h (cef_transition_type_t) | ||||
|   TCefColor                        = Cardinal;    // /include/internal/cef_types.h (cef_color_t) | ||||
|   TCefErrorcode                    = Integer;     // /include/internal/cef_types.h (cef_errorcode_t) | ||||
|   TCefCertStatus                   = Integer;     // /include/internal/cef_types.h (cef_cert_status_t) | ||||
|   TCefSSLVersion                   = integer;     // /include/internal/cef_types.h (cef_ssl_version_t) | ||||
|   TCefStringList                   = Pointer;     // /include/internal/cef_string_list.h (cef_string_list_t) | ||||
|   TCefStringMap                    = Pointer;     // /include/internal/cef_string_map.h (cef_string_map_t) | ||||
|   TCefStringMultimap               = Pointer;     // /include/internal/cef_string_multimap.h (cef_string_multimap_t) | ||||
|   TCefUriUnescapeRule              = Integer;     // /include/internal/cef_types.h (cef_uri_unescape_rule_t) | ||||
|   TCefDomEventCategory             = Integer;     // /include/internal/cef_types.h (cef_dom_event_category_t) | ||||
|   TCefEventFlags                   = Cardinal;    // /include/internal/cef_types.h (cef_event_flags_t) | ||||
|   TCefDragOperations               = Cardinal;    // /include/internal/cef_types.h (cef_drag_operations_mask_t) | ||||
|   TCefDragOperation                = Cardinal;    // /include/internal/cef_types.h (cef_drag_operations_mask_t) | ||||
|   TCefV8AccessControls             = Cardinal;    // /include/internal/cef_types.h (cef_v8_accesscontrol_t) | ||||
|   TCefV8PropertyAttributes         = Cardinal;    // /include/internal/cef_types.h (cef_v8_propertyattribute_t) | ||||
|   TCefUrlRequestFlags              = Cardinal;    // /include/internal/cef_types.h (cef_urlrequest_flags_t) | ||||
|   TCefContextMenuTypeFlags         = Cardinal;    // /include/internal/cef_types.h (cef_context_menu_type_flags_t) | ||||
|   TCefContextMenuMediaStateFlags   = Cardinal;    // /include/internal/cef_types.h (cef_context_menu_media_state_flags_t) | ||||
|   TCefContextMenuEditStateFlags    = Cardinal;    // /include/internal/cef_types.h (cef_context_menu_edit_state_flags_t) | ||||
|   TCefJsonWriterOptions            = Cardinal;    // /include/internal/cef_types.h (cef_json_writer_options_t) | ||||
|   TCefSSLContentStatus             = Cardinal;    // /include/internal/cef_types.h (cef_ssl_content_status_t) | ||||
|  | ||||
| {$IFNDEF DELPHI12_UP} | ||||
|   NativeUInt  = Cardinal; | ||||
| @@ -359,14 +369,6 @@ type | ||||
|     JSON_PARSE_ERROR_COUNT | ||||
|   ); | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_json_writer_options_t) | ||||
|   TCefJsonWriterOption = ( | ||||
|     JSON_WRITER_OMIT_BINARY_VALUES, | ||||
|     JSON_WRITER_OMIT_DOUBLE_TYPE_PRESERVATION, | ||||
|     JSON_WRITER_PRETTY_PRINT | ||||
|   ); | ||||
|   TCefJsonWriterOptions = set of TCefJsonWriterOption; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_state_t) | ||||
|   TCefState = ( | ||||
|     STATE_DEFAULT = 0, | ||||
| @@ -492,40 +494,15 @@ type | ||||
|     MENUITEMTYPE_SUBMENU | ||||
|   ); | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_event_flags_t) | ||||
|   TCefEventFlag = ( | ||||
|     EVENTFLAG_CAPS_LOCK_ON, | ||||
|     EVENTFLAG_SHIFT_DOWN, | ||||
|     EVENTFLAG_CONTROL_DOWN, | ||||
|     EVENTFLAG_ALT_DOWN, | ||||
|     EVENTFLAG_LEFT_MOUSE_BUTTON, | ||||
|     EVENTFLAG_MIDDLE_MOUSE_BUTTON, | ||||
|     EVENTFLAG_RIGHT_MOUSE_BUTTON, | ||||
|     EVENTFLAG_COMMAND_DOWN, | ||||
|     EVENTFLAG_NUM_LOCK_ON, | ||||
|     EVENTFLAG_IS_KEY_PAD, | ||||
|     EVENTFLAG_IS_LEFT, | ||||
|     EVENTFLAG_IS_RIGHT | ||||
|   ); | ||||
|   TCefEventFlags = set of TCefEventFlag; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_drag_operations_mask_t) | ||||
|   TCefDragOperation = ( | ||||
|     DRAG_OPERATION_COPY, | ||||
|     DRAG_OPERATION_LINK, | ||||
|     DRAG_OPERATION_GENERIC, | ||||
|     DRAG_OPERATION_PRIVATE, | ||||
|     DRAG_OPERATION_MOVE, | ||||
|     DRAG_OPERATION_DELETE | ||||
|   ); | ||||
|   TCefDragOperations = set of TCefDragOperation; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_file_dialog_mode_t) | ||||
|   TCefFileDialogMode = ( | ||||
|     FILE_DIALOG_OPEN, | ||||
|     FILE_DIALOG_OPEN_MULTIPLE, | ||||
|     FILE_DIALOG_OPEN_FOLDER, | ||||
|     FILE_DIALOG_SAVE | ||||
|     FILE_DIALOG_SAVE, | ||||
|     FILE_DIALOG_TYPE_MASK = $FF, | ||||
|     FILE_DIALOG_OVERWRITEPROMPT_FLAG = $01000000, | ||||
|     FILE_DIALOG_HIDEREADONLY_FLAG = $02000000 | ||||
|   ); | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_focus_source_t) | ||||
| @@ -681,19 +658,6 @@ type | ||||
|     RV_CONTINUE_ASYNC | ||||
|   ); | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_urlrequest_flags_t) | ||||
|   TCefUrlRequestFlag = ( | ||||
|     UR_FLAG_SKIP_CACHE, | ||||
|     UR_FLAG_ALLOW_CACHED_CREDENTIALS, | ||||
|     UR_FLAG_DUMMY_1, | ||||
|     UR_FLAG_REPORT_UPLOAD_PROGRESS, | ||||
|     UR_FLAG_DUMMY_2, | ||||
|     UR_FLAG_DUMMY_3, | ||||
|     UR_FLAG_NO_DOWNLOAD_DATA, | ||||
|     UR_FLAG_NO_RETRY_ON_5XX | ||||
|   ); | ||||
|   TCefUrlRequestFlags = set of TCefUrlRequestFlag; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_urlrequest_status_t) | ||||
|   TCefUrlRequestStatus = ( | ||||
|     UR_UNKNOWN = 0, | ||||
| @@ -728,22 +692,6 @@ type | ||||
|     ST_SESSIONSTORAGE | ||||
|   ); | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_v8_accesscontrol_t) | ||||
|   TCefV8AccessControl = ( | ||||
|     V8_ACCESS_CONTROL_ALL_CAN_READ, | ||||
|     V8_ACCESS_CONTROL_ALL_CAN_WRITE, | ||||
|     V8_ACCESS_CONTROL_PROHIBITS_OVERWRITING | ||||
|   ); | ||||
|   TCefV8AccessControls = set of TCefV8AccessControl; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_v8_propertyattribute_t) | ||||
|   TCefV8PropertyAttribute = ( | ||||
|     V8_PROPERTY_ATTRIBUTE_READONLY, | ||||
|     V8_PROPERTY_ATTRIBUTE_DONTENUM, | ||||
|     V8_PROPERTY_ATTRIBUTE_DONTDELETE | ||||
|   ); | ||||
|   TCefV8PropertyAttributes = set of TCefV8PropertyAttribute; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_response_filter_status_t) | ||||
|   TCefResponseFilterStatus = ( | ||||
|     RESPONSE_FILTER_NEED_MORE_DATA, | ||||
| @@ -883,45 +831,6 @@ type | ||||
|     GEOPOSITON_ERROR_TIMEOUT | ||||
|   ); | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_context_menu_type_flags_t) | ||||
|   TCefContextMenuTypeFlag = ( | ||||
|     CM_TYPEFLAG_PAGE, | ||||
|     CM_TYPEFLAG_FRAME, | ||||
|     CM_TYPEFLAG_LINK, | ||||
|     CM_TYPEFLAG_MEDIA, | ||||
|     CM_TYPEFLAG_SELECTION, | ||||
|     CM_TYPEFLAG_EDITABLE | ||||
|   ); | ||||
|   TCefContextMenuTypeFlags = set of TCefContextMenuTypeFlag; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_context_menu_media_state_flags_t) | ||||
|   TCefContextMenuMediaStateFlag = ( | ||||
|     CM_MEDIAFLAG_ERROR, | ||||
|     CM_MEDIAFLAG_PAUSED, | ||||
|     CM_MEDIAFLAG_MUTED, | ||||
|     CM_MEDIAFLAG_LOOP, | ||||
|     CM_MEDIAFLAG_CAN_SAVE, | ||||
|     CM_MEDIAFLAG_HAS_AUDIO, | ||||
|     CM_MEDIAFLAG_HAS_VIDEO, | ||||
|     CM_MEDIAFLAG_CONTROL_ROOT_ELEMENT, | ||||
|     CM_MEDIAFLAG_CAN_PRINT, | ||||
|     CM_MEDIAFLAG_CAN_ROTATE | ||||
|   ); | ||||
|   TCefContextMenuMediaStateFlags = set of TCefContextMenuMediaStateFlag; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_context_menu_edit_state_flags_t) | ||||
|   TCefContextMenuEditStateFlag = ( | ||||
|     CM_EDITFLAG_CAN_UNDO, | ||||
|     CM_EDITFLAG_CAN_REDO, | ||||
|     CM_EDITFLAG_CAN_CUT, | ||||
|     CM_EDITFLAG_CAN_COPY, | ||||
|     CM_EDITFLAG_CAN_PASTE, | ||||
|     CM_EDITFLAG_CAN_DELETE, | ||||
|     CM_EDITFLAG_CAN_SELECT_ALL, | ||||
|     CM_EDITFLAG_CAN_TRANSLATE | ||||
|   ); | ||||
|   TCefContextMenuEditStateFlags = set of TCefContextMenuEditStateFlag; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_button_state_t) | ||||
|   TCefButtonState = ( | ||||
|     CEF_BUTTON_STATE_NORMAL, | ||||
| @@ -955,13 +864,6 @@ type | ||||
|     CEF_MENU_COLOR_COUNT | ||||
|   ); | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_ssl_content_status_t) | ||||
|   TCefSSLContentStatusFlags = ( | ||||
|     SSL_CONTENT_DISPLAYED_INSECURE_CONTENT, | ||||
|     SSL_CONTENT_RAN_INSECURE_CONTENT | ||||
|   ); | ||||
|   TCefSSLContentStatus = set of TCefSSLContentStatusFlags; | ||||
|  | ||||
|   // /include/internal/cef_types.h (cef_cdm_registration_error_t) | ||||
|   TCefCDMRegistrationError = ( | ||||
|     CEF_CDM_REGISTRATION_ERROR_NONE, | ||||
|   | ||||
| @@ -47,18 +47,48 @@ unit uCEFWriteHandler; | ||||
| interface | ||||
|  | ||||
| uses | ||||
|   {$IFDEF DELPHI16_UP} | ||||
|   WinApi.Windows, | ||||
|   {$ELSE} | ||||
|   Windows, | ||||
|   {$ENDIF} | ||||
|   uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; | ||||
|  | ||||
| type | ||||
|   TCefWriteHandlerOwn = class(TCefBaseRefCountedOwn, ICefWriteHandler) | ||||
|   protected | ||||
|     function Write(const ptr: Pointer; size, n: NativeUInt): NativeUInt; virtual; | ||||
|     function Seek(offset: Int64; whence: Integer): Integer; virtual; | ||||
|     function Tell: Int64; virtual; | ||||
|     function Flush: Integer; virtual; | ||||
|     function MayBlock: Boolean; virtual; | ||||
|   public | ||||
|     constructor Create; virtual; | ||||
|     protected | ||||
|       function Write(const ptr: Pointer; size, n: NativeUInt): NativeUInt; virtual; | ||||
|       function Seek(offset: Int64; whence: Integer): Integer; virtual; | ||||
|       function Tell: Int64; virtual; | ||||
|       function Flush: Integer; virtual; | ||||
|       function MayBlock: Boolean; virtual; | ||||
|     public | ||||
|       constructor Create; virtual; | ||||
|   end; | ||||
|  | ||||
|   TCefBytesWriteHandler = class(TCefWriteHandlerOwn) | ||||
|     protected | ||||
|       FCriticalSection : TRTLCriticalSection; | ||||
|  | ||||
|       FGrow     : NativeUInt; | ||||
|       FData     : Pointer; | ||||
|       FDataSize : int64; | ||||
|       FOffset   : int64; | ||||
|  | ||||
|       function Grow(size : NativeUInt) : NativeUInt; | ||||
|  | ||||
|     public | ||||
|       constructor Create(aGrow : NativeUInt); reintroduce; | ||||
|       destructor  Destroy; override; | ||||
|  | ||||
|       function Write(const ptr: Pointer; size, n: NativeUInt): NativeUInt; override; | ||||
|       function Seek(offset: Int64; whence: Integer): Integer; override; | ||||
|       function Tell: Int64; override; | ||||
|       function Flush: Integer; override; | ||||
|       function MayBlock: Boolean; override; | ||||
|  | ||||
|       function GetData : pointer; | ||||
|       function GetDataSize : int64; | ||||
|   end; | ||||
|  | ||||
| implementation | ||||
| @@ -67,15 +97,17 @@ uses | ||||
|   uCEFMiscFunctions, uCEFLibFunctions; | ||||
|  | ||||
|  | ||||
| function cef_write_handler_write(self: PCefWriteHandler; const ptr: Pointer; | ||||
|   size, n: NativeUInt): NativeUInt; stdcall; | ||||
| // ******************************************* | ||||
| // *********** TCefWriteHandlerOwn *********** | ||||
| // ******************************************* | ||||
|  | ||||
| function cef_write_handler_write(self: PCefWriteHandler; const ptr: Pointer; size, n: NativeUInt): NativeUInt; stdcall; | ||||
| begin | ||||
|   with TCefWriteHandlerOwn(CefGetObject(self)) do | ||||
|     Result:= Write(ptr, size, n); | ||||
| end; | ||||
|  | ||||
| function cef_write_handler_seek(self: PCefWriteHandler; offset: Int64; | ||||
|   whence: Integer): Integer; stdcall; | ||||
| function cef_write_handler_seek(self: PCefWriteHandler; offset: Int64; whence: Integer): Integer; stdcall; | ||||
| begin | ||||
|   with TCefWriteHandlerOwn(CefGetObject(self)) do | ||||
|     Result := Seek(offset, whence); | ||||
| @@ -102,14 +134,15 @@ end; | ||||
| constructor TCefWriteHandlerOwn.Create; | ||||
| begin | ||||
|   inherited CreateData(SizeOf(TCefWriteHandler)); | ||||
|  | ||||
|   with PCefWriteHandler(FData)^ do | ||||
|   begin | ||||
|     write := cef_write_handler_write; | ||||
|     seek := cef_write_handler_seek; | ||||
|     tell := cef_write_handler_tell; | ||||
|     flush := cef_write_handler_flush; | ||||
|     may_block := cef_write_handler_may_block; | ||||
|   end; | ||||
|     begin | ||||
|       write     := cef_write_handler_write; | ||||
|       seek      := cef_write_handler_seek; | ||||
|       tell      := cef_write_handler_tell; | ||||
|       flush     := cef_write_handler_flush; | ||||
|       may_block := cef_write_handler_may_block; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TCefWriteHandlerOwn.Flush: Integer; | ||||
| @@ -132,10 +165,154 @@ begin | ||||
|   Result := 0; | ||||
| end; | ||||
|  | ||||
| function TCefWriteHandlerOwn.Write(const ptr: Pointer; size, | ||||
|   n: NativeUInt): NativeUInt; | ||||
| function TCefWriteHandlerOwn.Write(const ptr: Pointer; size, n: NativeUInt): NativeUInt; | ||||
| begin | ||||
|   Result := 0; | ||||
| end; | ||||
|  | ||||
|  | ||||
| // ******************************************* | ||||
| // ********** TCefBytesWriteHandler ********** | ||||
| // ******************************************* | ||||
|  | ||||
| constructor TCefBytesWriteHandler.Create(aGrow : NativeUInt); | ||||
| begin | ||||
|   inherited Create; | ||||
|  | ||||
|   InitializeCriticalSection(FCriticalSection); | ||||
|  | ||||
|   FGrow     := aGrow; | ||||
|   FDataSize := aGrow; | ||||
|   FOffset   := 0; | ||||
|  | ||||
|   GetMem(FData, aGrow); | ||||
| end; | ||||
|  | ||||
| destructor TCefBytesWriteHandler.Destroy; | ||||
| begin | ||||
|   if (FData <> nil) then FreeMem(FData); | ||||
|  | ||||
|   DeleteCriticalSection(FCriticalSection); | ||||
|  | ||||
|   FCriticalSection.DebugInfo      := nil; | ||||
|   FCriticalSection.LockCount      := 0; | ||||
|   FCriticalSection.RecursionCount := 0; | ||||
|   FCriticalSection.OwningThread   := 0; | ||||
|   FCriticalSection.LockSemaphore  := 0; | ||||
|   FCriticalSection.Reserved       := 0; | ||||
|  | ||||
|   inherited Destroy; | ||||
| end; | ||||
|  | ||||
| function TCefBytesWriteHandler.Write(const ptr: Pointer; size, n: NativeUInt): NativeUInt; | ||||
| var | ||||
|   TempPointer : pointer; | ||||
| begin | ||||
|   EnterCriticalSection(FCriticalSection); | ||||
|  | ||||
|   if ((FOffset + (size * n)) >= FDataSize) and (Grow(size * n) = 0) then | ||||
|     Result := 0 | ||||
|    else | ||||
|     begin | ||||
|       TempPointer := Pointer(PByte(FData) + FOffset); | ||||
|  | ||||
|       CopyMemory(TempPointer, ptr, size * n); | ||||
|  | ||||
|       FOffset := FOffset + (size * n); | ||||
|       Result  := n; | ||||
|     end; | ||||
|  | ||||
|   LeaveCriticalSection(FCriticalSection); | ||||
| end; | ||||
|  | ||||
| function TCefBytesWriteHandler.Seek(offset: Int64; whence: Integer): Integer; | ||||
| const | ||||
|   SEEK_SET = 0; | ||||
|   SEEK_CUR = 1; | ||||
|   SEEK_END = 2; | ||||
| var | ||||
|   TempAbsOffset : int64; | ||||
| begin | ||||
|   EnterCriticalSection(FCriticalSection); | ||||
|  | ||||
|   Result := -1; | ||||
|  | ||||
|   case whence of | ||||
|     SEEK_CUR : | ||||
|       if not((FOffset + offset > FDataSize) or (FOffset + offset < 0)) then | ||||
|         begin | ||||
|           FOffset := FOffset + offset; | ||||
|           Result  := 0; | ||||
|         end; | ||||
|  | ||||
|     SEEK_END: | ||||
|       begin | ||||
|         TempAbsOffset := abs(offset); | ||||
|  | ||||
|         if not(TempAbsOffset > FDataSize) then | ||||
|           begin | ||||
|             FOffset := FDataSize - TempAbsOffset; | ||||
|             Result  := 0; | ||||
|           end; | ||||
|       end; | ||||
|  | ||||
|     SEEK_SET: | ||||
|       if not((offset > FDataSize) or (offset < 0)) then | ||||
|         begin | ||||
|           FOffset := offset; | ||||
|           Result  := 0; | ||||
|         end; | ||||
|   end; | ||||
|  | ||||
|   LeaveCriticalSection(FCriticalSection); | ||||
| end; | ||||
|  | ||||
| function TCefBytesWriteHandler.Tell: Int64; | ||||
| begin | ||||
|   EnterCriticalSection(FCriticalSection); | ||||
|  | ||||
|   Result := FOffset; | ||||
|  | ||||
|   LeaveCriticalSection(FCriticalSection); | ||||
| end; | ||||
|  | ||||
| function TCefBytesWriteHandler.Flush: Integer; | ||||
| begin | ||||
|   Result := 0; | ||||
| end; | ||||
|  | ||||
| function TCefBytesWriteHandler.MayBlock: Boolean; | ||||
| begin | ||||
|   Result := False; | ||||
| end; | ||||
|  | ||||
| function TCefBytesWriteHandler.GetData : pointer; | ||||
| begin | ||||
|   Result := FData; | ||||
| end; | ||||
|  | ||||
| function TCefBytesWriteHandler.GetDataSize : int64; | ||||
| begin | ||||
|   Result := FDataSize; | ||||
| end; | ||||
|  | ||||
| function TCefBytesWriteHandler.Grow(size : NativeUInt) : NativeUInt; | ||||
| var | ||||
|   s : NativeUInt; | ||||
| begin | ||||
|   EnterCriticalSection(FCriticalSection); | ||||
|  | ||||
|   if (size > FGrow) then | ||||
|     s := size | ||||
|    else | ||||
|     s := FGrow; | ||||
|  | ||||
|   ReallocMem(FData, FDataSize + s); | ||||
|  | ||||
|   FDataSize := FDataSize + s; | ||||
|   Result    := FDataSize; | ||||
|  | ||||
|   LeaveCriticalSection(FCriticalSection); | ||||
| end; | ||||
|  | ||||
| end. | ||||
|   | ||||
| @@ -100,7 +100,7 @@ type | ||||
| implementation | ||||
|  | ||||
| uses | ||||
|   uCEFMiscFunctions, uCEFLibFunctions, uCEFv8Value; | ||||
|   uCEFMiscFunctions, uCEFLibFunctions, uCEFv8Value, uCEFConstants; | ||||
|  | ||||
| function cef_v8_handler_execute(self: PCefv8Handler; | ||||
|   const name: PCefString; obj: PCefv8Value; argumentsCount: NativeUInt; | ||||
| @@ -507,7 +507,7 @@ function TCefRTTIExtension.SetValue(const v: TValue; var ret: ICefv8Value): Bool | ||||
|         begin | ||||
|           vl := rf.GetValue(rec); | ||||
|           SetValue(vl, o); | ||||
|           v8.SetValueByKey(rf.Name, o, []); | ||||
|           v8.SetValueByKey(rf.Name, o, V8_PROPERTY_ATTRIBUTE_NONE); | ||||
|         end; | ||||
|       end) | ||||
|     end else | ||||
| @@ -516,7 +516,7 @@ function TCefRTTIExtension.SetValue(const v: TValue; var ret: ICefv8Value): Bool | ||||
|         vl := rf.GetValue(rec); | ||||
|         if not SetValue(vl, v8) then | ||||
|           Exit(False); | ||||
|         ret.SetValueByKey(rf.Name, v8,  []); | ||||
|         ret.SetValueByKey(rf.Name, v8,  V8_PROPERTY_ATTRIBUTE_NONE); | ||||
|       end; | ||||
|     Result := True; | ||||
|   end; | ||||
| @@ -548,7 +548,7 @@ function TCefRTTIExtension.SetValue(const v: TValue; var ret: ICefv8Value): Bool | ||||
|       if m.Visibility > mvProtected then | ||||
|       begin | ||||
|         f := TCefv8ValueRef.NewFunction(m.Name, Self); | ||||
|         ret.SetValueByKey(m.Name, f, []); | ||||
|         ret.SetValueByKey(m.Name, f, V8_PROPERTY_ATTRIBUTE_NONE); | ||||
|       end; | ||||
|  | ||||
|     for p in rt.GetProperties do | ||||
| @@ -614,7 +614,7 @@ function TCefRTTIExtension.SetValue(const v: TValue; var ret: ICefv8Value): Bool | ||||
|         if (m.Visibility > mvProtected) and (m.MethodKind in [mkClassProcedure, mkClassFunction]) then | ||||
|         begin | ||||
|           f := TCefv8ValueRef.NewFunction(m.Name, Self); | ||||
|           ret.SetValueByKey(m.Name, f, []); | ||||
|           ret.SetValueByKey(m.Name, f, V8_PROPERTY_ATTRIBUTE_NONE); | ||||
|         end; | ||||
|     end; | ||||
|  | ||||
| @@ -680,7 +680,7 @@ function TCefRTTIExtension.SetValue(const v: TValue; var ret: ICefv8Value): Bool | ||||
|         if m.Visibility > mvProtected then | ||||
|         begin | ||||
|           f := TCefv8ValueRef.NewFunction(m.Name, Self); | ||||
|           ret.SetValueByKey(m.Name, f, []); | ||||
|           ret.SetValueByKey(m.Name, f, V8_PROPERTY_ATTRIBUTE_NONE); | ||||
|         end; | ||||
|  | ||||
|       Result := True; | ||||
|   | ||||
							
								
								
									
										619
									
								
								source/uOLEDragAndDrop.pas
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										619
									
								
								source/uOLEDragAndDrop.pas
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,619 @@ | ||||
| // ************************************************************************ | ||||
| // ***************************** CEF4Delphi ******************************* | ||||
| // ************************************************************************ | ||||
| // | ||||
| // CEF4Delphi is based on DCEF3 which uses CEF3 to embed a chromium-based | ||||
| // browser in Delphi applications. | ||||
| // | ||||
| // The original license of DCEF3 still applies to CEF4Delphi. | ||||
| // | ||||
| // For more information about CEF4Delphi visit : | ||||
| //         https://www.briskbard.com/index.php?lang=en&pageid=cef | ||||
| // | ||||
| //        Copyright � 2017 Salvador D�az Fau. All rights reserved. | ||||
| // | ||||
| // ************************************************************************ | ||||
| // ************ vvvv Original license and comments below vvvv ************* | ||||
| // ************************************************************************ | ||||
| (* | ||||
|  *                       Delphi Chromium Embedded 3 | ||||
|  * | ||||
|  * Usage allowed under the restrictions of the Lesser GNU General Public License | ||||
|  * or alternatively the restrictions of the Mozilla Public License 1.1 | ||||
|  * | ||||
|  * Software distributed under the License is distributed on an "AS IS" basis, | ||||
|  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for | ||||
|  * the specific language governing rights and limitations under the License. | ||||
|  * | ||||
|  * Unit owner : Henri Gourvest <hgourvest@gmail.com> | ||||
|  * Web site   : http://www.progdigy.com | ||||
|  * Repository : http://code.google.com/p/delphichromiumembedded/ | ||||
|  * Group      : http://groups.google.com/group/delphichromiumembedded | ||||
|  * | ||||
|  * Embarcadero Technologies, Inc is not permitted to use or redistribute | ||||
|  * this source code without explicit permission. | ||||
|  * | ||||
|  *) | ||||
|  | ||||
| unit uOLEDragAndDrop; | ||||
|  | ||||
| {$I cef.inc} | ||||
|  | ||||
| interface | ||||
|  | ||||
| uses | ||||
|   {$IFDEF DELPHI16_UP} | ||||
|   WinApi.Windows, System.Classes, System.Math, WinApi.ShlObj, WinApi.ActiveX; | ||||
|   {$ELSE} | ||||
|   Windows, Classes, Math, ShlObj, ActiveX; | ||||
|   {$ENDIF} | ||||
|  | ||||
| const | ||||
|   CUSTOM_ARRAY_LENGTH = 25; | ||||
|  | ||||
| type | ||||
|   TOLEMediumArray = array [0..pred(CUSTOM_ARRAY_LENGTH)] of TStgMedium; | ||||
|   TOLEFormatArray = array [0..pred(CUSTOM_ARRAY_LENGTH)] of TFormatEtc; | ||||
|  | ||||
|   TOLEDragAndDropMgr = class | ||||
|     protected | ||||
|       function  GetStorageForBytes(var aMedium : TStgMedium; const aData : pointer; aLength : NativeUInt) : boolean; | ||||
|       function  GetStorageForString(var aMedium : TStgMedium; const aData : WideString) : boolean; overload; | ||||
|       function  GetStorageForString(var aMedium : TStgMedium; const aData : AnsiString) : boolean; overload; | ||||
|       function  GetStorageForFileDescriptor(var aMedium : TStgMedium; const aFileName : string) : boolean; | ||||
|  | ||||
|     public | ||||
|       function  DragEnter(const DataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; virtual; | ||||
|       function  DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; virtual; | ||||
|       function  DragLeave: HRESULT; virtual; | ||||
|       function  Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; virtual; | ||||
|   end; | ||||
|  | ||||
|   TOLEEnumFormatEtc = class(TInterfacedObject, IEnumFormatEtc) | ||||
|     protected | ||||
|       FIndex       : integer; | ||||
|       FNumFormats  : integer; | ||||
|       FFormatArray : TOLEFormatArray; | ||||
|  | ||||
|       procedure CopyFromFormatArray(const aSrcFormatArray : TOLEFormatArray); | ||||
|       procedure CopyFormatEtc(var aDstFormatEtc : TFormatEtc; const aSrcFormatEtc : TFormatEtc); | ||||
|  | ||||
|     public | ||||
|       constructor Create; overload; | ||||
|       constructor Create(const aFormatArray : TOLEFormatArray; aNumFormats : integer; aIndex : integer = 0); overload; | ||||
|       destructor  Destroy; override; | ||||
|  | ||||
|       // IEnumFormatEtc | ||||
|       function Next(Celt: LongInt; out Elt; pCeltFetched: pLongInt): HRESULT; stdcall; | ||||
|       function Skip(Celt: Longint): HRESULT; stdcall; | ||||
|       function Reset: HRESULT; stdcall; | ||||
|       function Clone(out Enum: IEnumFormatEtc): HRESULT; stdcall; | ||||
|   end; | ||||
|  | ||||
|   TOLEDropSource = class(TInterfacedObject, IDropSource) | ||||
|     public | ||||
|       // IDropSource | ||||
|       function QueryContinueDrag(fEscapePressed: bool; grfKeyState: LongInt): HRESULT; stdcall; | ||||
|       function GiveFeedback(dwEffect: LongInt): HRESULT; stdcall; | ||||
|   end; | ||||
|  | ||||
|   TOLEDataObject = class(TInterfacedObject, IDataObject) | ||||
|     protected | ||||
|       FNumFormats  : integer; | ||||
|       FFormatArray : TOLEFormatArray; | ||||
|       FMediumArray : TOLEMediumArray; | ||||
|       FAsync       : boolean; | ||||
|       FInOperation : boolean; | ||||
|  | ||||
|       function LookupFormatEtc(const aFormatEtc : TFormatEtc) : integer; | ||||
|       function DupGlobalMem(hMem : HGLOBAL) : HGLOBAL; | ||||
|  | ||||
|     public | ||||
|       constructor Create(const aFormatArray : TOLEFormatArray; const aMediumArray : TOLEMediumArray; aNumFormats : integer); reintroduce; | ||||
|  | ||||
|       // IDataObject | ||||
|       function GetData(const FormatEtcIn: TFormatEtc; out Medium: TStgMedium):HRESULT; stdcall; | ||||
|       function GetDataHere(const FormatEtc: TFormatEtc; out Medium: TStgMedium):HRESULT; stdcall; | ||||
|       function QueryGetData(const FormatEtc: TFormatEtc): HRESULT; stdcall; | ||||
|       function GetCanonicalFormatEtc(const FormatEtc: TFormatEtc; out FormatEtcout: TFormatEtc): HRESULT; stdcall; | ||||
|       function SetData(const FormatEtc: TFormatEtc; var Medium: TStgMedium; fRelease: Bool): HRESULT; stdcall; | ||||
|       function EnumFormatEtc(dwDirection: LongInt; out aEnumFormatEtc: IEnumFormatEtc): HRESULT; stdcall; | ||||
|       function dAdvise(const FormatEtc: TFormatEtc; advf: LongInt; const advsink: IAdviseSink; out dwConnection: LongInt): HRESULT; stdcall; | ||||
|       function dUnadvise(dwConnection: LongInt): HRESULT; stdcall; | ||||
|       function EnumdAdvise(out EnumAdvise: IEnumStatData): HRESULT; stdcall; | ||||
|   end; | ||||
|  | ||||
|   TOLEDropTarget = class(TInterfacedObject, IDropTarget) | ||||
|     protected | ||||
|       FManager : TOLEDragAndDropMgr; | ||||
|  | ||||
|     public | ||||
|       constructor Create(const aManager : TOLEDragAndDropMgr); reintroduce; | ||||
|  | ||||
|       // IDropTarget | ||||
|       function DragEnter(const DataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; stdcall; | ||||
|       function DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; stdcall; | ||||
|       function DragLeave: HRESULT; stdcall; | ||||
|       function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; stdcall; | ||||
|   end; | ||||
|  | ||||
| implementation | ||||
|  | ||||
| // ***************************************************** | ||||
| // *************** TOLEDragAndDropMgr ****************** | ||||
| // ***************************************************** | ||||
|  | ||||
| function TOLEDragAndDropMgr.GetStorageForBytes(var aMedium : TStgMedium; const aData : pointer; aLength : NativeUInt) : boolean; | ||||
| var | ||||
|   TempHandle  : HGLOBAL; | ||||
|   TempPointer : pointer; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if (aData <> nil) then | ||||
|     begin | ||||
|       TempHandle := GlobalAlloc(GHND, aLength); | ||||
|  | ||||
|       if (TempHandle <> 0) then | ||||
|         begin | ||||
|           TempPointer := GlobalLock(TempHandle); | ||||
|  | ||||
|           if (TempPointer <> nil) then | ||||
|             begin | ||||
|               Move(aData^, TempPointer^, aLength); | ||||
|  | ||||
|               aMedium.hGlobal       := TempHandle; | ||||
|               aMedium.tymed         := TYMED_HGLOBAL; | ||||
|               aMedium.unkForRelease := nil; | ||||
|  | ||||
|               GlobalUnlock(TempHandle); | ||||
|  | ||||
|               Result := True; | ||||
|             end | ||||
|            else | ||||
|             GlobalFree(TempHandle); | ||||
|         end; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TOLEDragAndDropMgr.GetStorageForString(var aMedium : TStgMedium; const aData : WideString) : boolean; | ||||
| var | ||||
|   TempPointer : pointer; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if (length(aData) > 0) then | ||||
|     begin | ||||
|       TempPointer := @aData[1]; | ||||
|       Result      := GetStorageForBytes(aMedium, TempPointer, length(aData) * SizeOf(WideChar)); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TOLEDragAndDropMgr.GetStorageForString(var aMedium : TStgMedium; const aData : AnsiString) : boolean; | ||||
| var | ||||
|   TempPointer : pointer; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if (length(aData) > 0) then | ||||
|     begin | ||||
|       TempPointer := @aData[1]; | ||||
|       Result      := GetStorageForBytes(aMedium, TempPointer, length(aData) * SizeOf(AnsiChar)); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TOLEDragAndDropMgr.GetStorageForFileDescriptor(var aMedium : TStgMedium; const aFileName : string) : boolean; | ||||
| var | ||||
|   TempHandle     : HGLOBAL; | ||||
|   TempDescriptor : TFileGroupDescriptor; | ||||
|   TempPointer    : pointer; | ||||
|   i, j           : integer; | ||||
|   TempString     : string; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   if (length(aFileName) > 0) then | ||||
|     begin | ||||
|       TempHandle := GlobalAlloc(GHND, sizeof(TFileGroupDescriptor)); | ||||
|  | ||||
|       if (TempHandle <> 0) then | ||||
|         begin | ||||
|           TempPointer := GlobalLock(TempHandle); | ||||
|  | ||||
|           if (TempPointer <> nil) then | ||||
|             begin | ||||
|               TempDescriptor                := TFileGroupDescriptor(TempPointer^); | ||||
|               TempDescriptor.cItems         := 1; | ||||
|               TempDescriptor.fgd[0].dwFlags := FD_LINKUI; | ||||
|  | ||||
|               TempString := aFileName + #0; | ||||
|  | ||||
|               i := 1; | ||||
|               j := length(TempString); | ||||
|  | ||||
|               while (i <= j) do | ||||
|                 begin | ||||
|                   TempDescriptor.fgd[0].cFileName[pred(i)] := TempString[i]; | ||||
|                   inc(i); | ||||
|                 end; | ||||
|  | ||||
|               aMedium.tymed         := TYMED_HGLOBAL; | ||||
|               aMedium.hGlobal       := TempHandle; | ||||
|               aMedium.unkForRelease := nil; | ||||
|  | ||||
|               GlobalUnlock(TempHandle); | ||||
|  | ||||
|               Result := True; | ||||
|             end | ||||
|            else | ||||
|             GlobalFree(TempHandle); | ||||
|         end; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TOLEDragAndDropMgr.DragEnter(const DataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; | ||||
| begin | ||||
|   Result   := S_OK; | ||||
|   dwEffect := DROPEFFECT_NONE; | ||||
| end; | ||||
|  | ||||
| function TOLEDragAndDropMgr.DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; | ||||
| begin | ||||
|   Result   := S_OK; | ||||
|   dwEffect := DROPEFFECT_NONE; | ||||
| end; | ||||
|  | ||||
| function TOLEDragAndDropMgr.DragLeave: HRESULT; | ||||
| begin | ||||
|   Result   := S_OK; | ||||
| end; | ||||
|  | ||||
| function TOLEDragAndDropMgr.Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; | ||||
| begin | ||||
|   Result   := S_OK; | ||||
|   dwEffect := DROPEFFECT_NONE; | ||||
| end; | ||||
|  | ||||
|  | ||||
| // ***************************************************** | ||||
| // **************** TOLEEnumFormatEtc ****************** | ||||
| // ***************************************************** | ||||
|  | ||||
| constructor TOLEEnumFormatEtc.Create; | ||||
| begin | ||||
|   inherited Create; | ||||
|  | ||||
|   FIndex      := 0; | ||||
|   FNumFormats := 0; | ||||
| end; | ||||
|  | ||||
| constructor TOLEEnumFormatEtc.Create(const aFormatArray : TOLEFormatArray; aNumFormats, aIndex : integer); | ||||
| begin | ||||
|   inherited Create; | ||||
|  | ||||
|   FIndex      := aIndex; | ||||
|   FNumFormats := min(aNumFormats, CUSTOM_ARRAY_LENGTH); | ||||
|  | ||||
|   CopyFromFormatArray(aFormatArray); | ||||
| end; | ||||
|  | ||||
| destructor TOLEEnumFormatEtc.Destroy; | ||||
| var | ||||
|   i : integer; | ||||
| begin | ||||
|   i := 0; | ||||
|  | ||||
|   while (i < FNumFormats) do | ||||
|     begin | ||||
|       if (FFormatArray[i].ptd <> nil) then CoTaskMemFree(FFormatArray[i].ptd); | ||||
|       inc(i); | ||||
|     end; | ||||
|  | ||||
|   inherited Destroy; | ||||
| end; | ||||
|  | ||||
| procedure TOLEEnumFormatEtc.CopyFromFormatArray(const aSrcFormatArray : TOLEFormatArray); | ||||
| var | ||||
|   i : integer; | ||||
| begin | ||||
|   i := 0; | ||||
|  | ||||
|   while (i < FNumFormats) do | ||||
|     begin | ||||
|       CopyFormatEtc(FFormatArray[i], aSrcFormatArray[i]); | ||||
|       inc(i); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| procedure TOLEEnumFormatEtc.CopyFormatEtc(var aDstFormatEtc : TFormatEtc; const aSrcFormatEtc : TFormatEtc); | ||||
| begin | ||||
|   aDstFormatEtc.cfFormat := aSrcFormatEtc.cfFormat; | ||||
|   aDstFormatEtc.dwAspect := aSrcFormatEtc.dwAspect; | ||||
|   aDstFormatEtc.lindex   := aSrcFormatEtc.lindex; | ||||
|   aDstFormatEtc.tymed    := aSrcFormatEtc.tymed; | ||||
|  | ||||
|   if (aSrcFormatEtc.ptd = nil) then | ||||
|     aDstFormatEtc.ptd := nil | ||||
|    else | ||||
|     begin | ||||
|       aDstFormatEtc.ptd := CoTaskMemAlloc(SizeOf(TDVTargetDevice)); | ||||
|  | ||||
|       aDstFormatEtc.ptd.tdSize             := aSrcFormatEtc.ptd.tdSize; | ||||
|       aDstFormatEtc.ptd.tdDriverNameOffset := aSrcFormatEtc.ptd.tdDriverNameOffset; | ||||
|       aDstFormatEtc.ptd.tdDeviceNameOffset := aSrcFormatEtc.ptd.tdDeviceNameOffset; | ||||
|       aDstFormatEtc.ptd.tdPortNameOffset   := aSrcFormatEtc.ptd.tdPortNameOffset; | ||||
|       aDstFormatEtc.ptd.tdExtDevmodeOffset := aSrcFormatEtc.ptd.tdExtDevmodeOffset; | ||||
|       aDstFormatEtc.ptd.tdData             := aSrcFormatEtc.ptd.tdData; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TOLEEnumFormatEtc.Next(Celt: LongInt; out Elt; pCeltFetched: pLongInt): HRESULT; | ||||
| var | ||||
|   i : integer; | ||||
|   TempArray : TOLEFormatArray absolute Elt; | ||||
| begin | ||||
|   i := 0; | ||||
|  | ||||
|   while (i < Celt) and (FIndex < FNumFormats) do | ||||
|     begin | ||||
|       CopyFormatEtc(TempArray[i], FFormatArray[FIndex]); | ||||
|       inc(i); | ||||
|       inc(FIndex); | ||||
|     end; | ||||
|  | ||||
|   if (pCeltFetched <> nil) then pCeltFetched^ := i; | ||||
|  | ||||
|   if (i = Celt) then | ||||
|     Result := S_OK | ||||
|    else | ||||
|     Result := S_FALSE; | ||||
| end; | ||||
|  | ||||
| function TOLEEnumFormatEtc.Skip(Celt: Longint): HRESULT; | ||||
| begin | ||||
|   FIndex := FIndex + Celt; | ||||
|  | ||||
|   if (FIndex <= FNumFormats) then | ||||
|     Result := S_OK | ||||
|    else | ||||
|     Result := S_FALSE; | ||||
| end; | ||||
|  | ||||
| function TOLEEnumFormatEtc.Reset: HRESULT; | ||||
| begin | ||||
|   FIndex := 0; | ||||
|   Result := S_OK; | ||||
| end; | ||||
|  | ||||
| function TOLEEnumFormatEtc.Clone(out Enum: IEnumFormatEtc): HRESULT; | ||||
| begin | ||||
|   Enum   := TOLEEnumFormatEtc.Create(FFormatArray, FNumFormats, FIndex); | ||||
|   Result := S_OK; | ||||
| end; | ||||
|  | ||||
|  | ||||
| // ***************************************************** | ||||
| // ****************** TOLEDropTarget ******************* | ||||
| // ***************************************************** | ||||
|  | ||||
| constructor TOLEDropTarget.Create(const aManager : TOLEDragAndDropMgr); | ||||
| begin | ||||
|   inherited Create; | ||||
|  | ||||
|   FManager := aManager; | ||||
| end; | ||||
|  | ||||
| function TOLEDropTarget.DragEnter(const DataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; stdcall; | ||||
| begin | ||||
|   Result := FManager.DragEnter(DataObj, grfKeyState, pt, dwEffect); | ||||
| end; | ||||
|  | ||||
| function TOLEDropTarget.DragOver(grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; stdcall; | ||||
| begin | ||||
|   Result := FManager.DragOver(grfKeyState, pt, dwEffect); | ||||
| end; | ||||
|  | ||||
| function TOLEDropTarget.DragLeave: HRESULT; stdcall; | ||||
| begin | ||||
|   Result := FManager.DragLeave; | ||||
| end; | ||||
|  | ||||
| function TOLEDropTarget.Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint): HRESULT; stdcall; | ||||
| begin | ||||
|   Result := FManager.Drop(dataObj, grfKeyState, pt, dwEffect); | ||||
| end; | ||||
|  | ||||
|  | ||||
| // ***************************************************** | ||||
| // ****************** TOLEDropSource ******************* | ||||
| // ***************************************************** | ||||
|  | ||||
| function TOLEDropSource.QueryContinueDrag(fEscapePressed: bool; grfKeyState: LongInt): HRESULT; stdcall; | ||||
| begin | ||||
|   if fEscapePressed then | ||||
|     Result := DRAGDROP_S_CANCEL | ||||
|    else | ||||
|     if ((grfKeyState and MK_LBUTTON) = 0) then | ||||
|       Result := DRAGDROP_S_DROP | ||||
|      else | ||||
|       Result := S_OK; | ||||
| end; | ||||
|  | ||||
| function TOLEDropSource.GiveFeedback(dwEffect: LongInt): HRESULT; stdcall; | ||||
| begin | ||||
|   Result := DRAGDROP_S_USEDEFAULTCURSORS; | ||||
| end; | ||||
|  | ||||
|  | ||||
| // ***************************************************** | ||||
| // ****************** TOLEDataObject ******************* | ||||
| // ***************************************************** | ||||
|  | ||||
| constructor TOLEDataObject.Create(const aFormatArray : TOLEFormatArray; | ||||
|                                   const aMediumArray : TOLEMediumArray; | ||||
|                                         aNumFormats  : integer); | ||||
| var | ||||
|   i : integer; | ||||
| begin | ||||
|   inherited Create; | ||||
|  | ||||
|   FAsync       := False; | ||||
|   FInOperation := False; | ||||
|   FNumFormats  := min(aNumFormats, CUSTOM_ARRAY_LENGTH); | ||||
|  | ||||
|   i := 0; | ||||
|  | ||||
|   while (i < FNumFormats) do | ||||
|     begin | ||||
|       FFormatArray[i].cfFormat := aFormatArray[i].cfFormat; | ||||
|       FFormatArray[i].ptd      := aFormatArray[i].ptd; | ||||
|       FFormatArray[i].dwAspect := aFormatArray[i].dwAspect; | ||||
|       FFormatArray[i].lindex   := aFormatArray[i].lindex; | ||||
|       FFormatArray[i].tymed    := aFormatArray[i].tymed; | ||||
|  | ||||
|       FMediumArray[i]          := aMediumArray[i]; | ||||
|  | ||||
|       inc(i); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TOLEDataObject.LookupFormatEtc(const aFormatEtc : TFormatEtc) : integer; | ||||
| var | ||||
|   i : integer; | ||||
| begin | ||||
|   Result := -1; | ||||
|   i      := 0; | ||||
|  | ||||
|   while (i < FNumFormats) do | ||||
|     if ((FFormatArray[i].tymed and aFormatEtc.tymed) <> 0) and | ||||
|        (FFormatArray[i].cfFormat = aFormatEtc.cfFormat)    and | ||||
|        (FFormatArray[i].dwAspect = aFormatEtc.dwAspect)    then | ||||
|       begin | ||||
|         Result := i; | ||||
|         exit; | ||||
|       end | ||||
|      else | ||||
|       inc(i); | ||||
| end; | ||||
|  | ||||
| function TOLEDataObject.DupGlobalMem(hMem : HGLOBAL) : HGLOBAL; | ||||
| var | ||||
|   TempLen    : cardinal; | ||||
|   TempHandle : HGLOBAL; | ||||
|   TempSrc    : Pointer; | ||||
|   TempDst    : Pointer; | ||||
| begin | ||||
|   Result  := 0; | ||||
|   TempSrc := GlobalLock(hMem); | ||||
|  | ||||
|   if (TempSrc <> nil) then | ||||
|     begin | ||||
|       TempLen    := GlobalSize(hMem); | ||||
|       TempHandle := GlobalAlloc(GHND, TempLen); | ||||
|  | ||||
|       if (TempHandle <> 0) then | ||||
|         begin | ||||
|           TempDst := GlobalLock(TempHandle); | ||||
|  | ||||
|           if (TempDst <> nil) then | ||||
|             begin | ||||
|               Move(TempSrc^, TempDst^, TempLen); | ||||
|               Result := TempHandle; | ||||
|               GlobalUnlock(TempHandle); | ||||
|             end | ||||
|            else | ||||
|             GlobalFree(TempHandle); | ||||
|         end; | ||||
|  | ||||
|       GlobalUnlock(hMem); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TOLEDataObject.GetData(const FormatEtcIn: TFormatEtc; out Medium: TStgMedium):HRESULT; stdcall; | ||||
| var | ||||
|   i : integer; | ||||
| begin | ||||
|   i := LookupFormatEtc(FormatEtcIn); | ||||
|  | ||||
|   if (i < 0) or ((FFormatArray[i].tymed and TYMED_HGLOBAL) = 0) then | ||||
|     begin | ||||
|       Medium.tymed         := TYMED_NULL; | ||||
|       Medium.unkForRelease := nil; | ||||
|       Medium.hGlobal       := 0; | ||||
|       Result               := DV_E_FORMATETC; | ||||
|     end | ||||
|    else | ||||
|     begin | ||||
|       Medium.tymed         := FFormatArray[i].tymed; | ||||
|       Medium.unkForRelease := nil; | ||||
|       Medium.hGlobal       := DupGlobalMem(FMediumArray[i].hGlobal); | ||||
|       Result               := S_OK; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TOLEDataObject.GetDataHere(const FormatEtc: TFormatEtc; out Medium: TStgMedium):HRESULT; stdcall; | ||||
| begin | ||||
|   Result := DV_E_FORMATETC; | ||||
| end; | ||||
|  | ||||
| function TOLEDataObject.QueryGetData(const FormatEtc: TFormatEtc): HRESULT; stdcall; | ||||
| begin | ||||
|   if (LookupFormatEtc(FormatEtc) < 0) then | ||||
|     Result := DV_E_FORMATETC | ||||
|    else | ||||
|     Result := S_OK; | ||||
| end; | ||||
|  | ||||
| function TOLEDataObject.GetCanonicalFormatEtc(const FormatEtc: TFormatEtc; out FormatEtcout: TFormatEtc): HRESULT; stdcall; | ||||
| begin | ||||
|   FormatEtcout.cfFormat := 0; | ||||
|   FormatEtcout.dwAspect := DVASPECT_CONTENT; | ||||
|   FormatEtcout.lindex   := -1; | ||||
|   FormatEtcout.tymed    := TYMED_NULL; | ||||
|   FormatEtcout.ptd      := nil; | ||||
|  | ||||
|   Result := E_NOTIMPL; | ||||
| end; | ||||
|  | ||||
| function TOLEDataObject.SetData(const FormatEtc: TFormatEtc; var Medium: TStgMedium; fRelease: Bool): HRESULT; stdcall; | ||||
| begin | ||||
|   Result := E_NOTIMPL; | ||||
| end; | ||||
|  | ||||
| function TOLEDataObject.EnumFormatEtc(dwDirection: LongInt; out aEnumFormatEtc: IEnumFormatEtc): HRESULT; stdcall; | ||||
| begin | ||||
|   if (dwDirection = DATADIR_GET) then | ||||
|     begin | ||||
|       aEnumFormatEtc := TOLEEnumFormatEtc.Create(FFormatArray, FNumFormats); | ||||
|       Result         := S_OK; | ||||
|     end | ||||
|    else | ||||
|     begin | ||||
|       aEnumFormatEtc := nil; | ||||
|  | ||||
|       if (dwDirection = DATADIR_SET) then | ||||
|         Result := E_NOTIMPL | ||||
|        else | ||||
|         Result := E_INVALIDARG; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function TOLEDataObject.dAdvise(const FormatEtc: TFormatEtc; | ||||
|                                       advf: LongInt; | ||||
|                                 const advsink: IAdviseSink; | ||||
|                                 out   dwConnection: LongInt): HRESULT; stdcall; | ||||
| begin | ||||
|   Result := OLE_E_ADVISENOTSUPPORTED; | ||||
| end; | ||||
|  | ||||
| function TOLEDataObject.dUnadvise(dwConnection: LongInt): HRESULT; stdcall; | ||||
| begin | ||||
|   Result := OLE_E_ADVISENOTSUPPORTED; | ||||
| end; | ||||
|  | ||||
| function TOLEDataObject.EnumdAdvise(out EnumAdvise: IEnumStatData): HRESULT; stdcall; | ||||
| begin | ||||
|   Result := OLE_E_ADVISENOTSUPPORTED; | ||||
| end; | ||||
|  | ||||
| end. | ||||
		Reference in New Issue
	
	Block a user