Support for Delphi XE5

1,388 views
Skip to first unread message

Dev Stonez

unread,
Oct 13, 2013, 4:39:13 PM10/13/13
to delphichrom...@googlegroups.com
I'm looking to use TChromiumFMX  to integrate it with into GMLib (http://gmlibrary.googlecode.com - The Google Maps v3 library for Dephi) for FireMonkey and  Delphi XE5 ... but it look like that XE5 is not (yet) supported into DCEF ... 
Various compiler errors are thrown trying to compile DCEF_XE3.dpk (renamed as DCEF_XE5.dpk):

--------------------------------------------
[dcc32 Warning] ceflib.pas(10290): W1000 Symbol 'Seek' is deprecated
[dcc32 Error] ceffmx.pas(34): E2003 Undeclared identifier: 'TControl'
[dcc32 Error] ceffmx.pas(91): E2137 Method 'Paint' not found in base class
[dcc32 Error] ceffmx.pas(92): E2137 Method 'MouseDown' not found in base class
[dcc32 Error] ceffmx.pas(93): E2137 Method 'MouseMove' not found in base class
[dcc32 Error] ceffmx.pas(94): E2137 Method 'MouseUp' not found in base class
[dcc32 Error] ceffmx.pas(95): E2137 Method 'MouseWheel' not found in base class
[dcc32 Error] ceffmx.pas(96): E2137 Method 'KeyDown' not found in base class
[dcc32 Error] ceffmx.pas(97): E2137 Method 'KeyUp' not found in base class
[dcc32 Error] ceffmx.pas(98): E2137 Method 'DialogKey' not found in base class
[dcc32 Error] ceffmx.pas(100): E2137 Method 'Loaded' not found in base class
[dcc32 Error] ceffmx.pas(101): E2137 Method 'Resize' not found in base class
[dcc32 Error] ceffmx.pas(102): E2137 Method 'DoEnter' not found in base class
[dcc32 Error] ceffmx.pas(103): E2137 Method 'DoExit' not found in base class
[dcc32 Error] ceffmx.pas(249): E2170 Cannot override a non-virtual method
[dcc32 Error] ceffmx.pas(250): E2037 Declaration of 'Create' differs from previous declaration
[dcc32 Warning] ceffmx.pas(258): W1055 PUBLISHED caused RTTI ($M+) to be added to type 'TChromiumFMX'
[dcc32 Error] ceffmx.pas(259): E2147 Property 'Align' does not exist in base class
[dcc32 Error] ceffmx.pas(260): E2147 Property 'Anchors' does not exist in base class
[dcc32 Error] ceffmx.pas(262): E2147 Property 'TabOrder' does not exist in base class
[dcc32 Error] ceffmx.pas(263): E2147 Property 'Visible' does not exist in base class
[dcc32 Error] ceffmx.pas(34): E2291 Missing implementation of interface method IInterface.QueryInterface
[dcc32 Error] ceffmx.pas(34): E2291 Missing implementation of interface method IInterface._AddRef
[dcc32 Error] ceffmx.pas(34): E2291 Missing implementation of interface method IInterface._Release
[dcc32 Error] ceffmx.pas(365): E2008 Incompatible types
[dcc32 Error] ceffmx.pas(366): E2003 Undeclared identifier: 'CanFocus'
[dcc32 Error] ceffmx.pas(368): E2003 Undeclared identifier: 'ComponentState'
[dcc32 Error] ceffmx.pas(368): E2015 Operator not applicable to this operand type
[dcc32 Error] ceffmx.pas(371): E2010 Incompatible types: 'tagBITMAP' and 'Pointer'
[dcc32 Error] ceffmx.pas(386): E2003 Undeclared identifier: 'ComponentState'
[dcc32 Error] ceffmx.pas(386): E2015 Operator not applicable to this operand type
[dcc32 Error] ceffmx.pas(416): E2015 Operator not applicable to this operand type
[dcc32 Error] ceffmx.pas(417): E2003 Undeclared identifier: 'Free'
[dcc32 Error] ceffmx.pas(425): E2003 Undeclared identifier: 'IsFocused'
[dcc32 Error] ceffmx.pas(425): E2015 Operator not applicable to this operand type
[dcc32 Error] ceffmx.pas(570): E2003 Undeclared identifier: 'Cursor'
[dcc32 Error] ceffmx.pas(571): E2003 Undeclared identifier: 'Cursor'
[dcc32 Error] ceffmx.pas(585): E2003 Undeclared identifier: 'Cursor'
[dcc32 Error] ceffmx.pas(636): E2015 Operator not applicable to this operand type
[dcc32 Error] ceffmx.pas(640): E2003 Undeclared identifier: 'Width'
[dcc32 Error] ceffmx.pas(641): E2003 Undeclared identifier: 'Height'
[dcc32 Error] ceffmx.pas(662): E2015 Operator not applicable to this operand type
[dcc32 Error] ceffmx.pas(666): E2003 Undeclared identifier: 'Width'
[dcc32 Error] ceffmx.pas(667): E2003 Undeclared identifier: 'Height'
[dcc32 Error] ceffmx.pas(735): E2015 Operator not applicable to this operand type
[dcc32 Error] ceffmx.pas(735): E2003 Undeclared identifier: 'Width'
[dcc32 Error] ceffmx.pas(735): E2015 Operator not applicable to this operand type
[dcc32 Error] ceffmx.pas(735): E2003 Undeclared identifier: 'Height'
[dcc32 Error] ceffmx.pas(735): E2015 Operator not applicable to this operand type
[dcc32 Error] ceffmx.pas(746): E2003 Undeclared identifier: 'StartLine'
[dcc32 Error] ceffmx.pas(758): E2250 There is no overloaded version of 'InvalidateRect' that can be called with these arguments
[dcc32 Error] ceffmx.pas(954): E2035 Not enough actual parameters
[dcc32 Error] ceffmx.pas(973): E2003 Undeclared identifier: 'IsMouseOver'
[dcc32 Error] ceffmx.pas(997): E2003 Undeclared identifier: 'AbsoluteToLocal'
[dcc32 Error] ceffmx.pas(997): E2003 Undeclared identifier: 'Platform'
[dcc32 Error] ceffmx.pas(999): E2003 Undeclared identifier: 'X'
[dcc32 Error] ceffmx.pas(1000): E2003 Undeclared identifier: 'Y'
[dcc32 Error] ceffmx.pas(1011): E2015 Operator not applicable to this operand type
[dcc32 Error] ceffmx.pas(1013): E2003 Undeclared identifier: 'Canvas'
[dcc32 Error] ceffmx.pas(1014): E2003 Undeclared identifier: 'Scene'
[dcc32 Error] ceffmx.pas(1016): E2066 Missing operator or semicolon
[dcc32 Error] ceffmx.pas(1016): E2250 There is no overloaded version of 'GetUpdateRect' that can be called with these arguments
[dcc32 Error] ceffmx.pas(1017): E2003 Undeclared identifier: 'AbsoluteToLocal'
[dcc32 Error] ceffmx.pas(1019): E2003 Undeclared identifier: 'ClipRect'
[dcc32 Error] ceffmx.pas(1020): E2003 Undeclared identifier: 'Canvas'
[dcc32 Error] ceffmx.pas(1022): E2003 Undeclared identifier: 'Canvas'
[dcc32 Error] ceffmx.pas(1030): E2003 Undeclared identifier: 'IsFocused'
[dcc32 Error] ceffmx.pas(1052): E2003 Undeclared identifier: 'IsFocused'
[dcc32 Error] ceffmx.pas(1079): E2003 Undeclared identifier: 'ComponentState'
[dcc32 Error] ceffmx.pas(1079): E2015 Operator not applicable to this operand type
[dcc32 Error] ceffmx.pas(1085): E2015 Operator not applicable to this operand type
[dcc32 Error] ceffmx.pas(1086): E2003 Undeclared identifier: 'Free'
[dcc32 Error] ceffmx.pas(1087): E2003 Undeclared identifier: 'Create'
[dcc32 Error] ceffmx.pas(1087): E2003 Undeclared identifier: 'Width'
[dcc32 Error] ceffmx.pas(1087): E2003 Undeclared identifier: 'Height'
[dcc32 Fatal Error] cefreg.pas(210): F2063 Could not compile used unit 'ceffmx.pas' 

