Jump to content

GabrielMoraru

Members
  • Content Count

    142
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by GabrielMoraru

  1. GabrielMoraru

    New Delphi features in Delphi 13

    Did they fixed that tool in the end? === I tried it in the past. It didn't worked. I do it manually now.
  2. GabrielMoraru

    New Delphi features in Delphi 13

    That's one of the top items on my "Delphi wish list": * Bring fresh blood * Expand the ecosystem (including libraries) * Bring the IDE up to date (this includes fixing the bugs also) I don't care much about RTL and VCL. That I have access to the code and I can patch. But the IDE..... Oh Andreas, why have you forsaken us? 😞
  3. GabrielMoraru

    New Delphi features in Delphi 13

    I cannot find "Delphi Advisor Wizard Upgrade" on web GetIt. Does anyone know anything about it?
  4. GabrielMoraru

    New Delphi features in Delphi 13

    Attila: > it only took 10 years Yes, it should have been done 10 years ago in order to be adopted by now. Now if I use it in my public libraries, people will not be able to compile my code unless they have Delphi 13. This is always the catch with new language features... Anyway, I love it! Too bad it was not introduced in Delphi 1! Today is it not as grandiose/necessary, because now we have tools like madShi madExpert (and the other one that I don't want to say its name here)... but still cool to have it! _____________________________________________________________________________ Steve Maughan > I assume Delphi 13 can be installed alongside 12.3. Yes. It works. I just put a tutorial on my website on how to port the registry settings from D12 to D13 (actually it works with all editions). _____________________________________________________________________________ corneliusdavid > That's a bit of an exaggerated statement. I don't use that feature (I even disabled the dangerous Ctrl+D shortcut) but I do understand Attila. Each person uses the IDE/RTL in a certain way. What for one is irrelevant, for others is gold. Second: It is sad (at least) to have features removed (instead of added) from your IDE 😞 ___________________________________________________________________ Oboba: >So the Refactor menu is greyed out, why is that? I know it didn't work properly sometimes, even basic "Rename" refactoring. I see above that it was removed with the Modelling support, then why leave the menu item greyed out and not remove it completely then? Also see: https://embt.atlassian.net/servicedesk/customer/portal/3/RSB-911 ___________________________________________________________________ Mark NZ >The refactoring removal is actually the biggest benefit of Delphi 13.0 for me so far. It only ever worked on a trivially small project and on our large projects just moving the mouse past the menu option not fast enough caused minute+ freezes. Same here. Refactoring rarely worked. BUT Anders is right " but it was an optional component so you could have just chosen not to install it". I hard it worked for some... ___________________________________________________________________ Lars F > I described it years back in this post. Writing Readable Code - Formatting and Comments. I disagree with most of your proposed formatting examples (but I have nothing personal with you - big smiley face ). We are all different human beings. You will never make everyone agree on what is the best formatting style. You can enforce it, as many companies do, but you will not convince all people agree with it. I have been in places where a very very specific (non Embarcadero) formatting style was enforced. Your commit was simply rejected if it was not tightly formatted. On the other hand the company had no rules enforced on programming style and documentation. Actually the documentation was discouraged (because "the code will change and we will forget to update the documentation"). And the code was as peppered with case-without-else, App.ProcessMessage, try/except as a well seasoned stake on the grill. I think, before discussing formatting, we should deal with the safety rules. 🙂 - I have seen try/except so often abused that I started lately to wish Delphi had no such language feature. Or make it expensive: every time you compile a line of code like this, pay 10 cents! Or allow the developer to use it only if he has a Delphi certificate. 🙂 Or, maybe the compiler can be made to detect empty try/except cases and refuse to compile... A warning would not be enough because I have also seen projects where developers abandoned the "Messages" window because it had too many hints and warnings.
  5. GabrielMoraru

    App persistence and restoring state

    I don't think OnSaveState is a smart idea. I think would be better to save your data (objects) to disk (preferably as binary files) every time the user changes something into the program. Then you don't care if the app is killed since the data is saved. At app startup you load your objects into memory and rebuild your GUI from those objects. Now your app is correctly and fully restored. Warning! When you serialize your objects to disk, don't overwrite the old file! Save it with an incremental filename because your application might get killed while the app is saving itself. (I hate the design of Android)
  6. GabrielMoraru

    Dealing with modality on Android

    Hi I want to pass an object to a form (TfrmGemini) so the use can change the parameters of that object. What are the patterns that you are using on Android where modality is not available? There are several patterns like Callback Pattern (the one I used until now), Interface Pattern, Event-Based Pattern, Temporary Ownership, ObjectCopy Pattern (but Delphi is not good at making deep copies of an object). Idea: Android does not support modal forms, but any form is full screen. If you don't give the user the chance to return to the main form, then the secondary form acts (in theory) as modal form. But I don't know if this is guaranteed. Are there are any circumstances in which a user may force its way out from the secondary form back to the main form. Of course, when you show the second form (in full screen) the program execution will continue. The program will not wait until the user enters the new parameters for TGeminiClient. But in some circumstances (like this one) this is ok since the user won't be able to do anything with the program until he exists the second form. PS: There are dirty tricks that makes a normal form behave like a modal form. I definitively don't want to mess with that.
  7. GabrielMoraru

    What new features would you like to see in Delphi 13?

    1. Better support for web technologies. 2. Support for scientific research (in other languages you can find FREE 3rd party libraries). 3. Better compiler with modern ASM code. 4.... and of course, modern/stable IDE (maybe with some AI capabilities embedded).🙂
  8. GabrielMoraru

    What is the best AI at Delphi

    From what I know they collect these numbers as reported by the browser when your browser connects to some websites. (At least that was still true until some years ago... I don't know if they collect the data in the same way. But my second links seems to confirm that they still collect the data this way.) If this is true, then the fridges will never visit those websites. But yeah, collecting reliable data is hard. _______ According to Gartner, the number of Windows users (shipped devices) seems even lower. But on the other hands, they will not count devices built at home without Windows pre-installed. https://en.wikipedia.org/wiki/Usage_share_of_operating_systems But both sources confirms what we already can see with our own eyes: it is clear that Android (phones and tables) wins by far.
  9. GabrielMoraru

    What is the best AI at Delphi

    Am I asking for that much? Why should we be second-hand class citizens? Others have it in their editor. Why shouldn't we? If I use VSCode instead of Delphi, why not switching to VSCode permanently? (joking) I have seen how people look at me when I tell them I work in Delphi. They ask me: "Does Delphi still have that thing with the VAR that needs to be declared separately"?
  10. GabrielMoraru

    What is the best AI at Delphi

    I 100% agree with that - if the change will happen in the near future. But I was thinking about a bit more distant future. Sorry I haven't been clear on that 🙂 >There are huge amounts of code out there that use VCL, and moving all those to FMX would be impossible. I know this also (but I wouldn't quite call it impossible). Unfortunately, this is what will make the adoption of FMX close to impossible. Embarcadero has to invest its resources in two places. Since the resources are so limited, one of the frameworks suffers. I have seen so many companies that were ditching Delphi for something else (because they needed cross-platform support) without even considering FMX. A company I worked with recently chose to keep its current Windows code in Delphi VCL, but for the cross-platform, they moved to C#. So, the code base is duplicated ANYWAY. Again, FMX was not deemed worthy (there was also a second reason that does not relate directly to this discussion: lack of trained Delphi programmers). >There are huge amounts of code out there that use VCL This means that Delphi will remain a successful developing platform for Windows. And the statement will remain valid for as long as Windows will be the king among the operating systems: https://gs.statcounter.com/os-market-share#monthly-200901-202506 (the "king" lineage is in blue color). So, in general I agree with you... as long as we can look more than 5 years into the future. For the moment the "king" lineage does not seem to decelerate its falling. It lost another (almost) 15% in the last 5 year. Another 5 years and Windows popularity will be comparable with Linux (ha ha). Looking at the "king" line is anybody here that, with open mind and hand on his heart, feels like VCL should remain the high priority framework? This forum will hopeful remain here for many years. I am sure it will come a day when we will look back and see that FMX had to become the main (if not the only) Delphi framework. -------- Clarification 1: Again, I apologize that I gave the impression that the shift in focus (from VCL to FMX) should happen overnight. An the other hand, if there will be "no more Windows", all companies that are Windows-centric will have no choice but to move to FMX (or... Java/etc)... and this, maybe in less than 5 years! In the end it is not you, me, Delphi, or Microsoft that dictates this. It is the amount of customers you have left on the "king" platform. Clarification 2: I am not saying all these about the MS Windows as pejorative. I truly loved some of Windows versions. And I don't want to buy two computers and switch constantly between Windows and Mac, for my daily use. I would love to stay on Delphi/Window. Clarification 3: I am not a proponent of FMX. I don't like it. But I need it. I already lost a battle were one of my products (VCL) was popular for many years on Windows but then the customers (academia) moved to Mac and Linux. Back at that time, compared to VCL, FMX was lumping behind (but I did some successful projects for Linux with FPC/Lazarus)
  11. GabrielMoraru

    What is the best AI at Delphi

    What I am trying to say here (and raise an alarm) is that I have seen this trend where AI lacks (compared with other languages) when you try to use it for Delphi (VCL). Initially I thought it was only an impression, but later tests (for example, generating a full program with Replit in Delphi and then in other languages) turned an "impression" into a confirmation. FMX is out of the discussion. As Windows OS is losing market share, I hope that Embarcadero will focus on FMX. I understand that most paying customers have huge systems built only for Windows, but that will not last forever. So, 1) We need more libraries/code on GitHub (etc.) to train the AI (I published some of my libraries on GitHub in the last two years; more to come). 2) We need tools like Replit or Copilot for VS that can better integrate with the IDE (I am writing one, but I am a beginner at OTA) 3) We need to look more into the future, ditching the VCL for FMX (here Embarcadero has the last word). Now, the AI is already good at writing all by itself small web applications. If AI will get far superior at writing medium (and in the next 2-4 years even million SLOC sized) applications, Delphi will lose the battle. It is a positive feedback loop: the better the AI gets at JS, C# (etc., the less Delphi code will be out there.
  12. GabrielMoraru

    OTA vs NTA

    I want to create an IDE plugin like Copilot for Visual Studio or like Cursor. I already started with OTA but now I wonder if it would have been better to go for NTA (Native Tools API). NTA seems more brittle but also more complete (and way less boiler plate code). Opinions?
  13. GabrielMoraru

    OTA vs NTA

    The documentation claim that the new API (since Delphi 11) allows access to the compiler messages. I am working on this... but slowly as the weekend is gone... 😞 > well, tested on few old IDEs, up to XE8, if that will help then i can search for that fun project and try to adjust it for you. That would be interesting to see since I will have to make it work also for users that do not have the new OTA API (Delphi 11) Thanks 🙂
  14. GabrielMoraru

    OTA vs NTA

    I think the most important part for my plugin is the capability to interact with the compilation/debugging system so the AI can automatically check for compilation errors.
  15. GabrielMoraru

    What is the best AI at Delphi

    I know... I know... (On the other hand I sold all my Tesla stocks).
  16. GabrielMoraru

    What is the best AI at Delphi

    I see that the question is in the VCL domain, where I like Grok. ______ But I can also tell you about FMX where the best AI is... drum roll please.................................................. none. They all suck terribly as FMX. Probably not their fault. Probably because of lack of code on GitHub.... 😞 And what the AI does when it does not know the answer to a question?????? It hallucinates things. So, all your queries MUST contain "check your answer for hallucinations" .
  17. Hi. Two comments here: 1. Library description Many libraries use big words to describe what they do. In the end you don't get it - unless you invest some time to look deep into the code or documentation. So, maybe you can "dumb down" a bit the project description. Maybe something like: "if you use this library right now in your Delphi project your will be able to xyz", where xyz is the most important feature of your library. It is like when you go to the store and you see a can and you instantly know that inside is tomato soup. Then add the rest of the "complicated" description 🙂 PS: I read the documentation and now I think I get it. But it took a while. 2. asynchronous In general when I use the AI, I ask then I wait for the answer. Is there something you can do if you work in asynchronous mode, while waiting for the answer from the AI? Maybe starting a second request??? If no, then there is no point in using asynchronous. Great library! Thanks for sharing.
  18. I just released my NCG library as open source on GitHub. The full library description and documentation here. Discussions: I think it might be the only NGS Pascal library out there... The program works quite fine but it speed is not impressive... on the other hand is does not have any optimization and it is single threaded. If you have multiple patterns to look into the "big" image, each one could go into a thread. On a CPU with 12 cores, like mine, this code could easily behave as and OCR 🙂 Pre-compiled demo program also available. Enjoy. ____ Related to image processing: You will find also some basic image processing code in my LightSaber lib. There is another library that I will make it also open source that adds metadata to an image, so you can autorotate it based on exif, add "stars" to it (how much you like, it), pregenerated thumbnail (to save some time CPU next time you show it), etc. So, stay tuned... 🙂 ____ PS: On Git hub, vote only the libraries you like 🙂 🙂 🙂 I invest time in those that get votes 🙂
  19. > The GitHub link at the end does not work That's just WordPress being dumb... It won't let me insert links to GitHub. It tries to present a screenshot of the repository and fails. I had to type the address manually. PS: I also have a website generator - much much better and stable than WordPress.... but... not the pages generated are not that pretty. I have to integrate some Boostrap support. One day I will make also that one open source 🙂 _______________ This comes from a promise that I made a while ago that I will "free" some of my private libraries. So, as the time allows, more and more code will be released.
  20. Hi Marci, Next year I might come with you. We talk next year in April... 🙂
  21. GabrielMoraru

    Delphi TOIOBE index lifted in May 2022?

    July will start soon... let's see how Delphi will appear in the top....
  22. I think, under the new "bug report" portal it is not possible to "me too" (vote) anymore. 😞
  23. @Pat Heuvel- Thanks. I tried the (relatively) new version from github and it works!
  24. Somebody suggested ProcessMonitor, but there is a better tool for this: PE Explorer (although not freeware). It will show you a red dot like this where the dependency fails. There is also Dependency Walker 2.2 (freeware, but kind of old) but it freezes with Delphi BPLs.
  25. GabrielMoraru

    Delphi 11.1 + patches - No debug source / breakpoints?

    Thanks. But this is way beyond that. I think that under certain conditions, the linker simply does not put the debug information into the DCU or EXE file. Or if it is there, the debugger cannot use it. My environment is identical with Lars' except " current user has local admin rights". It is quite random... Today works, tomorrow not. Restarting the IDE helped in 2-3 cases but not in other 10-15. Until now only the code in packages (dpk) was not available for debugging. Once, I rebuilt all packages in a certain order and then I was able to debug again. Friday was the first time when it happen in the project (dpr) itself. But as I said... suddenly it fixed itself so I cannot experiment anymore. The DProj files are very old and I have seen strange lines in there. Lines that are not in a fresh DProj file. I tried to remove those lines one by one, trying to find the offending one. This (broken DProj file) is only a supposition. Until now I strongly believed that it has something to do with the package. But Friday I removed every reference to any external units from the dpr file (except VCL.Dialogs and VCL.forms), cleaned up the DCU folder and it still happened. So, IT IS NOT related to packages. There was only a ShowMessage in the DPR file and it still won't stop there, at that line. uses //FastMM4, vcl.Forms, vcl.Dialogs; begin //Application.Initialize; //Application.MainFormOnTaskbar := True; ShowMessage('Worked!'); // Breakpoint //Application.CreateForm(TForm1, Form1); //Application.Run; end. ______ Normally the exe file is 55MB, and the size is not coming from internal resources and images but from code 🙂 I backed up the exe file and the DCU folder, now that debugging works. I will wait until it doesn't and I will compare the binary files, see if they are smaller.
×