Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 11/01/21 in all areas

  1. Dalija Prasnikar

    Asynchronous Programming Library

    Nope. Frankly, it is abomination. My primary objection is that it slaps control flow into TComponent where it does not belong. TComponent is not thread safe class and asynchronous operations and multithreading imposed on that level open recipe for disaster. It does not give you more control, it takes it away from you and it is overly complicated. Maybe there are some small use cases, but I still haven't found any. At the same time we don't have cancellation token implemented in PPL which desperately needs it. Good implementation of cancelation tokens could then be used in other code even asynchronous one that does not run in threads. I have no idea what is original intent behind that library, so maybe I am missing something obvious.
  2. Give me written articles over video any time! If the article is shit, you can spot it in seconds, but I've wasted too many hours watching videos while hoping there will be something useful in there.
  3. Vincent Parrett

    Asynchronous Programming Library

    A very odd design, I can't imagine why they thought this was a good design. I you just want to run some tasks in the background, I leveraged OmniThread Library with my own wrapper that allows cancellation (via VSoft.CancellationToken) and returning values. I use in in the ui for the package manager I am working on, changing tabs invokes a background request to fetch package lists, however if you click on another tab before the first request is finished, it will cancel the first request and start a new one. Very simple to use.
  4. Uwe Raabe

    GDI object leak and overflow when TImageList is on a frame

    That will also save memory when multiple instances of the frame are created.
  5. Lars Fosdal

    GDI object leak and overflow when TImageList is on a frame

    Not that it has any bearing on this problem, but I keep my shared image lists in a data module
  6. Hi, I implemented Sugiyama here: https://github.com/VilleKrumlinde/zgameeditor/blob/master/tools/ZDesigner/3rdparty/SugiyamaLayout.pas It is fully defined in a single unit. I've used it in several projects and it is very fast, robust, and as far as I know bugfree :). Let me know if you need help with using it! You create a subclass and override ExtractNodes and ApplyNodes methods. See this unit for an example (the TMyLayout class).
  7. Would be nice to have a written transcript also. Many people (or at least one 🙂 ) prefers reading this kind of stuff instead watching youtube. Also no speakers connected at work to the computer.
  8. As long as the RIO is used only by one thread at a time, that would work fine.
  9. Dalija Prasnikar

    Is Delphi's HTTPRIO thread-safe?

    No. When you use it, even if you don't change the properties, there are other state (encapsulated data) changes happening and this is where multiple threads can interfere with each other.
  10. Lars Fosdal

    GDI object leak and overflow when TImageList is on a frame

    Technical Debt and Legacy - an endless source of work 🙂
  11. Dalija Prasnikar

    Is Delphi's HTTPRIO thread-safe?

    It is not thread safe. You cannot share one instance among threads.
  12. Fr0sT.Brutal

    GDI object leak and overflow when TImageList is on a frame

    Something could leak without a detectable leakage. for i in 1..MaxInt do TButton.Create(MainForm) these buttons will be freed on form close but they obviously leak
  13. Dave Nottage

    In-App purchase

    Please refer to this comment, and the other comments in the same post:
  14. excellent thanks, this is exacly what I was looking for.
  15. New blog post on one-time password generation in Delphi (TOTP standard). Second in a blog post series to create a Google Authenticator style multi-platform app in Delphi. https://www.ideasawakened.com/post/radauthenticator-part-2-generate-one-time-password-tokens-in-delphi-using-totp
  16. Retrieve the foreground window when the mouse enters the tray icon using an "OnMouseEnter" event. https://stackoverflow.com/questions/49896871/ttrayicon-with-onmouseenter-onmouseleave-events
  17. David Heffernan

    New to JSON

    There are lots of articles and resources and examples on JSON parsing on the web. What have you found and what have you tried. Did you start by parsing a very simple bit of JSON first. You shouldn't try to learn something new by trying to solve your ultimate problem. Start simple and work up.
  18. Uwe Raabe

    D11 - A bridge too far.. :-(

    I didn't have these problems. All 3rd party libraries I use come with sources and can be adapted to a new Delphi version in a reasonable time frame even without any help of the vendor. Usually I can compile my main project within 1 - 2 days after the first beta drop. There are differences in the effort needed for each library, though. Not everyone took an update friendly approach.
  19. David Heffernan

    D11 - A bridge too far.. :-(

    Not all of us do this!
  20. David Schwartz

    D11 - A bridge too far.. :-(

    yeah, but they keep paying their annual maintenance. If they'd tell EMBT they won't renew until a better job is being done on fixing the last release instead of just rolling the existing issues forward and then piling on more in the next release, they might actually do something to address this. It has been their SOP for years now!
  21. David Heffernan

    D11 - A bridge too far.. :-(

    This would be too late to make much difference. The longer you leave bugs the more they cost. And I'm not sure that it would even help much. You'd have to devote significant resource to running the community contributors. Better to use that resource to get the quality right from the off. There's just something rotten in the Emba development model.
  22. Fr0sT.Brutal

    D11 - A bridge too far.. :-(

    Or make unit tests open source and ask community to join them. This would help at least keeping lib in stable state.
  23. David Heffernan

    D11 - A bridge too far.. :-(

    The thing is, releasing software that is of low quality means that your engineering team spends large amounts of time addressing this low quality post release when it is much more expensive to do so. If they would use better engineering processes and concentrate on quality from the very start, then they would use far less human resources. They aren't even cutting corners with this approach. It is inefficient in terms of their own times and resource, and obviously really inefficient for every user affected by this low quality.
×