---------------------------------------------

I added the ncessary defines into the cef.inc but without no benefit ;

---------------------------------------------
// Delphi XE4
{$IFDEF VER250}
  {$DEFINE SUPPORTS_INLINE}
  {$DEFINE DELPHI5_UP}
  {$DEFINE DELPHI6_UP}
  {$DEFINE DELPHI7_UP}
  {$DEFINE DELPHI8_UP}
  {$DEFINE DELPHI9_UP}
  {$DEFINE DELPHI10_UP}
  {$DEFINE DELPHI11_UP}
  {$DEFINE DELPHI12_UP}
  {$DEFINE DELPHI14_UP}
  {$DEFINE DELPHI15_UP}
  {$DEFINE DELPHI16_UP}
  {$DEFINE DELPHI17_UP}
  {$DEFINE DELPHI18_UP}
{$ENDIF}

// Delphi XE5
{$IFDEF VER260}
  {$DEFINE SUPPORTS_INLINE}
  {$DEFINE DELPHI5_UP}
  {$DEFINE DELPHI6_UP}
  {$DEFINE DELPHI7_UP}
  {$DEFINE DELPHI8_UP}
  {$DEFINE DELPHI9_UP}
  {$DEFINE DELPHI10_UP}
  {$DEFINE DELPHI11_UP}
  {$DEFINE DELPHI12_UP}
  {$DEFINE DELPHI14_UP}
  {$DEFINE DELPHI15_UP}
  {$DEFINE DELPHI16_UP}
  {$DEFINE DELPHI17_UP}
  {$DEFINE DELPHI18_UP}
  {$DEFINE DELPHI19_UP}
{$ENDIF}

