Jump to content

Ondrej Kelle

Members
  • Content Count

    83
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by Ondrej Kelle

  1. Ondrej Kelle

    ForEach runs only one "thread" at time

    `ProcessMessages` is never called...
  2. Ondrej Kelle

    Calling Async from a thread causes an exception

    I'm guessing your Form1 doesn't have a window handle yet in its OnCreate event. Try calling HandleNeeded before creating the thread, or move your code to OnShow or somewhere else where the form already has been initialized including the window handle.
  3. Hi, perhaps this helps: A long time ago, I've solved a similar problem differently. I split the setup into two processes: 1. client with UI and 2. elevated server with no UI. I used some modified old-style DataSnap code for inter-process communication which was easy at the time but that's just an implementation detail. https://tondrej.blogspot.com/2007/06/datasnap-to-rescue.html
  4. According to the documentation, it should:
  5. Ondrej Kelle

    Auto Readonly mode for files on search path

    A long time ago I wrote one for files in the $(DELPHI)\Source directory: https://cc.embarcadero.com/Item/18989 It could be adjusted to work for any files on the library search path.
  6. Ondrej Kelle

    Format uses clause

    (I apologise if I'm missing the context here.) Automatically and unconditionally sorting units alphabetically doesn't seem to be a good idea. If you have multiple units exposing the same identifier then changing the order of units in the uses clause changes how they are resolved, probably leading to unintended changes to runtime behaviour of your code.
  7. git svn rebase is what I usually do.
  8. Ondrej Kelle

    Build / Output messages filtering plugin

    Hi. Sorry, I haven't used it for years now and I have no idea.
  9. Ondrej Kelle

    FB-3,09 Recursive CTE

    Without UNION ALL referencing itself, it's just a non-recursive CTE.
  10. Ondrej Kelle

    FB-3,09 Recursive CTE

    Your CTE is in fact not recursive as it doesn't reference itself or use UNION ALL. Generalized syntax for a recursive CTE looks like this: WITH RECURSIVE <cte_alias> AS ( SELECT <parent data> -- root node’s data UNION ALL SELECT <child data> -- children’s data JOIN <cte_alias> ON <parent_link> ) -- DO // for the Delphians SELECT * FROM <cte_alias> Source: https://www.firebirdsql.org/file/community/ppts/fbcon11/FBTrees2011.pdf
  11. Ondrej Kelle

    Replace default code template?

    https://www.delphipower.xyz/guide_7/adding_new_application_templates.html Alternatively, you could write a design-time IDE extension implementing IOTAProjectCreator interface.
  12. Ondrej Kelle

    Build / Output messages filtering plugin

    From the comment about TLine from coreide60.bpl, it might have been Delphi 6. Sorry if it's no longer applicable.
  13. Ondrej Kelle

    Build / Output messages filtering plugin

    Years ago I wrote the "JEDI Uses Wizard" which scanned compiler messages to "catch" unresolved symbol errors and offer adding appropriate units to the uses clause. With no official OpenTools API available, it had to use a hack to retrieve the compiler output from the message window's treeview. The code is very old and perhaps a bit dangerous (although back then it seemed stable) and I have no idea if it still works today (the IDE internals might have changed). See if it helps you: https://github.com/project-jedi/jcl/blob/master/jcl/experts/useswizard/JCLUsesWizard.pas
  14. There's an option of running WebAssembly via ChakraCore. I've blogged about it here: WebAssembly with Delphi and ChakraCore. There's source code for Delphi 7 or higher and Free Pascal 3.0.4 or higher. It should be possible to use V8 or SpiderMonkey in a similar way. I haven't tried this. I also know of some WebAssembly runtimes like wasmtime and wasmer (these two are both written in Rust) but unfortunately their C-style API is still incomplete (even the API spec itself is still work in progress)...
  15. Ondrej Kelle

    git and Delphi tooling?

    I've found this way: In the Explorer view, open your working copy file In the File History view, right-click on the first commit in your range, select "Select for Compare". Still in the File History view, right-click on the last commit in your range, select "Compare with Selected"
  16. Ondrej Kelle

    git and Delphi tooling?

    Recently, I also find GitLens extension for VS Code quite useful.
  17. Ondrej Kelle

    git and Delphi tooling?

    I find TortoiseGit useful. It's a Windows Explorer extension, similar to TortoiseSVN which you might know already.
  18. The new experimental/variants branch of chakracore-delphi introduces some experimental support for Variants... Read more on my blog
  19. Ondrej Kelle

    Variant support in chakracore-delphi

    Also, it already has Delphi and Free Pascal bindings: https://github.com/Coldzer0/QuickJS-Pascal
  20. Ondrej Kelle

    Variant support in chakracore-delphi

    It's interesting. Thank you!
  21. Ondrej Kelle

    Variant support in chakracore-delphi

    Thanks! You can read about their future plans here on the GitHub repo: Version 1.12 plan Overall plan I think the current ChakraCore is still very nice if you need a high-performance scripting engine with JIT and GC embedded in your desktop application (with support for Windows, MacOS and Linux) and if ES6/partial ES2017 language support is sufficient for you: here are the compatibility tables . It depends on whether you need to support the evolving ES standards and if the opensource community can provide new features. Also, security fixes - IIRC, Microsoft plan to provide them until March 2021.
  22. Ondrej Kelle

    Delphi AES encryption/decryption

    Also, CryptoLib4Pascal (MIT license)
  23. Ondrej Kelle

    Looking for Icon Fonts support in Delphi for High-DPI and Themed app?

    If you wanted to avoid the requirement of having the fonts installed globally in Windows you could write a design package with the fonts linked in as resources. The package, when loaded by the IDE, could load the fonts from the resources (using the code shown by @Attila Kovacs) and call Screen.ResetFonts to signal the IDE to reinitialize its font list . After that the fonts would be available to the IDE.
  24. Great news from Dalija Prasnikar! Thank you! https://dalijap.blogspot.com/2020/03/unified-memory-management-coming-with.html
  25. Ondrej Kelle

    Setting a "nullable" property on a .NET object

    The problem, I think, is that .NET's Nullable is a generic type and as such can't be exposed to COM.
×