Jump to content

John R.

Members
  • Content Count

    68
  • Joined

  • Last visited

Posts posted by John R.


  1. 13 hours ago, RaelB said:

    So far I have been using the Azure Trusted Signing and it has met my needs. It works with the free Entra ID tier, so it is $9.99/month.

    Unfortunately: "At this time Trusted Signing is only available to organizations based in the USA and Canada that have a verifiable history of three years or more". See: https://learn.microsoft.com/en-us/azure/trusted-signing/quickstart

    I've read somewhere that it was abused by malware authors and therefore Microsoft put this restriction in place to limit the problem 😒

    • Sad 1

  2. Finally, LSP is working and I can work again! In case it helps anyone, here are a few random remarks about this behavior:

    • I have 4 projects in the project group and the error insight was completely non-functional only on one of those projects, the biggest one
    • Oddly enough, when the broken project was open, if I open a unit from another project, it works for that unit but not for any units included in the broken project 🤯
    • My VM has plenty of memory and cores, the LSP never crashed while it wasn't working and I could see multiple instances of it in process explorer
    • I tried with LSP on VS Code and obviously the same problem occurred, which is at least a coherent behavior
    • I believe that the number of sources available in library path was the problem. What fixed it for me:
      • Update to latest Spring4D 2 and used DCUs instead of sources
      • Removed sources from DevExpress and used DCUs only

  3. I've just migrated from Delphi 12.0 (due to some internal exceptions and problems) to 12.2 with patch 2 and I'm baffled by its error insight, code completion and ctrl+click not working most of the time for my projects.

    I'm loosing so much time opening other units which are right next to the current one to see the definition of an object's method that I'm wondering if I shouldn't have stayed with the old 12.0. Restarting the LSP doesn't work either.

    Is it a bad installation on my part or a known problem ?

    I'm still waiting for components vendors to officially support 12.3 but I'm wondering if it is event better than 12.2 at this point. Any feedback from users who updated ?

    Having worked with many other fantastic IDEs (VSCode, VS, PhpStorm or Rider to name a few), I'm really worried that this is taking so much time for Delphi's IDE to have these basic code editor features working most of the time.

     

    PS: I know that Marco Cantu mentioned that the LSP will be reworked in the future, and that VS code could be used as an alternative but none of those really help me at the moment.


  4. 11 hours ago, Mark NZ said:

    Was hoping things would improve, luckily VSCode is more productive and usable with our code bases, unfortunately still need to use IDE for forms editing and for debugging as haven't got lldb debugging of Delphi code working yet.

    I was considering using VSCode too and was wondering if you could tell more about the extensions that you use and your workflow ?


  5. OT: I know that they shouldn't be compared but when I see the kind of efforts done to optimize many aspects of .NET versions after versions, giving it a very positive image to many (younger and older) developers, I can't see how Delphi could survive once most of us retire if it doesn't bring "sexy" optimizations and promote them.

    I don't say that this particular one should be implemented but would it be that costly for EMB to hire a full-time developer whose sole task would be to improve performances here and there, and actually blog about it, instead of hiding everything until release for whatever reason ? I believe that this could create a lot of positive feedback and could attract developers intrigued by this "new" Delphi language that they've never heard about 😉

    • Like 1
    • Sad 1

  6. I was mentioning another tool to make sure that the problem is actually in your Delphi app, not in your SQLite DB. As an example, a SQLite trigger could cause such problems. But if you've already eliminated that possibility (which was not clear from your original message), then the problem is clearly in your Delphi code somewhere.


  7. 9 minutes ago, Rollo62 said:

    I'm not on Azure subscription, but according to this article I can see 9.99USD / month.
    https://melatonin.dev/blog/code-signing-on-windows-with-azure-trusted-signing/

     

    That would be not completely bad, since also Apples developer fee is 99 USD / year, so its playing in the same league,

    Or did I miss any other "Azure fees" adding up costs here?

    Looks like the price is right: https://azure.microsoft.com/en-us/pricing/details/trusted-signing/

    Last time I purchased a code signing certificate via KSoftware I paid $188.10 for 3 years which makes it $5.225 / month. Next time I need to renew, I'll probably get the Azure one, which, even at double that price, have the advantages of not needing a USB dongle while being managed by Microsoft itself. So, far more trustworthy than the outdated websites and processes I had to endure in the past.


  8. Fantastic work! Thank you for your contributions.

    If I may, while this component is very powerful, I find that a serious limitation is the number of languages that it supports and the difficulty to add new languages. Many common languages are missing (such as Powershell, Rust, TypeScript, Go...) and creating highlighters is complicated.

    @pyscripter as you know the internals better than anyone, would it be possible to imagine a way to import highlighters from other projects such as highlight.js: https://github.com/highlightjs/highlight.js/blob/main/src/languages/powershell.js ?

    Or would it be better to imagine a simpler way to define highlighters ?


  9. I sometimes need to use the "Tag" property to store a string, and I've noticed that the number of instances and changes are minimal so I could store them in memory during the application lifetime. That's why I've opted with a global singleton which:

    1. Returns a string object when asked, and keeps the instance in memory while the application is running
    2. Releases every instances once the application is closed

    Even if this is not an optimal solution, this is the "cleanest" way I could think of at the time. Something like:

     

    uses Spring.Collections;
    
    // ...
    
    type TStrObj = class(TObject)
      private
        FValue: string;
      public
        constructor Create(const aValue: string = '');
        property Value: string read FValue write FValue;
      end;
      
    type FStrObjects: IList<TStrObj>;
    
    // ...
    
    constructor TSomeSingleton.Create();
    begin
      FStrObjects := TCollections.CreateObjectList<THndStrObj>(True);
    end;
    
    function TSomeSingleton.GetStringObject(const aValue: string): TStrObj;
    begin
      // Create the object
      Result := TStrObj.Create(aValue);
      // Add it to the list
      FStrObjects.Add(Result);
    end;
    
    // ...
    
    // Usage:
    SomeComponent.Tag := NativeInt(Pointer(TSomeSingleton.GetStringObject('Some String Value')));

     


  10. 18 minutes ago, Uwe Raabe said:

    I am happily taking that task for you. Can you just list the installed packages accountable for that number of standard actions? I'm not sure if I was able to identify all of them.

    You had to make me open it again, thanks 😉

    As far as I can tell, this would be: DevExpress, ImageEn, TRichView, SynEdit.

    See screenshot:

    standard-actions.thumb.png.c24b00665ac9768a89cd862a2576b01f.png


  11. I "hope" that I have a world record with a fantastic 2 minutes and 51 seconds to show the standard action list (for your sanity, you can fast forward most of the video): https://we.tl/t-iC5uIavpK7

    This was done without a safety net using Delphi 12 patch 1 in a VM with plenty of memory, disk space and processing power. Can someone beat me ? 😎

    Embarcadero employees and/or Delphi enthusiasts are free to use that video, should they care to file a report. I've already spent way too much time on this to even bother looking for, registering to, and learning how to properly use the latest usable web site to report this problem.

    Meanwhile, I sincerely hope that I've added all the standard actions that I need in my app to avoid opening this dialog again 🤞

    • Thanks 1

  12. I'm wondering if there is some workaround to this problem I frequently have. My test project's DPR looks like this:

     

    program tests;

    {$IFNDEF TESTINSIGHT}
      {$APPTYPE CONSOLE}
    {$ENDIF}

    {$STRONGLINKTYPES ON}

    uses
      System.SysUtils,
      {$IFDEF TESTINSIGHT}
      TestInsight.DUnitX,
      {$ELSE}
      DUnitX.Loggers.Console,
      DUnitX.Loggers.XML.NUnit,  // <-- This line is removed from time to time by Delphi IDE
      {$ENDIF }
      DUnitX.TestFramework,

      // [...]

     

    But every time I add a new unit to that project and save it, the Delphi IDE decides to remove this line, and only this one: DUnitX.Loggers.XML.NUnit

     

    Is that a known problem ? Is there some workaround ?

     

    I'm using Delphi 12 Patch 1 with TestInsight 1.2.0.6


  13. Indeed, I own a certificate and nothing is prohibiting me from adding a virus / spyware /adware or anything harmful whenever I want.

     

    You mentioned the sponsored version of FileZilla which seems to include some questionable content: some anti-viruses seem to treat it as harmful, while others seem to report it as Adware. It doesn't matter if it has been signed or not.

     

    Regarding to the importance of a code signing certificate, it depends how you plan to distribute your application and your target audience: Windows will try to discourage people from installing applications which are not signed, and some people such as myself, will hardly if not ever (without extra precautions such as VMs) run any non-signed EXE software.

     

    You have access to plenty of documentation about the benefits of code signing online: https://www.digicert.com/signing/code-signing-certificates

     

    Your choice!

    • Like 1

  14. Alternatively, your UI seems to be very similar to a table/grid layout so you could potentially use a grid component with support to input fields such as combo boxes. Those grids are usually highly optimized to handle thousands of rows with various data types and input options. They usually allow the dynamic instantiation of input controls (such as combo boxes) when a row is actually being edited to save resources.

    I highly recommend DevExpress' ExpressQuantumGrid: https://docs.devexpress.com/VCL/171093/ExpressQuantumGrid/vcl-data-grid

    Or their ExpressVerticalGrid: https://docs.devexpress.com/VCL/403720/ExpressVerticalGrid/concepts/vcl-vertical-grid

    Both of which I extensively use for this kind of tasks.

    • Like 2

  15. 19 hours ago, Anders Melander said:

    The script language is easy but integrating DWScript into an application is hard; There is zero documentation and the examples are insufficient.

    I've used DWScript since Delphi 5 but I still find it hard to use.

    I can confirm that but once integrated, it is very stable, frequently updated with lots of unit tests! I highly recommend DWScript.

×