---------------------------------------------

So, there is any XE5 patched DCEF fork available ? 


HREFTools

unread,
Oct 19, 2013, 4:17:01 AM10/19/13
to delphichrom...@googlegroups.com
You might just need to get some namespace and search path options sorted out in order to compile with FireMonkey instead of VCL.  Those can generally be controlled on the Project > Options page for any DPK or DPR.

TControl *is* included with FireMonkey; see http://docwiki.embarcadero.com/Libraries/XE4/en/FMX.Controls.TControl but the containing unit differs from the VCL version of the class.  And do not worry about the XE4 in the URL for the online help page; the same holds for XE5.

If Delphi (the FireMonkey compiler) knew that when the uses clause mentions  'Controls' you really wanted 'FMX.Controls' then it would not be getting stuck at that point  ( E2003 Undeclared identifier: 'TControl' ).  The trick is to convince the Delphi IDE which framework (VCL vs FIreMonkey) you want to be active during compilation.  Sometimes it picks up on that when you add FMX.  (or  VCL.) before any unit name, and it pops up a dialog to let you confirm the framework decision.  Sometimes you have to get the paths and name space sorted out.

My suggestion would be to File > Close All, make a new FireMonkey application, make sure it compiles, then go into Project Options and save every single path or setting to a separate Notepad file.  Then return to your problem DPK and repeat, pasting back the settings that work.   Make sure you have selected the BASE / TOP configuration so you don't have to repeat it again and again for different configs and platforms (release vs debug, win32 vs win64).  

Ann

Reply all
Reply to author
Forward
0 new messages