Leaderboard
Popular Content
Showing content with the highest reputation on 11/01/21 in Posts
-
Asynchronous Programming Library
Dalija Prasnikar replied to pyscripter's topic in RTL and Delphi Object Pascal
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. -
REST API Server. Why do we need it? How to implement REST API Server? Pros and cons.
Lars Fosdal replied to Serge-Pilko's topic in Network, Cloud and Web
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. -
Asynchronous Programming Library
Vincent Parrett replied to pyscripter's topic in RTL and Delphi Object Pascal
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. -
GDI object leak and overflow when TImageList is on a frame
Uwe Raabe replied to aehimself's topic in VCL
That will also save memory when multiple instances of the frame are created. -
GDI object leak and overflow when TImageList is on a frame
Lars Fosdal replied to aehimself's topic in VCL
Not that it has any bearing on this problem, but I keep my shared image lists in a data module -
Directed Graph Layout Library for Delphi?
VilleK replied to Vincent Parrett's topic in Algorithms, Data Structures and Class Design
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). -
REST API Server. Why do we need it? How to implement REST API Server? Pros and cons.
mvanrijnen replied to Serge-Pilko's topic in Network, Cloud and Web
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. -
Is there any potential issue to create an instance of Data Module during Unit Initialization?
Lars Fosdal replied to wuwuxin's topic in Network, Cloud and Web
As long as the RIO is used only by one thread at a time, that would work fine. -
Is Delphi's HTTPRIO thread-safe?
Dalija Prasnikar replied to wuwuxin's topic in Network, Cloud and Web
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. -
GDI object leak and overflow when TImageList is on a frame
Lars Fosdal replied to aehimself's topic in VCL
Technical Debt and Legacy - an endless source of work 🙂 -
Is Delphi's HTTPRIO thread-safe?
Dalija Prasnikar replied to wuwuxin's topic in Network, Cloud and Web
It is not thread safe. You cannot share one instance among threads. -
GDI object leak and overflow when TImageList is on a frame
Fr0sT.Brutal replied to aehimself's topic in VCL
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 -
Please refer to this comment, and the other comments in the same post:
-
Directed Graph Layout Library for Delphi?
Vincent Parrett replied to Vincent Parrett's topic in Algorithms, Data Structures and Class Design
excellent thanks, this is exacly what I was looking for. -
Blog post on one-time password generation
Darian Miller posted a topic in Tips / Blogs / Tutorials / Videos
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 -
Traybar application, get the last active windows on desktop
toms replied to mvanrijnen's topic in Windows API
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 -
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.
-
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.
-
Not all of us do this!
-
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!
-
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.
-
Or make unit tests open source and ask community to join them. This would help at least keeping lib in stable state.
-
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.