With Version 6461 downloaded with TortoiseSVN, when I now try to compile a GLScene application using Delphi XE Starter I get
the error [DCC Error] GLCrossPlatform.pas(269): E2003 Undeclared identifier: 'sAllFilter'
The code section from GLCrossPlatform.pas(269) is...
// Several define from unit Consts
const
{$IFDEF FPC}
glsAllFilter: string = 'All';
{$ELSE}
glsAllFilter: string = sAllFilter;
{$ENDIF}
When I search the GLScene files for 'sAllFilter' the only other reference I find is...
<li>13/07/09 - DanB - replaced sAllFilter with glsAllFilter (for FPC)
Found in unit GLSoundFileObjects;
After removing all the Glscene packages I tried to reinstall 'package GLScene_DesignTime' and the same error occurred.
So what is happening here ?
I would really like to be able to uses the GLScene library as soon as possible. Could you please help.
Eric Hardinge
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
But I now have a number of other problems.
1. [DCC Error] GLWin32Viewer.pas(439): E2003 Undeclared identifier: 'TOUCH_COORD_TO_PIXEL'
It seems that Delphi XE starter does not have this identifier, but no problem I don't need it.
I found a reference to 'TOUCH_COORD_TO_PIXEL'
at 'msdn.microsoft.com/en-us/library/windows/.../dd744778(v=vs.85).aspx'
If I comment out the reference to TOUCH lines it seems to work.
Do I need it? If so is there a way to download whatever I need?
//-----------------------
// Matrix types
//-----------------------
TGLMatrix2DType = array[0..3] of TGLVector2D;
{$NODEFINE TGLMatrix2DType}
($HPPEMIT END OPENNAMESPACE)
($HPPEMIT END 'typedef TGLVector2D TGLMatrix2DArray[4];')
($HPPEMIT END CLOSENAMESPACE)
TGLMatrix3DType = array[0..3] of TGLVector3D;
{$NODEFINE TGLMatrix3DType}
($HPPEMIT END OPENNAMESPACE)
($HPPEMIT END 'typedef TGLVector3D TGLMatrix3DType[4];')
($HPPEMIT END CLOSENAMESPACE)
This I do not understand??
Are these commented out? I thought that '($HPPEMIT END OPENNAMESPACE)' indicated that it is a comment?
The Delphi help only gives
'The $HPPEMIT directive can only appear after the unit header.'
and
'The HPPEMIT directive adds a specified symbol to the header file generated for C++. For example: {$HPPEMIT 'typedef double Weight' }.
HPPEMIT directives are output into the "user supplied" section at the top of the header file in the order in which they appear in the Delphi file.
The HPPEMIT directive accepts an optional END directive that instructs the compiler to emit the string at the bottom of the .hpp file. Otherwise, the string is emitted at the top of the file.
Example:
{$HPPEMIT 'Symbol goes to top of file'}
{$HPPEMIT END 'Symbol goes to bottom of file'}'
which is no help to me.
If I change the above code to ...
//-----------------------
// Matrix types
//-----------------------
TGLMatrix2DType = array[0..3] of TGLVector2D;
// {$NODEFINE TGLMatrix2DType}
// ($HPPEMIT END OPENNAMESPACE)
// ($HPPEMIT END 'typedef TGLVector2D TGLMatrix2DArray[4];')
// ($HPPEMIT END CLOSENAMESPACE)
TGLMatrix3DType = array[0..3] of TGLVector3D;
// {$NODEFINE TGLMatrix3DType}
// ($HPPEMIT END OPENNAMESPACE)
// ($HPPEMIT END 'typedef TGLVector3D TGLMatrix3DType[4];')
// ($HPPEMIT END CLOSENAMESPACE)
It works but now I get this error
3.[DCC Fatal Error] GLSceneEdit.pas(80): F1026 File not found: 'Actions.dcu'
At this point I will wait for your response.
I really appreciate your help and am amazed by the breadth of knowledge of the administrators.
Eric Hardinge.
P.S. the asterisk is removed from the code by the formatting
Last edit: Eric Hardinge 2014-09-17
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I was using version 6461 not 6416 as indicated in the first Post' title.
I was using version 6462 for the second post.
Now I am using version 6463 starting with an entirely fresh download.
GLTypes only occurs in GLScene_RunTime.dpk for
DelphiXE3 DelphiXE4 DelphiXE5 DelphiXE6 & DelphiXE7
I am using DelphiXE There is no reference to GLTypes
With Version 6461 downloaded with TortoiseSVN, when I now try to compile a GLScene application using Delphi XE Starter I get
the error [DCC Error] GLCrossPlatform.pas(269): E2003 Undeclared identifier: 'sAllFilter'
The code section from GLCrossPlatform.pas(269) is...
// Several define from unit Consts
const
{$IFDEF FPC}
glsAllFilter: string = 'All';
{$ELSE}
glsAllFilter: string = sAllFilter;
{$ENDIF}
When I search the GLScene files for 'sAllFilter' the only other reference I find is...
After removing all the Glscene packages I tried to reinstall 'package GLScene_DesignTime' and the same error occurred.
So what is happening here ?
I would really like to be able to uses the GLScene library as soon as possible. Could you please help.
Eric Hardinge
Sorry, it was due to the last change in r6461 (removal of 'Consts' in GLCrossPlatform.pas).
In GLCrossPlatform.pas, line 98, please change to:
{$IFDEF GLS_DELPHI_XE2_UP}
System.Classes, System.SysUtils, System.StrUtils,
VCL.Consts, VCL.Graphics,
VCL.Controls, VCL.Forms, VCL.Dialogs
{$ELSE}
{$IFNDEF FPC}
Consts,
{$ENDIF}
Classes, SysUtils, StrUtils, Graphics, Controls,
Forms, Dialogs
{$ENDIF}
FPC doesn't seem to have the 'Consts' unit and it was keeping GLScene from compiling in Lazarus. But Delphi needs that 'Consts' reference.
Ok, added.
Thank you for your prompt response.
But I now have a number of other problems.
1. [DCC Error] GLWin32Viewer.pas(439): E2003 Undeclared identifier: 'TOUCH_COORD_TO_PIXEL'
It seems that Delphi XE starter does not have this identifier, but no problem I don't need it.
I found a reference to 'TOUCH_COORD_TO_PIXEL'
at 'msdn.microsoft.com/en-us/library/windows/.../dd744778(v=vs.85).aspx'
If I comment out the reference to TOUCH lines it seems to work.
Do I need it? If so is there a way to download whatever I need?
The code section is...
//-----------------------
// Matrix types
//-----------------------
TGLMatrix2DType = array[0..3] of TGLVector2D;
{$NODEFINE TGLMatrix2DType}
($HPPEMIT END OPENNAMESPACE)
($HPPEMIT END 'typedef TGLVector2D TGLMatrix2DArray[4];')
($HPPEMIT END CLOSENAMESPACE)
TGLMatrix3DType = array[0..3] of TGLVector3D;
{$NODEFINE TGLMatrix3DType}
($HPPEMIT END OPENNAMESPACE)
($HPPEMIT END 'typedef TGLVector3D TGLMatrix3DType[4];')
($HPPEMIT END CLOSENAMESPACE)
Are these commented out? I thought that '($HPPEMIT END OPENNAMESPACE)' indicated that it is a comment?
The Delphi help only gives
'The $HPPEMIT directive can only appear after the unit header.'
and
'The HPPEMIT directive adds a specified symbol to the header file generated for C++. For example: {$HPPEMIT 'typedef double Weight' }.
HPPEMIT directives are output into the "user supplied" section at the top of the header file in the order in which they appear in the Delphi file.
The HPPEMIT directive accepts an optional END directive that instructs the compiler to emit the string at the bottom of the .hpp file. Otherwise, the string is emitted at the top of the file.
Example:
{$HPPEMIT 'Symbol goes to top of file'}
{$HPPEMIT END 'Symbol goes to bottom of file'}'
which is no help to me.
If I change the above code to ...
//-----------------------
// Matrix types
//-----------------------
TGLMatrix2DType = array[0..3] of TGLVector2D;
// {$NODEFINE TGLMatrix2DType}
// ($HPPEMIT END OPENNAMESPACE)
// ($HPPEMIT END 'typedef TGLVector2D TGLMatrix2DArray[4];')
// ($HPPEMIT END CLOSENAMESPACE)
TGLMatrix3DType = array[0..3] of TGLVector3D;
// {$NODEFINE TGLMatrix3DType}
// ($HPPEMIT END OPENNAMESPACE)
// ($HPPEMIT END 'typedef TGLVector3D TGLMatrix3DType[4];')
// ($HPPEMIT END CLOSENAMESPACE)
It works but now I get this error
3.[DCC Fatal Error] GLSceneEdit.pas(80): F1026 File not found: 'Actions.dcu'
At this point I will wait for your response.
I really appreciate your help and am amazed by the breadth of knowledge of the administrators.
Eric Hardinge.
P.S. the asterisk is removed from the code by the formatting
Last edit: Eric Hardinge 2014-09-17
After the line:
procedure TGLSceneViewer.WMTouch(var Message: TMessage);
Adding:
function TOUCH_COORD_TO_PIXEL(l : integer) : integer; // Delphi XE needs this
begin
result := l div 100;
end;
would solve the XE without TOUCH_COORD_TO_PIXEL problem.
Hm, remove GLTypes from your GLScene runtime.dpk if you use XE studio and also? please, try to use current 6462 version
Last edit: Pavel Vassiliev 2014-09-18
I was using version 6461 not 6416 as indicated in the first Post' title.
I was using version 6462 for the second post.
Now I am using version 6463 starting with an entirely fresh download.
GLTypes only occurs in GLScene_RunTime.dpk for
DelphiXE3 DelphiXE4 DelphiXE5 DelphiXE6 & DelphiXE7
I am using DelphiXE There is no reference to GLTypes
GLWin32Viewer
Error 1 [DCC Error] GLWin32Viewer.pas(439): E2003 Undeclared identifier: 'TOUCH_COORD_TO_PIXEL'
GLTypes
Error 2 [DCC Error] GLTypes.pas(117): E1030 Invalid compiler directive: 'HPPEMIT'
GLSceneEdit.pas
Error 3 [DCC Fatal Error] GLSceneEdit.pas(80): F1026 File not found: 'Actions.dcu'
GLScene_DesignTime
Error 4 [DCC Error] GLScene_DesignTime.dpk(40): E2199 Packages 'vclimg' and 'GLScene_RunTime' both contain unit 'jpeg'
GLScene_RunTime.dcp and GLScene_DesignTime.dcp installed OK after commenting out the sections mentioned before.
Package C:\GLScene\DelphiXE\GLCg_RunTime.dpk;
Contains {$R '..\Source\CgShaders\GLSceneVCLCg.dcr'}
Should be {$R '..\Source\GLSceneVCLCg.dcr'}
Error 5[DCC Error] GLCg_DesignTime.dpk(33): E2199 Packages 'GLScene_RunTime' and 'xmlrtl' both contain unit 'XMLDoc'
Package C:\GLScene\DelphiXE\GLSS_FMOD.dpk;
Contains {$R '..\Source\SoundAPIs\GLSceneVCLFMod.dcr'}
Should be {$R '..\Source\GLSceneVCLFMod.dcr'}
So you see I'm stuck.
Is there anything you could advise to help.
Eric Hardinge.