Jump to content

dmitrybv

Members
  • Content Count

    96
  • Joined

  • Last visited

Community Reputation

7 Neutral

Technical Information

  • Delphi-Version
    Delphi 12 Athens

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hello, Does anyone have a rough idea of how the "Edit Default Style" popup menu works from the perspective of an FMX visual component developer? When I select this menu for standard FMX components, the editor opens and displays a class tree (most likely the component style class tree from a *.Style file) along with two images resembling the component's appearance. However, when I select this menu for my own component, an Access Violation occurs with the following call stack. It seems that my component is missing some code required for the "Edit Default Style" menu to function properly. At the same time, the stack trace does not show any calls to methods of my component. Does anyone know what code or interface needs to be implemented in a component to make this menu work correctly? fmx.FMX.Graphics.TCanvas.SetMatrix(((((3.30544895893689e-38, 1.23090828088814e-26, 3.2888612284953e-38), 3.30544895893689e-38, 1.23090828088814e-26, 3.2888612284953e-38), ((4.19567267213872e-14, 9.38856258186976e-27, 3.2888612284953e-38), 4.19567267213872e-14, 9.38856258186976e-27, 3.2888612284953e-38), ((2.80259692864963e-45, 4.63180185761303e-07, 9.85088360576387e-27), 2.80259692864963e-45, 4.63180185761303e-07, 9.85088360576387e-27)), 3.30544895893689e-38, 1.23090828088814e-26, 3.2888612284953e-38, 4.19567267213872e-14, 9.38856258186976e-27, 3.2888612284953e-38, 2.80259692864963e-45, 4.63180185761303e-07, 9.85088360576387e-27)) fmx.FMX.Controls.PaintAndClipChild fmx.FMX.Controls.TControl.PaintInternal fmx.FMX.Grid.Style.TStyledGrid.PMEndPaintChildren((4105)) fmx.FMX.Presentation.Messages.TMessageSender.SendMessage(???) fmx.FMX.ScrollBox.TCustomPresentedScrollBox.PaintChildren fmx.FMX.Controls.DoPaintInternal fmx.FMX.Controls.PaintAndClipChild fmx.FMX.Controls.TControl.PaintInternal fmx.FMX.Forms.TCustomForm.PaintRects(???) fmx.FMX.Platform.Win.WMPaint(12652088,15,0,0) fmx.FMX.Platform.Win.WndProc(12652088,15,0,0) :76d59b23 ; C:\WINDOWS\SysWOW64\user32.dll :76d47c9d ; C:\WINDOWS\SysWOW64\user32.dll :76d47740 ; C:\WINDOWS\SysWOW64\user32.dll :76d53fa9 ; C:\WINDOWS\SysWOW64\user32.dll :773eb646 ntdll.KiUserCallbackDispatcher + 0x36 :76d46c90 user32.DispatchMessageW + 0x10 vcl.Vcl.Forms.TApplication.ProcessMessage(???)
  2. We are glad to inform that a new version of EhLib software - EhLib.VclFmx 12.1 is available for download. In this version: + Added support for RAD Studio 13 + The EhLibFmx package has been updated with the Fmx.TDataVertGridEh and Fmx.TDataComboBoxEh components + A TDataGridComboboxColumnEh column has been added to Fmx.TDataGridEh in design-time + In Fmx.TDataGridStringColumnEh , highlighting of URL sections of text has been added + Support for formatting text sections has been added to the Fmx.TDataGridStringColumnEh.DataCellGetStyleParams event + In Fmx.TDataGridEh , the ability to display a single record without dividing into cells has been added + Added support for displaying the tree status area to Fmx.TDataGridEh Read detail information about new features of this version in a file "EhLib.VclFmx 12.1 Release Notes Eng.docx" in EhLib archive and the documentation: What's New in EhLib.VclFmx 12.1 _________________ Best regards EhLib Support Team www: http://www.ehlib.com E-mail: support@ehlib.com MS Teams support: ehlib.support
  3. If I place a breakpoint in the initialization section of the very first unit in my project, the debugger hangs when exiting the method procedure System.StartUpCopy.CopyStartUpFiles;
  4. I’m having trouble running my Delphi FMX application on Linux 64-bit (Ubuntu 22.04.4 LTS, FmxLinux 1.78). The application runs fine on Win32, Win64, Android-64, macOS-64. On Linux 64-bit, when I try to start it in debug mode, the IDE immediately stops execution without showing any error. PAServer doesn’t print anything either. A simple test app (just one form with a button) runs without issues on Linux. My real project has several dozen forms. When I run it in debug mode in Embarcadero RAD Studio 12 (Version 29.0.55362.2017), the debugger just stops with no messages. If I try “Run without debugging”, PAServer prints: Runtime error 217 at 00000000012AFEFC According to ChatGPT, this usually means the crash happens inside the initialization section of one of the units included in the project’s uses. 👉 My question: What’s the best way to identify which unit or initialization block is causing the crash on Linux, and how can I debug this further?
  5. In previous versions of Delphi, there was a Refactor → Rename menu for renaming types, fields, and properties across the entire project. In Delphi 13, this menu seems to be missing. I tried using MMX Code Explorer, but I couldn't find an equivalent. MMX offers Rename in Scope, but it only works at the unit level and does not rename the identifier throughout the entire project. Are there any alternatives or tools in Delphi 13 that provide full-project renaming functionality similar to the old Refactor → Rename?
  6. This issue is easily reproducible, was reported back in 2023 and has a high priority (Priority: Major), although it is still not resolved. This is strange.
  7. Hi, Embarcadero® RAD Studio 12 Version 29.0.55362.2017 I noticed a strange behavior in RAD Studio 12.3 (FireMonkey Application): Whenever I open my custom FMX Frame in the IDE designer, it is immediately marked as modified. The IDE then asks me to save changes when I close the frame, even though: the frame is completely empty (no components, no property changes), no changes were made manually, saving does not actually alter the .fmx or .pas files (their timestamps remain the same). The issue only happens with Frames. With regular Forms, this does not occur. I cannot understand whether this is an intended feature of the IDE (some hidden metadata handling) or a bug. Has anyone else noticed the same behavior?
  8. dmitrybv

    What is the equivalent of Vcl.TDBLookupComboBox in FMX?

    You may be wrong. There is no native control like TDBLookupComboBox in Windows OS. That is why Owner-drawn Control – TDBLookupComboBox is written in VCL.
  9. Hello everybody. What is the equivalent of Vcl.TDBLookupComboBox in FMX?
  10. Product and Version: Embarcadero® RAD Studio 12 — Version 29.0.55362.2017 Installed from: RADStudio_123_2017_E9E8FB1D4F9F.iso (7,256 MB) Platform: Android 64-bit Issue Description: When attempting to compile a runtime package for the Android 64-bit platform in Delphi 12, I receive the following warning: Would you like to update the platform SDK now? Regardless of whether I choose Yes or No, the build immediately fails with the error: [Error] Failed In Tools → Options → Deployment → SDK Manager → Android 64-bit, several fields (e.g., SDK paths or tools) are marked with exclamation marks (!), although I did not encounter any errors during installation. File sizes of installed Android SDK components: CatalogRepository\AndroidSDK-2525-23.0.55362.2017 — 159 MB CatalogRepository\AndroidSDK-NDK-23.0.55362.2017 — 981 KB The SDK and NDK appear to be partially installed or missing components, but no installation errors were reported. Questions: What is the reason for the exclamation marks in the SDK Manager? Why does the build fail with [Error] Failed after the SDK update prompt? How can I fully verify and repair the Android 64-bit platform SDK installation? What I’ve tried: Clicking Yes or No on the SDK update prompt makes no difference — the build still fails. I haven’t manually modified the SDK folders. The SDK was installed by the ISO installer without any visible issues. Any guidance on resolving this issue would be appreciated.
  11. I tested RAD Studio 12.1 Community Edition. For this edition, the "Detail" properties of the bds.exe contain the value “Personal”. I don’t know what the value Personal means and whether it is related to the concept of Edition at all.
  12. Yes, in a real application I use the registry branch Computer\HKEY_CURRENT_USER\Software\Embarcadero\BDS\23.0 to get the value for the App parameter that stores the path to bds.exe I try to keep the demo code to a minimum so that it is clear what problem I am discussing here.
  13. It seems that the solution with "bds.exe /ProductInfo:SKU" is suitable, but it does not work in the classic function of outputting the results of the StdOutput work via CreatePipe. Can you tell me how to correctly redirect the results passed to StdOutput to TMemo? I am trying to use the following code, but TMemo remains empty. At the same time, if you create a BdsGetSKU.Cmd file with the text C:\RADStudio\23.0\bin\bds.exe /ProductInfo:SKU and run it in cmd, the text "Enterprise" is output in cmd. procedure RunConsoleAppAndCaptureOutput(const ACommandLine, AWorkingDir: string; AMemo: TMemo); var SecurityAttr: TSecurityAttributes; ReadPipe, WritePipe: THandle; StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; Buffer: array[0..255] of AnsiChar; BytesRead: DWORD; AppRunning: DWORD; Output: TStringStream; CommandLineMutable: array[0..1023] of Char; begin AMemo.Clear; SecurityAttr.nLength := SizeOf(TSecurityAttributes); SecurityAttr.bInheritHandle := True; SecurityAttr.lpSecurityDescriptor := nil; if not CreatePipe(ReadPipe, WritePipe, @SecurityAttr, 0) then begin AMemo.Lines.Add('Failed to create channel.'); Exit; end; FillChar(StartupInfo, SizeOf(StartupInfo), 0); StartupInfo.cb := SizeOf(StartupInfo); StartupInfo.hStdOutput := WritePipe; StartupInfo.hStdError := WritePipe; StartupInfo.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW; StartupInfo.wShowWindow := SW_HIDE; StrPLCopy(CommandLineMutable, ACommandLine, Length(ACommandLine) + 1); if not CreateProcess( nil, CommandLineMutable, nil, nil, True, 0, nil, PChar(AWorkingDir), // <- working directory StartupInfo, ProcessInfo ) then begin AMemo.Lines.Add('Failed to start process.'); CloseHandle(ReadPipe); CloseHandle(WritePipe); Exit; end; CloseHandle(WritePipe); Output := TStringStream.Create; try repeat BytesRead := 0; if ReadFile(ReadPipe, Buffer, SizeOf(Buffer) - 1, BytesRead, nil) and (BytesRead > 0) then begin Buffer[BytesRead] := #0; Output.WriteString(String(AnsiString(Buffer))); end; GetExitCodeProcess(ProcessInfo.hProcess, AppRunning); until AppRunning <> STILL_ACTIVE; // Read the rest while ReadFile(ReadPipe, Buffer, SizeOf(Buffer) - 1, BytesRead, nil) and (BytesRead > 0) do begin Buffer[BytesRead] := #0; Output.WriteString(String(AnsiString(Buffer))); end; AMemo.Lines.Text := Output.DataString; finally Output.Free; CloseHandle(ReadPipe); CloseHandle(ProcessInfo.hProcess); CloseHandle(ProcessInfo.hThread); end; end; procedure TForm1.Button1Click(Sender: TObject); begin // RunConsoleAppAndCaptureOutput(Edit1.Text, 'C:\RADStudio\23.0\bin', Memo1); // RunConsoleAppAndCaptureOutput('cmd /c dir', 'C:\Windows', Memo1); RunConsoleAppAndCaptureOutput('C:\RADStudio\23.0\bin\bds.exe /ProductInfo:SKU', 'C:\RADStudio\23.0\bin', Memo1); // RunConsoleAppAndCaptureOutput('C:\RADStudio\23.0\Projects\CommandLineInterpreter\BdsGetSKU.Cmd /ProductInfo:SKU', 'C:\RADStudio\23.0\bin', Memo1); end;
  14. dcc32.exe does not generate any error. You can understand that something went wrong only at the end of the installation, when bpl packages are registered in the registry for IDE. dcc32.exe does not create bpl packages and then it is already clear. But I want to give the user information about the impossibility of installation before the installation process begins.
  15. dcc32.exe is present in RAD Studio 12.3 Community Edition. It runs without errors. After running dcc32.exe %ERRORLEVEL% = 0.
×