Leaderboard
Popular Content
Showing content with the highest reputation since 03/16/25 in all areas
-
xaml island Ask if Embarcadero will integrate UWP & WinUI in comming Version of Radstudio
Dalija Prasnikar replied to bravesofts's topic in Windows API
@bravesofts Maybe you would have better chances of convincing people if you would write your own thoughts instead of letting AI write them for you Delphi already has VCL and FMX frameworks. Feature wise it makes very little sense for Embarcadero to introduce yet another visual framework. Wrapping WinUI can be done through 3rd party, it doesn't have to be supported by Embarcadero. I would prefer that they focus on things that cannot be provided by 3rd party, like: compiler, debugger, language features, IDE functionality.... -
v6.4.0 Beta 1 We are pleased to announce one of the biggest updates of Ski4Delphi! For the first time in Delphi's history, we have a C++ library statically linked to a Delphi application on Windows, removing the dependency on sk4d.dll. In addition, we have updated the Skia library from version m107 to version m132. After a long research and experiments, we were able to understand the "limitations" of the Delphi linker and build a pre-linker for C++ libraries that would get around these limitations, producing objects that are fully compatible with Delphi, which could be used to statically link not only Google Skia, but any C++ project in Delphi on Windows. Source: github.com/skia4delphi/llvm-project This is still a beta version, but all our tests have passed and there are no known issues regarding the new changes. Enjoy! 🙂
-
xaml island Ask if Embarcadero will integrate UWP & WinUI in comming Version of Radstudio
Dalija Prasnikar replied to bravesofts's topic in Windows API
Thank you! I would never do that. Disagreement does not imply lack of respect. It was not meant to bother you. This is why I also put a smiley at the end of my sentence. The point was to bring attention to your posts which are hard to read because of your AI usage. AI can be helpful, especially for communication and I know people who are able to communicate their thoughts better with the help of AI. However, that involves using AI very lightly and mostly for translating and fixing text they actually wrote. When you give AI more freedom to write things for you, the effects will commonly be the opposite. I am finding your posts where you used AI extremely hard to read. They are long and unnecessarily wordy. Another problem (not that relevant here and now) is that when one can clearly recognize something being AI generated more than having some light AI touches, one cannot be sure whether you are actually discussing something with a person or merely an AI. Are the points and arguments used really the ones that the person has tried to make or it is just something AI put there? It is hard to have a conversation in such situations. Nobody is trying to prevent anyone from using AI. You are free to use it all you like. I am not sure what you mean by spying or using third party tools. I am neither spying on you, nor I am using any tools for AI detection. As a Stack Overflow moderator, I have seen first hand the huge amount of damage AI can cause. The amount of posted AI answers there (where vast majority of them are completely incorrect AI slop) is not measured in thousands. It is measured in tens and hundreds of thousands. There are users who posted hundreds and even thousands AI answers. Imagine how much more of such posts would be there if AI would be allowed there. The site would be overflowed with AI. The only reason why AI is forbidden there is to preserve the site as repository of knowledge and a place where you can go and get help from actual experts in their field. Unfortunately, the only means moderators have to fight such influx of AI answers is to remove all and every one where some AI usage is detected (even when it is used merely for translating). We cannot easily distinguish between post which were fully AI generated and ones that were merely improved by AI. On the scale of Stack Overflow, with only handful of moderators removing AI, we cannot judge the correctness of each and every answer. Unfortunately, it would. You cannot add feature without removing the time needed to do implement said feature, from something else. That means less improvements in already used frameworks (VCL and FMX), less bug fixes, less IDE improvements. Embarcadero is not Microsoft, nor Apple, nor Google. They need to pick what they will do carefully to maximize benefits to all customers, which means focusing on the things that cannot be easily provided by 3rd party. -
xaml island Ask if Embarcadero will integrate UWP & WinUI in comming Version of Radstudio
pyscripter replied to bravesofts's topic in Windows API
Not quite. See for instance Ohh...WinUI3 is really dead! - When can we expect the announcement? · microsoft/microsoft-ui-xaml · Discussion #9417 The Microsoft strategy for GUI App development is utterly messed up: WinForms WPF Xamarin Forms UWP WinUI3 MAUI And there is no longer a GUI designer. You have to develop XAML in a text editor. Discussion: WinUI 3.0 XAML Designer · Issue #5917 · microsoft/microsoft-ui-xaml -
Hello, if you haven't noticed yet: with 12.3 Embarcadero also released a new additional tool for subscription owners via GetIt package manager (Tools/GetIt package manager). It is called "The Android SDK manager GUI" and can be used to update Android SDK/NDK etc. in a graphical way. It is a replacement for the graphical SDK manager the Android SDK once contained, which cot replaced by a cumbersome batch file (yes, the batch file is good for automation, but otherwise cumbersome). The SDK manager GUI can also export the selected configuration and import it on another PC, great for easy synchronisation of development machines. What the tool doesn't do is to update the paths in the IDE and it is unfortunately not added to the menu in the IDE.
-
Dictionaries, Hashing and Performance
Stefan Glienke replied to Clément's topic in Algorithms, Data Structures and Class Design
I just came across this thread while searching for something else, and while reading this code, I want to make a few points: I agree on the essential point: when you know how many items you will add to a collection, it is always beneficial to set the capacity upfront. Now, even though this is some naive benchmark code, it shows a few things: - Calling ContainsKey before the attempt to call Add means performing the lookup twice, which has not been necessary at all since Delphi 10.3 because of the new method TryAdd. On my machine, the tests go down from 51ms and 31ms to 44ms and 26ms. - The hash function is one of the key parts that makes or breaks a dictionary performance-wise. The numbers I posted are from 12.3, which already uses a better hash algo (FNV1a) than it did years ago (BobJenkins) but is still far away from ideal. Especially for Integer keys, if the hashtable is designed in a robust way of dealing with hash collisions and clustering, you can get away with not hashing anything but using the value itself. Unfortunately, the RTL one is not built in that way, but for this benchmark, it is fine to replace the eq compare it uses with the one from Spring4d, which does what I mentioned before. This brings down the numbers to 36ms and 22ms. That is another 15% improvement. Now Spring4d would not be Spring4d if it did not have another trick up its sleeve: when it uses the default eq compare, the hashtable does not need to call GetHashCode and Equals for some intrinsic types such as Integer because the value itself is used as hashcode and for checking Integer equality it does not need to call some method. That leads to the above test with initial capacity taking 14ms.- 59 replies
-
- tdictionary
- tstringlist
-
(and 2 more)
Tagged with:
-
Thank you to everyone who suggested improvements to our pre-release versions. We have now officially released pasfmt v0.4.0! For this release, we have made the following improvements: Case statements can now be formatted inline - example Simple conditionally compiled code can now be formatted inline - example Formatting of package conditional directives in the style of RAD Studio - example Various bug fixes (for more information, see the changelog) Alongside this, we have also released pasfmt-rad v0.2.0. Now featuring bookmark and breakpoint relocation across formats.
-
And yes, the viewing of data at design time using a 64bit database does work with 12.3 (certainly with 64bit versions of postgreSQL which is what I work with). The 64bit IDE is a first step. Of course we would all like it to work perfectly and to have had it a year ago but at least this shows it is coming. I am very much in favour of Embarcadero releasing stuff with limited functionality but which works rather than trying to rush too much out too quickly and therefore it all being very buggy. They have gone down this route in the past but seem to have learnt that this puts customers off. They do now seem to be releasing smaller changes at a time but smaller changes that work. I think this is much better for us users.
-
xaml island Ask if Embarcadero will integrate UWP & WinUI in comming Version of Radstudio
Der schöne Günther replied to bravesofts's topic in Windows API
Have you considered joining Embarcadero's marketing team? -
For years LSP has been broken on our very large code base. The main problem being "Find Declaration" is non-functional. We also experience problems when switching between Win64 and MacOS build targets; usually doing so without cleaning the project results in the IDE crashing or the compiler crashing or both. I complained about this earlier today in this post: Today, I was stepping through code in our MacOS build when I noticed that the IDE was taking me to the wrong source file. That clued me into what was going on. This project has about 40 local copies of Delphi source files to fix various bugs and add some needed access to private fields, etc. (Trust me, we hate to do this, we don't want to do this, but when the FMX code base assumes only one thread will ever want to use bitmaps and stuff like that, we have no choice). Of course these local copies appear first in the search path. This naturally necessitates that the other source files are rebuilt, and they are listed in the search path, lower down. The compiler works perfectly fine; our modifications are built without issue. But the IDE and LSP hate this. While stepping through code, it took me to the original FMX.COntrols.pas file, not the local copy that is being compiled into the build. No amount of tweaking the search path or browsing path helped. This got me thinking that this could be related to code navigation issues. So I went into the Rad Studio installation folder and renamed all of the source files for which we have a local copy, so that it would be impossible for the IDE or LSP Server to reach them. And like magic, every single problem I have been having with code navigation suddenly went away. Even switching between MacOS and Win64 build targets and compiling became a seamless operation. So, it appears clear that the LSP Server and IDE do not take the same clues as the compiler or linker or whatever when it comes to search paths. And chaos ensues, due probably to incompatible interfaces that exist between unmodified fmx classes and our local forks. Now I could be overstating the effectiveness of this fix, but I spent an hour doing things I know break the IDE and they all worked. The problem is now I have gone nuclear on the Delphi source folders and no other projects can use them. What I would like to do is have a different copy of the BDS /source/ folder that is used for this project. But we already know a wholesale copy into the search path won't fix it, because those files are already there. We need the IDE to treat a different folder as canonical for $BDS/source. I already use the -r command line switch for the IDE to isolate this project into its own registry hive, but I could not find a way to override the BDS variable (nor do I think that is the right solution). This brings me to my question -- going to Tools/Options and trying to override the BDS environment variable creates an error since it is "built-in." My current solution is clunky -- maintain two source copies of the BDS source folder, one with all the files and one with files removed that we have local copies of -- and switch between the two depending on what project I am working on. But is there a way to tell the IDE and LSP Server to use a different source folder? (Probably not, because if so, it would already be working based on the project settings, LOL!) If I can get time I may try to make a small project that reproduces one of these problems, but this is a million+ line project and it could have to do with a combination of factors, not just the fact that we have local copies of stuff like FMX.Controls with incompatible interfaces.
-
There are always remote connection possibilities as a compromise. I firmly believe an unfixed product can cost more than a trip for two guys, that know their stuff, to find out what the hell is going on.
-
Yes, but the new 64-bit compiler is about compiler bitness, not platform. That means that compiler is no longer 32-bit process and can use all available memory on the system.
-
Tried to create a SIMD (AVX2 based) Quicksort: https://github.com/mikerabat/SimdQSort For anyone who is interested... It supports Int32, Int64, Single and Double Array sorting - no custom struct size nor user defined compare procs. Speedup for large random arrays is up to 3.5 🙂
-
xaml island Ask if Embarcadero will integrate UWP & WinUI in comming Version of Radstudio
Frickler replied to bravesofts's topic in Windows API
Joel Spolsky has written about this some 23 years ago in his famous "Fire and Motion" article. In short, Microsoft "invents" new technology, and while devs try to adapt to that, Microsoft just drops that for a "newer, better" technology. And so on, and so on. -
NexusDB components are now available in the new 64 bit IDE 👍 v4.7514 adds - 64 bit Designtime Support - Replication (Beta) Find the best Delphi Database at NexusDB
-
Is there a way to -detect- that the VCL has been accessed from outside of the main thread?
Uwe Raabe replied to Der schöne Günther's topic in RTL and Delphi Object Pascal
Indeed there are: Set TControl.RaiseOnNonMainThreadUsage := True This will raise an EInvalidOperation when CheckNonMainThreadUsage is called for a control. This is automatically done inside CreateWnd. -
RAD Programmer Coding Challenge #1 - build a MineSweeper game in RAD Studio with a chance to with $500
Marco Cantu replied to Darian Miller's topic in Tips / Blogs / Tutorials / Videos
Can I participate with a program written 25 years ago? https://github.com/MarcoDelphiBooks/MasteringDelphi5/tree/master/WebBonus/22/MINES -
Can you please elaborate this? Maybe a short article on this topic. P.S. I've noticed that there have been several interesting Delphi projects from Brazilian developers lately. Skia for Delphi, D2Bridge Framework are the most notable.
-
Actually it is not nonsense at all. This is the source of your memory leaks. String assignments are not thread-safe.
-
xaml island Ask if Embarcadero will integrate UWP & WinUI in comming Version of Radstudio
Brandon Staggs replied to bravesofts's topic in Windows API
Oh come off it. Nobody cares if you use it or not. Your posts are so overly verbose and grandiose that even if there is merit in what you are asking for, nobody can find it. In fact, you seem like you are trolling us with AI generated gibberish that almost but not quite seems to be making a point. And I would prefer not to feed trolls. -
xaml island Ask if Embarcadero will integrate UWP & WinUI in comming Version of Radstudio
Lars Fosdal replied to bravesofts's topic in Windows API
@bravesofts Place a feature request at EMBT's JIRA. Nothing is decided on this board. -
xaml island Ask if Embarcadero will integrate UWP & WinUI in comming Version of Radstudio
Der schöne Günther replied to bravesofts's topic in Windows API
Embarcadero has been having too many coals in the fire for years now. Instead of opening the next can of worms, they should be fixing basics like code completion. I remember being in the Microsoft Technology Adoption Program where you got Teams meetings with the developers behind WinUI and other Windows components, got shown not yet released roadmaps and got to ask questions. Back then, it was basically impossible to properly use WinUI outside of Microsoft's Visual Studio (not sure if it was WinUI2 or 3). At that time, they openly replied to me that they had no plans to change that. Except WebView2 has been usable for basically everybody from everywhere, and it's actually good. You can see it being used in a lot of software, not just Microsoft's own products. Just look at how much stuff Microsoft has abandoned in the last couple of years, how much of the "Universal Windows" approach has been dialled down or completely removed already. Not to mention that new GUI stuff has been highly dependant on the most current Windows version. WebView2 even works in Windows 7. I honestly was interested in WinUI around 2018 to 2020 or so, but it certainly never took off. I firmly believe it is not relevant anymore. -
Delphi 12.0, .1, and .2 have been especially hard for us with our million+ line project. 80% of the time Find Declaration doesn't work, and the other 20% of the time it seems random which way works -- CTRL+G or CTRL+Click, sometimes one will work when the other one doesn't. We of course cannot email the "crown jewels" entire proprietary project to Emba for them to test with. I understand they need reproducible examples, but they have also said during the release webinar that they are aware LSP doesn't work acceptably and will be replacing the current system with a completely new approach in 13. Well, this is a fundamental, basic function of any IDE, and personally I question this decision to add new features of any kind while something so basic is known to be non-functional for so many users. But, trying to be fair, I'm sure not all of their developers are qualified to work on LSP so they will naturally be focused on multiple areas at once. I can guess at why LSP has such a hard time with our code base, and I have spent a lot of time trying to remove legacy anti-patterns and cleaning out uses clauses, etc, but in the end, it all compiles just fine, so it should not be a problem for the editor to navigate. An editor should be able to navigate and offer functional code completion with broken code, let alone code that compiles without issue.
-
GExperts now fixes yet another annoyance in the Delphi IDE: Desktops
dummzeuch replied to dummzeuch's topic in GExperts
Edit: Fixed the problem with the full screen window in revision #4468.