Jump to content

dmitrybv

Members
  • Content Count

    74
  • Joined

  • Last visited

Everything posted by dmitrybv

  1. Good day. Embarcadero® RAD Studio 12 Version 29.0.55362.2017 Android 13, Samsung S20. I have files taken by the camera in the folder '/storage/emulated/0/DCIM/Camera' on my phone. How to set up the Android application correctly so that I can get a list of these files? When creating an Fmx application by default, the command TDirectory.GetFiles('/storage/emulated/0/DCIM/Camera') returns an empty list.
  2. Hello, Dave Thanks for the demo project. Is there a more universal way to view the list of files in Android folders? Regarding the TDirectory.GetDirectories(), TDirectory.GetFiles() methods, I noticed that the TDirectory.GetDirectories('/storage/emulated/0/') method returns a list of folders similar to what is visible in the Files by Google program. Files by Google displays files in folders such as: '/storage/emulated/0/DCIM/Camera' '/storage/emulated/0/DCIM/Screenshots' '/storage/emulated/0/Documents' '/storage/emulated/0/Download' but the TDirectory.GetFiles() method does not return any files when specifying any path. What method should be used in Android to get a list of files in a folder?
  3. Is there a Demo project in RAD Studio Samples or on github.com that demonstrates the ability to view photos in the app taken via the camera? Perhaps the TDirectory.GetFile method on Android does not work correctly or the app should request some rights via User Persmissions.
  4. TPath.GetCameraPath() returns the following value - '/storage/emulated/0/Android/data/com.embarcadero.EhLib_Fmx_MainDemo/files/DCIM'. When viewing from the program via TDirectory.GetFile, this folder does not contain files. When viewing from the phone, I cannot access the folder ‘/storage/emulated/0/Android/data/com.embarcadero.EhLib_Fmx_MainDemo’ at all.
  5. Class alias for class helper doesn't make class helper visible for compiler. Is it possible to declare class alias for class helper with making class helper visible for compiler? Example Unit1 TControlHelper = class helper for TControl function RefSelf: TControl; end; Unit2 TControlHelper = Unit1.TControlHelper; Unit3 uses Unit2; ... var MyControl: TControl; MyControl.RefSelf //Compiler error.
  6. Is it possible to declare an identical type for a generic class? I can't do it. TTypedListFieldLinkEh = EhLib.TableLink.TypedLists.TTypedListFieldLinkEh; TListFieldLinkListEh = EhLib.TableLink.TypedLists.TListFieldLinkListEh; TTypedListItemLinkEh = EhLib.TableLink.TypedLists.TTypedListItemLinkEh; TListRecLinkListEh = EhLib.TableLink.TypedLists.TListRecLinkListEh; TListTableLinkEh = EhLib.TableLink.TypedLists.TListTableLinkEh; TListFieldLinkListEh<T: class, constructor> = EhLib.TableLink.TypedLists.TListFieldLinkListEh<T: class, constructor>; //Compile Error TTypedListItemLinkEh<T: class, constructor> = EhLib.TableLink.TypedLists.TTypedListItemLinkEh<T: class, constructor>; TListRecLinkListEh<T: class, constructor> = EhLib.TableLink.TypedLists.TListRecLinkListEh<T: class, constructor>; TListTableLinkEh<T: class, constructor> = EhLib.TableLink.TypedLists.TListTableLinkEh<T: class, constructor>;
  7. Thank you. This code works: TListFieldLinkListEh<T: class, constructor> = class(EhLib.TableLink.TypedLists.TListFieldLinkListEh<T>); TTypedListItemLinkEh<T: class, constructor> = class(EhLib.TableLink.TypedLists.TTypedListItemLinkEh<T>); TListRecLinkListEh<T: class, constructor> = class(EhLib.TableLink.TypedLists.TListRecLinkListEh<T>); TListTableLinkEh<T: class, constructor> = class(EhLib.TableLink.TypedLists.TListTableLinkEh<T>); In this case, however, a new type is created. But for types created through generics this is not a very big problem.
  8. Hello. I would like to thank you for supporting GExperts. I am using GExperts_RS12_1.3.25_2024-08-24.exe in RAD Studio 12.3. I use only three functions: SortLines, PreviousIdent, NextIdent. These functions work in RAD Studio 12.3 without errors.
  9. Embarcadero® RAD Studio 11 Version 28.0.48361.3236 Please tell me what could be causing this error. C:\RADStudio\22.0\EhLib\Src>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild EhLibRtl.dproj /t:Build /p:Config=Release /p:platform=Win64 || Pause Microsoft (R) Build Engine version 4.8.9037.0 [Microsoft .NET Framework, version 4.0.30319.42000] Copyright (C) Microsoft Corporation. All rights reserved. Build started 16/03/2025 22:50:46. Project "C:\RADStudio\22.0\EhLib\Src\EhLibRtl.dproj" on node 1 (Build target(s)). CreateProjectDirectories: Creating directory "..\Lib\Win64\Release\". md "..\Lib\Win64\Release\" Creating directory "C:\RADStudio\22.0\EhLib\Dcp\Win64\". md "C:\RADStudio\22.0\EhLib\Dcp\Win64\" Creating directory "..\Hpp\Win64\". md "..\Hpp\Win64\" Creating directory "C:\RADStudio\22.0\EhLib\Bpl\Win64\". md "C:\RADStudio\22.0\EhLib\Bpl\Win64\" BuildVersionResource: C:\RADStudio\22.0\bin\cgrc.exe -c65001 EhLibRtl.vrc -foEhLibRtl.res CodeGear Resource Compiler/Binder Version 1.2.2 Copyright (c) 2008-2012 Embarcadero Technologies Inc. Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0 Copyright (C) Microsoft Corporation. All rights reserved. Deleting file "EhLibRtl.vrc". del "EhLibRtl.vrc" _PasCoreCompile: C:\RADStudio\22.0\bin\dcc64.exe -$D0 -$L- -$Y- --no-config -B -Q -Z -TX.bpl -AGenerics.Collections=System.Generics.Co llections;Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;Dbi Procs=BDE;DbiErrs=BDE -DRELEASE -E.\Win64\Release -Ic:\radstudio\22.0\lib\Win64\release;C:\Users\BDV\Documents\Embarc adero\Studio\22.0\Imports;C:\RADStudio\22.0\Imports;C:\RADStudio\22.0\EhLib\Dcp\Win64;C:\RADStudio\22.0\include -LEC: \RADStudio\22.0\EhLib\Bpl\Win64 -LNC:\RADStudio\22.0\EhLib\Dcp\Win64 -NU..\Lib\Win64\Release -NSWinapi;System.Win;Dat a.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;System;Xml;Data;Datasnap;Web;Soap; -Oc:\radstudio\22.0\lib\Win64\release; C:\Users\BDV\Documents\Embarcadero\Studio\22.0\Imports;C:\RADStudio\22.0\Imports;C:\RADStudio\22.0\EhLib\Dcp\Win64;C: \RADStudio\22.0\include -Rc:\radstudio\22.0\lib\Win64\release;C:\Users\BDV\Documents\Embarcadero\Studio\22.0\Imports; C:\RADStudio\22.0\Imports;C:\RADStudio\22.0\EhLib\Dcp\Win64;C:\RADStudio\22.0\include -Uc:\radstudio\22.0\lib\Win64\r elease;C:\Users\BDV\Documents\Embarcadero\Studio\22.0\Imports;C:\RADStudio\22.0\Imports;C:\RADStudio\22.0\EhLib\Dcp\W in64;C:\RADStudio\22.0\include --description:"EhLib RunTime Package" -JL -NBC:\RADStudio\22.0\EhLib\Dcp\Win64 -NH..\H pp\Win64 -NOC:\RADStudio\22.0\EhLib\Dcp\Win64 EhLibRtl.dpk Embarcadero Delphi for Win64 compiler version 35.0 Copyright (c) 1983,2021 Embarcadero Technologies, Inc. Rtl\EhLibUtils.pas(2076): error F2084: Internal Error: IRR928 [C:\RADStudio\22.0\EhLib\Src\EhLibRtl.dproj] Done Building Project "C:\RADStudio\22.0\EhLib\Src\EhLibRtl.dproj" (Build target(s)) -- FAILED. Build FAILED. "C:\RADStudio\22.0\EhLib\Src\EhLibRtl.dproj" (Build target) (1) -> (_PasCoreCompile target) -> Rtl\EhLibUtils.pas(2076): error F2084: Internal Error: IRR928 [C:\RADStudio\22.0\EhLib\Src\EhLibRtl.dproj] 0 Warning(s) 1 Error(s) Time Elapsed 00:00:00.85 Press any key to continue . . . When compiling via IDE, no error occurs.
  10. Hello. The following code takes 0.1 seconds on my computer. In my opinion, this is too slow. procedure TFormSimpleDraw2.Button4Click(Sender: TObject); var ItfcVarValue: TValue; Itfc: IInterface; VarValue: Variant; Res: Boolean; begin Itfc := TInterfacedObject.Create; VarValue := Itfc; ItfcVarValue := TValue.From<Variant>(VarValue); var TimeSpan := TThread.GetTickCount64; Res := ItfcVarValue.IsType<String>; Memo1.Lines.Add(FloatToStr((TThread.GetTickCount64 - TimeSpan) / 1000) + ' sec; Result = ' + Res.ToString(TUseBoolStrs.True)); end; Result in Memo1 Memo1.Text = 0.109 sec; Result = False Most likely the reason is related to the occurrence of an internal exception which is then suppressed somewhere. ---- procedure TFormSimpleDraw2.Button5Click(Sender: TObject); var Res: Boolean; ItfcVarValue: TValue; begin ItfcVarValue := TValue.From<IInterface>(TInterfacedObject.Create); var TimeSpan := TThread.GetTickCount64; Res := ItfcVarValue.IsType<String>; Memo1.Lines.Add(FloatToStr((TThread.GetTickCount64 - TimeSpan) / 1000) + ' sec; Result = ' + Res.ToString(TUseBoolStrs.True)); end; Memo1.Text = 0 sec; Result = False
  11. Hi All What are the performance profilers for Delphi 12? Under Delphi 10.4 I use AQTime. But it looks like AQTime with Delphi 12 support hasn't been released yet.
  12. Hello How to check that TValue.Type is array of TValue function ValueIsValueArray(const V: TValue): Boolean; begin Result := V.TypeInfo = System.TypeInfo(array of TValue); //?? end;
  13. Since I only use dynamic arrays I used the following solution: function ValueIsArrayOfValues(const V: TValue): Boolean; begin Result := V.TypeInfo = TypeInfo(TArray<TValue>); end;
  14. I think like this: function ValueIsValueArray(const V: TValue): Boolean; begin Result := (V.TypeInfo <> nil) and (V.TypeInfo^.Kind in [tkArray, tkDynArray]); if Result then Result := (V.TypeData^.ArrayData.ElType = TypeInfo(TValue)); end;
  15. dmitrybv

    Good data grid for VCL and FMX

    EhLib 12.0 beta supports Fmx. It includes Fmx.TDataGridEh. https://forum.ehlib.com/en/viewtopic.php?f=4&amp;t=1291
  16. Good day. I have Embarcadero® RAD Studio 12 Version 29.0.53982.0329 Tell me how to work with the FMX.WebBrowser.TWebBrowser component correctly I drop TWebBrowser on the Form. The code is written procedure TMainForm.Button1Click(Sender: TObject); begin WebBrowser.Navigate('https://getbootstrap.com/docs/5.3/getting-started/introduction/'); end; and as a result I get the following picture: It looks like the browser is not processing the css and aside section of the page.
  17. Good day. I can't get Object Inspector to work correctly with a property of the Variant type. I have a published property CheckedValue of the Variant type in my object with the following implementation. When I try to set a new value for this property in Design-Time, I can't do it. In the Type drop-down list, the system doesn't let me select a new type. When I enter a new value in the CheckedValue field, the error 'Could not convert variant' keeps popping up. Embarcadero® RAD Studio 12 Version 29.0.53982.0329 { TTestComponent } TTestComponent = class(TComponent) private FCheckedValue: Variant; function GetCheckedValue: Variant; function IsCheckedValueStored: Boolean; procedure SetCheckedValue(const Value: Variant); procedure CheckedValueChanged(); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property CheckedValue: Variant read GetCheckedValue write SetCheckedValue stored IsCheckedValueStored; end; { TTestComponent } constructor TTestComponent.Create(AOwner: TComponent); begin inherited Create(AOwner); FCheckedValue := True; end; destructor TTestComponent.Destroy; begin inherited Destroy; end; function TTestComponent.GetCheckedValue: Variant; begin Result := FCheckedValue; end; procedure TTestComponent.SetCheckedValue(const Value: Variant); begin if VarSameValue(FCheckedValue, Value) = False then begin FCheckedValue := Value; CheckedValueChanged(); end; end; function TTestComponent.IsCheckedValueStored: Boolean; begin if VarSameValue(FCheckedValue, True) then Result := False else Result := True; end; procedure TTestComponent.CheckedValueChanged; begin end;
  18. Thanks for the detailed answer. I used the option: if VarType(FCheckedValue) = varString then FCheckedValue := VarToStr(Value); // <-- change the VarType to varUString Almost everything works except if you specify the Date type and enter the value 1111111111 then an error is displayed that does not allow you to close the window with the error and you have to kill the bds.exe process.
  19. Hello. Embarcadero® RAD Studio 12 Version 29.0.53982.0329 I have a Delphi package with components. And I use them to create Delphi projects without any problems. Now I need to use these components in a C++ Builder project. In the Project Options-Building-Delphi Compiler-Output – C/C++ package settings, I set the Generate all C++Builder files (including package libs) option. When compiling the package, *.hpp files were created based on the pas files of the package. Now I create a C++ Builder project, drop my components on the form and try to compile the project. As a result, I get the following errors: C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.Types.hpp(64,13): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here on line typedef Fmx::Controls::TControl TWinControl; I can't figure out what the error is. Visually, the code section contains the correct text. The FMX.Controls.hpp file contains nested namespaces namespace Fmx { namespace Controls { And the text Fmx::Controls::… is a valid reference to a type in the nested namespace namespace Fmx { namespace Controls { Project "C:\RADStudio\23.0\EhLib.12_0-Dev\Demos\Fmx\CPPBuilderApps\TestCPPBuilderApp\Project1.cbproj" (Build target(s)): Target MakeObjs: Target CppCompile: Target _CppCoreCompile: Target _CLANGCoreCompile: c:\radstudio\23.0\bin\bcc32c.exe -cc1 -D _DEBUG -D FRAMEWORK_FMX -D USEPACKAGES -output-dir .\Win32\Debug -I C:\RADStudio\23.0\EhLib.12_0-Dev\Demos\Fmx\CPPBuilderApps\TestCPPBuilderApp -I c:\radstudio\23.0\include\windows\fmx -I c:\radstudio\23.0\EhLib.12_0-Dev\Demos\Fmx\CPPBuilderApps\TestCPPBuilderApp -isystem c:\radstudio\23.0\include -isystem c:\radstudio\23.0\include\dinkumware64 -isystem c:\radstudio\23.0\include\windows\crtl -isystem c:\radstudio\23.0\include\windows\sdk -isystem c:\radstudio\23.0\include\windows\rtl -isystem c:\radstudio\23.0\include\windows\vcl -isystem c:\radstudio\23.0\include\windows\fmx -isystem C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32 -isystem C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32 -debug-info-kind=standalone -fcxx-exceptions -fborland-extensions -nobuiltininc -nostdsysteminc -triple i686-pc-windows-omf -emit-pch -mrelocation-model static -masm-verbose -ffunction-sections -fexceptions -fseh -mstack-alignment=16 -fno-spell-checking -fno-use-cxa-atexit -fno-threadsafe-statics -x c++ -std=c++17 -O0 -fmath-errno -tR -tM -tU -tW -o .\Win32\Debug\Project1PCH1.pch --auto-dependency-output Project1PCH1.h Target _CLANGCoreCompile: c:\radstudio\23.0\bin\bcc32c.exe -cc1 -D _DEBUG -D FRAMEWORK_FMX -D USEPACKAGES -output-dir .\Win32\Debug -I C:\RADStudio\23.0\EhLib.12_0-Dev\Demos\Fmx\CPPBuilderApps\TestCPPBuilderApp -I c:\radstudio\23.0\include\windows\fmx -I c:\radstudio\23.0\EhLib.12_0-Dev\Demos\Fmx\CPPBuilderApps\TestCPPBuilderApp -isystem c:\radstudio\23.0\include -isystem c:\radstudio\23.0\include\dinkumware64 -isystem c:\radstudio\23.0\include\windows\crtl -isystem c:\radstudio\23.0\include\windows\sdk -isystem c:\radstudio\23.0\include\windows\rtl -isystem c:\radstudio\23.0\include\windows\vcl -isystem c:\radstudio\23.0\include\windows\fmx -isystem C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32 -isystem C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32 -debug-info-kind=standalone -fcxx-exceptions -fborland-extensions -nobuiltininc -nostdsysteminc -triple i686-pc-windows-omf -emit-obj -mrelocation-model static -masm-verbose -ffunction-sections -fexceptions -fseh -mstack-alignment=16 -fno-spell-checking -fno-use-cxa-atexit -fno-threadsafe-statics -main-file-name Project1.cpp -x c++ -std=c++17 -O0 -fmath-errno -tR -tM -tU -tW -o .\Win32\Debug\Project1.obj --auto-dependency-output -MT .\Win32\Debug\Project1.obj -include-pch .\Win32\Debug\Project1PCH1.pch Project1.cpp Target _CLANGCoreCompile: c:\radstudio\23.0\bin\bcc32c.exe -cc1 -D _DEBUG -D FRAMEWORK_FMX -D USEPACKAGES -output-dir .\Win32\Debug -I C:\RADStudio\23.0\EhLib.12_0-Dev\Demos\Fmx\CPPBuilderApps\TestCPPBuilderApp -I c:\radstudio\23.0\include\windows\fmx -I c:\radstudio\23.0\EhLib.12_0-Dev\Demos\Fmx\CPPBuilderApps\TestCPPBuilderApp -isystem c:\radstudio\23.0\include -isystem c:\radstudio\23.0\include\dinkumware64 -isystem c:\radstudio\23.0\include\windows\crtl -isystem c:\radstudio\23.0\include\windows\sdk -isystem c:\radstudio\23.0\include\windows\rtl -isystem c:\radstudio\23.0\include\windows\vcl -isystem c:\radstudio\23.0\include\windows\fmx -isystem C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32 -isystem C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32 -debug-info-kind=standalone -fcxx-exceptions -fborland-extensions -nobuiltininc -nostdsysteminc -triple i686-pc-windows-omf -emit-obj -mrelocation-model static -masm-verbose -ffunction-sections -fexceptions -fseh -mstack-alignment=16 -fno-spell-checking -fno-use-cxa-atexit -fno-threadsafe-statics -main-file-name Unit1.cpp -x c++ -std=c++17 -O0 -fmath-errno -tR -tM -tU -tW -o .\Win32\Debug\Unit1.obj --auto-dependency-output -MT .\Win32\Debug\Unit1.obj -include-pch .\Win32\Debug\Project1PCH1.pch Unit1.cpp C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.Types.hpp(64,13): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.GridAxisData.hpp(47,6): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.GridAxisData.hpp(102,33): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.Platform.hpp(68,59): error E4689: 'Forms' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Forms.hpp(48,10): error E6300: 'Forms' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(57,6): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(65,43): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(65,79): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(66,14): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(67,14): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(98,74): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(98,92): error E2595: expected expression C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(99,6): error E4689: 'Imglist' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.ImgList.hpp(36,10): error E6300: 'Imglist' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(101,6): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(102,6): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(103,6): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(104,6): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(105,6): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(106,6): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(107,6): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(108,6): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(109,6): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(156,17): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(157,17): error E4689: 'Imglist' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.ImgList.hpp(36,10): error E6300: 'Imglist' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(158,17): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(159,17): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(160,17): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(161,17): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(162,17): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(163,17): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ImageReses.hpp(164,17): error E4689: 'Multiresbitmap' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.MultiResBitmap.hpp(31,10): error E6300: 'Multiresbitmap' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(94,70): error E4689: 'Forms' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Forms.hpp(48,10): error E6300: 'Forms' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(98,44): error E5873: no type named 'TFmxObject' in namespace 'Ehlib::Fmx::Types' C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(107,38): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(107,83): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(109,45): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(109,130): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(121,6): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(124,6): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(125,49): error E5873: no type named '_di_IFreeNotification' in namespace 'Ehlib::Fmx::Types' C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(126,52): error E5873: no type named '_di_IFreeNotification' in namespace 'Ehlib::Fmx::Types' C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(131,17): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(138,15): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(152,49): error E4689: 'Forms' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Forms.hpp(48,10): error E6300: 'Forms' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(152,56): error E2587: expected class name C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(154,14): error E4689: 'Forms' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Forms.hpp(48,10): error E6300: 'Forms' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(157,13): error E5873: no type named 'TFmxObject' in namespace 'Ehlib::Fmx::Types' C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(158,54): error E5873: no type named 'TFmxObject' in namespace 'Ehlib::Fmx::Types' C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(159,49): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(160,36): error E4689: 'Forms' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Forms.hpp(48,10): error E6300: 'Forms' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(163,6): error E4689: 'Forms' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Forms.hpp(48,10): error E6300: 'Forms' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(164,38): error E4689: 'Graphics' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Graphics.hpp(34,10): error E6300: 'Graphics' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(170,24): error E5873: no type named 'TFmxObject' in namespace 'Ehlib::Fmx::Types' C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(171,17): error E4689: 'Forms' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Forms.hpp(48,10): error E6300: 'Forms' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(173,132): error E4689: 'Forms' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Forms.hpp(48,10): error E6300: 'Forms' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(173,139): error E4987: member initializer 'TForm' does not name a non-static data member or base class C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(184,6): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(187,27): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(188,17): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(208,6): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(212,84): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(216,17): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(218,62): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(238,133): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(257,6): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(261,74): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(263,17): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here C:\Users\Public\Documents\Embarcadero\Studio\23.0\hpp\Win32\EhLib.Fmx.ToolControls.hpp(275,52): error E4689: 'Controls' is not a class, namespace, or enumeration c:\radstudio\23.0\include\windows\fmx\FMX.Controls.Presentation.hpp(34,10): error E6300: 'Controls' declared here
  20. Is it possible to avoid such problems by simply naming pas modules "correctly"? So far I understand that you can't use the string ".Vcl." and ".Fmx." in module names. Are there any specific rules on how to correctly insert dots into package module names? After all, when creating the namespaces structure based on the pas module name, the developers of Delphi and C++ Builder modeled how developers of new packages would integrate into the current tree of nested namespaces.
  21. Hello. I suspect that the C++ compiler does not allow using Delphi units from Delphi packages that contain the text ‘.VCL’ when creating VCL projects. For example, my package contains the unit EhLib.VCL.pas I use this package and the EhLib.VCL module in Delphi projects without any problems. But when I try to use the EhLib.VCL package and module in C++ Builder, I get the following compilation error. [bcc32c Error] Vcl.Buttons.hpp(68): reference to 'Vcl' is ambiguous Vcl.Buttons.hpp(44): candidate found by name lookup is 'Vcl' EhLib.VCL.hpp(48): candidate found by name lookup is 'Ehlib::Vcl' I suspect that the statement using namespace Vcl::Buttons; using namespace Vcl; from the file Vcl.Buttons.hpp And the statement using namespace Ehlib::Vcl; using namespace Ehlib; from the file EhLib.VCL.hpp somehow conflict with each other. Do C++ Builder projects really have such limitations and how to bypass them?
  22. Hello I have a pas unit EhLibFmx.ToolControls.pas in my package which contains the following statement const { Scroll Bar Constants } SB_HORZ = 0; SB_VERT = 1; SB_CTL = 2; SB_BOTH = 3; When I try to compile a C++ project which uses this hpp file based on this unit, bcc32c gives a compilation error: [bcc32c Error] EhLibFmx.ToolControls.hpp(626): expected unqualified-id On the line static _DELPHI_CONST System::Int8 SB_HORZ = System::Int8(0x0); I can't figure out what the error is. And how to make the correction correctly. After all, hpp is generated automatically.
  23. dmitrybv

    [bcc32c Error] hpp: expected unqualified-id

    What about namespace The constants are declared inside namespace namespace Ehlibfmx { namespace Toolcontrols { static _DELPHI_CONST System::Int8 SB_HORZ = System::Int8(0x0); } } Doesn't this isolate them from interfering with external identifiers?
  24. Good day. How does the IDesigner.CreateComponent method work? function CreateComponent(ComponentClass: TComponentClass; Parent: TComponent; Left, Top, Width, Height: Integer): TComponent; How does CreateComponent call the correct method on the created component to pass the Parent parameter to it? If I created my component by inheriting TComponent and my component has a method procedure TMyComponent.SetParent(AParent: TMyParentComponent); then how can I pass to the IDesigner.CreateComponent function an indication that after creating my component it should call MyComponent.SetParent(Parent)?
×