

dmitrybv
Members-
Content Count
74 -
Joined
-
Last visited
Everything posted by dmitrybv
-
Android. TDirectory.GetFiles('/storage/emulated/0/DCIM/Camera') returns an empty list
dmitrybv posted a topic in Cross-platform
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. -
Android. TDirectory.GetFiles('/storage/emulated/0/DCIM/Camera') returns an empty list
dmitrybv replied to dmitrybv's topic in Cross-platform
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? -
Android. TDirectory.GetFiles('/storage/emulated/0/DCIM/Camera') returns an empty list
dmitrybv replied to dmitrybv's topic in Cross-platform
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. -
Android. TDirectory.GetFiles('/storage/emulated/0/DCIM/Camera') returns an empty list
dmitrybv replied to dmitrybv's topic in Cross-platform
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. -
Class alias for class helper doesn't make class helper visible for compiler.
dmitrybv posted a topic in RTL and Delphi Object Pascal
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. -
Is it possible to declare an identical type for a generic class?
dmitrybv posted a topic in RTL and Delphi Object Pascal
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>; -
Is it possible to declare an identical type for a generic class?
dmitrybv replied to dmitrybv's topic in RTL and Delphi Object Pascal
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. -
GExperts now fixes yet another annoyance in the Delphi IDE: Desktops
dmitrybv replied to dummzeuch's topic in GExperts
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. -
C:\RADStudio\22.0\bin\dcc64.exe, error F2084: Internal Error: IRR928
dmitrybv posted a topic in Delphi IDE and APIs
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. -
TValue.IsType<String> for Variant(Interface) is very slow.
dmitrybv posted a topic in RTL and Delphi Object Pascal
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 -
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.
-
How to check that TValue.Type is array of TValue
dmitrybv posted a topic in RTL and Delphi Object Pascal
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; -
How to check that TValue.Type is array of TValue
dmitrybv replied to dmitrybv's topic in RTL and Delphi Object Pascal
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; -
How to check that TValue.Type is array of TValue
dmitrybv replied to dmitrybv's topic in RTL and Delphi Object Pascal
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; -
EhLib 12.0 beta supports Fmx. It includes Fmx.TDataGridEh. https://forum.ehlib.com/en/viewtopic.php?f=4&t=1291
-
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.
-
How to work with published properties of the Variant type correctly.
dmitrybv posted a topic in Delphi IDE and APIs
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; -
How to work with published properties of the Variant type correctly.
dmitrybv replied to dmitrybv's topic in Delphi IDE and APIs
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. -
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
-
How to properly configure Delphi packages so that components from these packages can be used in C++ Builder projects.
dmitrybv replied to dmitrybv's topic in General Help
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. -
The C++ Project does not allow the use of Delphi units that contain the text '.VCL' in their name.
dmitrybv posted a topic in General Help
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? -
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.
-
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?
-
How to properly configure Delphi packages so that components from these packages can be used in C++ Builder projects.
dmitrybv replied to dmitrybv's topic in General Help
Yes, it have. Yes, it have. -
How does the IDesigner.CreateComponent method work?
dmitrybv posted a topic in RTL and Delphi Object Pascal
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)?