Jump to content

Der schöne Günther

Members
  • Content Count

    654
  • Joined

  • Last visited

  • Days Won

    12

Everything posted by Der schöne Günther

  1. Der schöne Günther

    TWebBrowser Edge Engine Unavailable

    I don't want to be a dick, but entering "CEF4Delphi" into the search box 🔍 in the upper right corner might reveal the answer
  2. Der schöne Günther

    Windows Arm is still not ready. It is still in the cook.

    But I still don't get it - What exactly is Microsoft allegedly still waiting for? Windows on ARM has been a thing for several years now, and all major Microsoft software (I might be wrong) has been available natively for ARM for quite some time now. Granted, Apples Rosetta emulation is superior to how Windows emulates x64 code on ARM, but this is what we have now. What else would one now expect from Microsoft? From my point of view, their job is more or less done.
  3. Der schöne Günther

    Windows Arm is still not ready. It is still in the cook.

    I struggle to understand what message this article is really trying to bring across.
  4. Der schöne Günther

    TWebBrowser Edge Engine Unavailable

    WebView2 is not available for Linux Linux support · Issue #645 · MicrosoftEdge/WebView2Feedback (github.com)
  5. Der schöne Günther

    TWebBrowser Edge Engine Unavailable

    What have you done, besides installing the runtime? Did you place the WebView2Loader.dll in your application folder?
  6. Der schöne Günther

    Delphi 11.3 : FORSAKEN

    That's true for wonky edge cases, but I believe it is not the end customers job to write unit tests, especially when brand new features (which were used to justify a major version bump) struggle to get the basics done (LLVM-based compiler in C++ Builder, Delphi's LSP-based code completion, ...)
  7. Der schöne Günther

    Delphi 11.3 : FORSAKEN

    Us neither. But we still consider it to be a very capable tool for prototyping and drafts, and still to be less painful to use than to rewrite a product that goes back almost 25 years while still supporting and extending the legacy application at the same time. I believe that clinging to the legacy market is completely legit. Of course, I'd like to have an IDE that is a flexible and snappy as VS Code, a Delphi language which is as cool as Rust, and a form designer that does not suck balls. But I've come to peace that Delphi is, for us, the correct choice for maintaining the older projects, while using it for completely new projects would most probably be a mistake.
  8. Der schöne Günther

    Delphi 11.3 : FORSAKEN

    To be honest, I don't think any of this is new - It's been like this for several years now. I've just come to accept it. Over the last years, the IDE has gotten better, but just cannot compete with others , it's in a league of its own. For example, Visual Studio 2017 got its last bugfix in August 2023. Now imagine Delphi 10.2 still getting fixes...
  9. Can't you just step into System.InitUnits() or put a breakpoint there?
  10. Der schöne Günther

    Turning off updates in Windows 10 laptop

    I can only say that we have shipped a four-digit number of systems with Windows Professional during the last years which have to run constantly 24/7. With "Automatic Updates" set to "Disabled", they might still be using Windows Update to update Windows Defender signatures, but they surely do not install major OS updates that require a reboot.
  11. Der schöne Günther

    Turning off updates in Windows 10 laptop

    If it's Windows Professional, then you can just disable automatic updates through local group policies (run gpedit.msc). It works absolutely fine, it's just that there is no GUI for setting this with the regular windows control panel anymore.
  12. Der schöne Günther

    Where does Delphi store the list of command line parameters?

    HKEY_USERS contains a bunch of "S-IDs" which stands for the user accounts on your machine. HKEY_CURRENT_USER is nothing more than a shortcut/alias to HKEY_USERS\[your S-ID]. This probably means that you are running Delphi not as the current user you used to open "regedit" with, but as another user.
  13. Der schöne Günther

    TEdgeBrowser - how to fix a blank display

    Good catch, that would have taken me hours as well. For the sake of completion, here is the official documentation on the matter: Threading model for WebView2 apps - Microsoft Edge Development | Microsoft Learn
  14. Der schöne Günther

    Win32, Win64, WinRT and now... WinARM ?????

    Not true at all. This was the case around 10 years ago with Windows RT. Yes, there is software that might not run out of the box (like apps based on OpenGL or DirectX), but for "regular users", most software runs without users even realizing it is being emulated.
  15. Der schöne Günther

    Strange problem skipping loop with tTask

    Can confirm with Delphi Alexandria 11.1: The program is executed correctly, but the stepping through it with F8 inside the debugger jumps around: It goes like this: Begin SetLength End of method Back to for loop End of method back to the foor loop end of method done I suppose it's some weird kind of compiler optimization or the debugger just setting the breakpoints in the wrong places.
  16. Der schöne Günther

    TFrames in pallete

    I learned that the IDE will also get confused when you have two or more projects in a group (call them "A" and "B") and when you have a frame "TMyFrame" in both project "A" and "B". It will sometimes show A.MyFrame in project B and vice-versa, depending on which frame was opened first.
  17. Der schöne Günther

    Store a large number of images in the filesystem or in a DB?

    I don't have at hand how you had to set up the TFDConnection (and possibly the Sqlite bridge) with the FireDAC components, but here's a starting point: How To Corrupt An SQLite Database File from Sqlite.org itself. Also, see https://docwiki.embarcadero.com/RADStudio/en/Using_SQLite_with_FireDAC, it's surprisingly helpful:
  18. Der schöne Günther

    Store a large number of images in the filesystem or in a DB?

    If you have no trouble identifying every item by filename alone, I'd personally go with the raw filesystem. Reason is that you can easily purge older files, add or remove content without going through your application which eventually have to be updated. Not sure about the type of app you're building, but sticking with raw files has often helped me so that a technician on site was easily able to "remove all garbage data from scanner 2 between 13:00 and 13:15" without me adding something like this to the application or editing a big database file. Also you can easily corrupt your sqlite database file with sudden power losses and stuff like this. If you set it up correctly then it doesn't happen, but I think the default settings of FireDAC have the journalling behaviour set up so that it is not robust against power losses. It's a mistake I have unfortunately made more than once. I think NTFS (or at least, Windows Explorer) starts having trouble after around 10.000 files in the same directory. You should definitely have some subfolders that also allow you to group/sort things easier. Like a folder for every new day or something like this.
  19. Yes, I have read that comment, but I am not much wiser. I have honestly never bothered with this, and now I wonder if I should have. The core of the motivation is "Refactor the code, so the compiler trips over its own feet less"? What is "DCU cache stability" Marco mentions? Is it that Delphi often does not register source files updating (for example, by switching version control branches) and then tries to link outdated DCU files in?
  20. Can you elaborate on the motivation? Why should one care about unit interdependency? To speed up compilation?
  21. Der schöne Günther

    App persistence and restoring state

    Thank you, that clarifies it. I don't think this is intended behaviour and probably a bug.
  22. Der schöne Günther

    App persistence and restoring state

    Well, have you tried just having an empty implementation of TMainForm.FormSaveState(..)? I have not tried, but I would assume that when OnSaveSave gets called, you app has already been sent to the background and is about to be suspended within the next few milliseconds. Instead of actually saving something, your code example is now stuck on waiting for a confirmation for a non-visible dialogue. I would assume that the operating system either discards your handler or maybe entirely termiates your app because it appears stuck.
  23. Der schöne Günther

    App persistence and restoring state

    That does not sound like intended behaviour. Does that also happen if your implementation of the OnSaveState event is completely empty?
  24. Der schöne Günther

    Createprocess won't die

    Change your CommandLine:= 'c:\windows\system32\cmd.exe /c ping -t 127.0.0.1'; to CommandLine:= 'ping -t 127.0.0.1'; and your ping.exe will properly be terminated. Right now, you are killing cmd.exe which, in turn launched another ping.exe. Of course ping.exe will still be around after cmd.exe got killed. Also, TerminateProcess(..) should always be a matter of last resort. Properly terminating the ping -t command is, as you've found out, sending a [ctrl] + [c] event. You can do that from your own app: GenerateConsoleCtrlEvent function - Windows Console | Microsoft Learn
  25. Der schöne Günther

    Cecking Application Execution

    Do you have control over Exe-2 or is it by somebody else? If it is, can you be sure that the behaviour of Exe-2 might be changing in the future?
×