i encounter the same issue.. only when i build as a win32 fmx application.
reproduce :
Create a new multiplatform application c++
build and run successful
drop a teegrid component (1.17) on the form
build/run gives the error TeeGrid1 ._Headers:invalid property value.
switch to 64bit
build and run successful
switch back to 32bit
build/run gives the error TeeGrid1 ._Headers:invalid property value.
open form as text and remove the _Headers section
save file
close file and do not open the designer
build and run successful
open form
open designer and move the teeGrid
save the change
build/run gives the error TeeGrid1._Headers:invalid property value.
My applications consists of many lists where the teegrid is used. normally i make 64 bit applications only but for a project where i only have access to specific 32bit libraries i ported my bases forms to 32bit.. the workaround may work but is not workable and not maintainable..
Yes, the error has appeared again for the latest C++ Windows x64 but works fine with modern C++ Windows x64. We’ll take another look. Embarcadero recommends the use of modern.
so even if modern is the way to go.. (i agree) this is not the focus. for now all implementations i have work properly for WIN64 but not WIN32… i only require the 32bit to work (i would be open to try a development version and provide feedback on my findings)
i have no trouble with the x64 bit (our production is still running c++ 12.0 with teegrid 1.17) but i am testing the working on a seperate system with 12.2 and teegrid 1.17.. for 32bit this failed.. 64bit worked.
This issue has been a moving target, resulting with correct functioning for certain RAD Studio 12 patch releases. As you point out, it only affects C++ projects. We are checking this now with RAD Studio update 3.
For your purposes, it may be acceptable to you (?) to disable the _Headers property from being saved to the Form at designtime. If you do that (as described below) old projects will report a TeeGrid error on first opening, but ignoring it will continue and any small change to the form, re-saving it, will resave the TeeGrid to the form without the ‘offending’ property.
The workaround is to comment _Filer.DefineProperty('Headers’ in the TeeGrid.pas file and to rerun the TeeGridRecompile installer, to rebuild and re-install the modified source to RAD Studio:
ie.
procedure TCustomTeeGrid.DefineProperties(Filer: TFiler);
function CanPersistData:Boolean;
begin
result:=(FData<>nil) and TDataAccess(FData).Streamable;
end;
begin
inherited;
Filer.DefineProperty('_Data',ReadData,WriteData,CanPersistData);
Filer.DefineProperty('_Footer',ReadFooter,WriteFooter,Footer.Count>0);
//Filer.DefineProperty('_Headers',ReadHeaders,WriteHeaders,Headers.Count>0);
end;
TeeGrid will no longer save a designtime set Header for runtime, but that is easily solved by adding the header by code.
I hope that may allow you to move forward. We will report back on findings with RAD Studio 12.3.
I came across this issue on TeeGrid for VCL & FMX Registered version-1.18 using Win32 with Rad Studio 12.3 C++Builder. Is there an official patch/fix available? I’m aware of the workaround: comment Filer.DefineProperty(‘_Headers’ in the TeeGrid.pas file and to rerun the TeeGridRecompile installer.
Thanks, Ken
This is an issue that we’ve had trouble finding cause/solution for and that doesn’t occur on all IDE installations or compile platforms. One workaround is to compile from source, ie. to add the source VCL (or FMX) folders to the project search path and rebuild/run.