Jump to content


Popular Content

Showing content with the highest reputation since 05/21/24 in all areas

  1. Granted, but having used Delphi for probably over 20 years now, there is no 'upgrade' price that acknowledges the amount of money spent on versions over the years. It seems you are treated as a 'new' customer regardless of your 'loyalty' to the product. With other products, existing users normally get upgrade prices that are significantly better than a new customer would pay. Also, when I buy a product I would expect to get any bug fixes for that product free with an apology, rather than having to pay for it. Embarcadero seem to be like the Carpet shops, there's always a 'sale' on. I can't believe anyone, company or individual, ever pays the advertised price. Why don't they have some integrity and show a normal price! Whatever 'special deal' is running the actual amount they want is always around the same (which in my opinion is way too much).
  2. Wow, I think my bullshit-meter just broke. Their marketing sounds like a non-technical managers dream.
  3. Anders Melander

    How to debug a Not Responding program element

    That's the spirit! I must say that given that you're a relative noob (no disrespect; We've all been there 🙂 ) I am pretty impressed with your determination and with what you've done with SuperLemmix. From what I've seen it's not the easiest of projects to work with.
  4. Willicious

    How to debug a Not Responding program element

    Whenever people say anything like this, I have to think: when will it not be too advanced for me? It's either advanced or it isn't. I'm either up to the challenge or I'm not. I'll only know if I go ahead and try it. With that said, allow me to be the first to admit that I am definitely no more than a novice programmer at best, my interest and experience in it is all from a hobbyist point of view. But, take a look at what I've achieved with SuperLemmix over the past year. You might be surprised at what a beginner is capable of given enough determination and some strong goals!
  5. dummzeuch

    Release or Debug?

    Maybe I should simply turn off source code downloads from SourceForge ...
  6. Stefan Glienke

    What are the performance profilers for Delphi 12?

    I'll take that opportunity and talk about it for an entire session at the Delphi Day and the Delphi Summit (the schedule still lists me talking about spring4d but for once I pass on that topic) 😉
  7. Lajos Juhász

    Refactoring in Delphi

    IMHO GetIt is the right choice to destroy any library. I see no benefit from it, just limits the choice for no benefit.
  8. pyscripter

    New ChatLLM application.

    I have created a new Delphi application called ChatLLM for chatting with Large Language Models (LLMs). Its primary purpose is to act as a coding assistant. Features: Supports both cloud based LLM models (ChatGPT) and local models using Ollama. Supports both the legacy completions and the chat/completions endpoints. The chat is organized around multiple topics. Can save and restore the chat history and settings. Streamlined user interface. Syntax highlighting of code (python and pascal). High-DPI awareness. The application uses standard HTTP client and JSON components from the Delphi RTL and can be easily integrated in other Delphi applications. You do not need an API key to use Ollama models and usage is free. It provides access to a large number of LLM models such as codegemma from Google and codelllama from Meta. The downside is that it may take a long time to get answers, depending on the question, the size of the model and the power of your CPU and GPU. Chat topics The chat is organized around topics. You can create new topics and move back and forth between the topics using the next/previous buttons on the toolbar. When you save the chat all topics are soved and then restored when you next start the application. Questions within a topic are asked in the context of the previous questions and answers of that topic. Screenshots: Settings using gpt-3.5-turbo, which is cheaper and faster than gpt-4: UI: Further prompting: The code is not actually correct (Serialize returns a string) but it is close. If you want to test ChatLLM you can download the executable.
  9. Stefan Glienke

    Delphi on Surface Pro with Qualcomm CPU?

    Given the current issues regarding optimization that all LLVM-based Delphi compilers (that is all but the two Windows ones) have I am tempted to say that an x86 or x64 binary using the emulation layer might be faster than what a compiler that directly targets ARM would produce today. There are multiple reports about this and it boils down to "need to migrate to a newer LLVM version" which we have been told for years now - since recently the C++ Builder side was migrated to a recent LLVM version I hope that now the Delphi side gets addressed. https://quality.embarcadero.com/browse/RSP-9922 https://quality.embarcadero.com/browse/RSP-17724 https://quality.embarcadero.com/browse/RSP-25754 https://quality.embarcadero.com/browse/RSP-28006
  10. New offline helps for Rad Studio 12.1 Athens are published. https://docs.embarcadero.com/products/rad_studio/
  11. Uwe Raabe

    Stack Overflow Developer Survey for 2024

    I wonder if 42 would do, too...
  12. Lars Fosdal

    Stack Overflow Developer Survey for 2024

    Or Androids...
  13. Jim McKeeth

    Stack Overflow Developer Survey for 2024

    I'm curious if everyone gets the same "make sure you are paying attention" question... I wonder if this answer is valid.
  14. In the attachment you can find a high-level interface-based encapsulation of the Direct2D SVG functionality. It allows you to parse SVG files and draw them to a GDI/GDI+ DC. Requires Windows 10 with Creators Update or later. Main form code to display SVG files: { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin fSVG := GetD2DSVGHandler.NewSvg; fSVG.LoadFromFile('..\..\browser.svg'); //fSVG.FixedColor := TAlphaColorRec.Red; //fSVG.Opacity := 0.5; fSVG.GrayScale := True; end; procedure TForm1.Paint; begin inherited; fSvg.PaintTo(Canvas.Handle, TRectF.Create(ClientRect), True); end; procedure TForm1.Resize; begin inherited; Invalidate; end; Features: Scale to any size Keep aspect ratio (optionally) Control opacity Recolor to any color Draw in gray scale Samples: The above in grayscale: Svg.zip
  15. Willicious

    How to debug a Not Responding program element

    OK... I went ahead and: 1) Merged LoadIcons and LoadNodeLabels into InitializeTreeview 2) Removed the call to LoadNodeLabels in SetInfo 3) Moved the call to LoadIcons to DisplayLevelInfo (still called via SetInfo, but at least it's now in the right place!) 4) Removed the OnExpanded event handler And WOW! The difference is night and day. It takes much longer to load the Level Select initially (expected, and I'll do a progress bar for that), but once open it's super snappy and responsive, and doesn't bug out when switching between packs any more 🎉 Thanks for your help in narrowing down what was causing the delays. I clearly need to install VTune (is there a free/budget version?) as that displays exactly what's causing the delays very clearly, so it will no doubt come in very handy for other features of the program. The only thing I'd probably say is that it might be somewhat frustrating to use the slower-loading Level Select when only wanting to switch quickly between levels (e.g. for testing purposes). It might be worth doing a "Quick Select" version which only displays the treeview and nothing else; this would likely be the default. Then, a button for "Show Level Info" could go ahead and load the full version. I'll see what the feedback is after releasing this slower-loading but quicker-interfacing version of the Level Select. I'd say that pretty much wraps up this topic as resolved, but it would be good to continue the discussion around general optimization. Can the admins split the posts regarding range & overflow checking into a new topic? Happy to continue that discussion here if not. ---------------------- EDIT: After playing around with it for a bit, I think the (much!) slower loading time is too much of a cost for the slightly snappier treeview. Clicking into Level Select is done quite a lot, especially for testing purposes, and it gets old quick; I can see why it was set up the way it is (i.e. loading node labels only when actually needed). There may be other opportunities for optimization though; I'll take a look at the VTune diagram and see what's possible. Also, I've learned a ton via this thread, so thank you again!
  16. Yes, that's correct. Instead of allowing me to have all the bugs fixed for version 11, they want me to buy version 11.1, 11.2, 11.3, etc, for the bug fixes. They are surely getting away with it because people are paying them. If those whom used thier service stopped paying them, they might change the way they do business. I was hoping to see a shining light at the end of the tunnel when I read the Amnesty deal, but it was a SCAM to get me to email them for a quote that I could get at any time of the year! They are clearly not sorry for thier business practices.
  17. Stefan Glienke

    Refactoring in Delphi

    At least not if they promote that developer to PM
  18. GetIt is the package manager built into the Delphi IDE. It can be used in Online and Offline mode. If you installed Delphi from an ISO, GetIt was left in Offline mode. That has some drawbacks: GetIt cannot notify you about new updates or patches as they become available. The “Manage Features” functionality of the IDE won’t work. Unfortunately there is no way to switch GetIt to Online mode in the configuration.The usual way is to run the GetItCmd tool with the switch -c (read on in the blog post)
  19. Anders Melander

    How to debug a Not Responding program element

    It sounds like you haven't realized why the overflow occurs. That would have been step 1; Understand the problem before you try to fix it. The problem is that GetTickCount wraps around every 49.7 days. The documentation for GetTickCount would have told you that. If you reboot Windows the problem "goes away" since GetTickCount will start from zero again. When GetTickCount wraps around the start time becomes "later" than the current time so the delta time becomes negative. Since we are operating on Cardinals (an unsigned type) you get an integer overflow error. The solution is one of the following: Use another algorithm Use GetTickCount64 and Int64 Use signed integers and cast the cardinal result to integer. Disable overflow checks locally for that particular code. In this particular case I would probably go for 3 or 4. It should be noted that this isn't really a bug. It only turned into a bug when you enabled overflow checks. You could have solved this problem on your own if you wanted to. It wasn't a difficult one. It might seem easier to ask somebody else for the solution to a problem, and sure it might even solve that particular problem, but what it doesn't do is give you the ability to solve future problems on your own. How do you suppose the "experienced programmers" acquired their knowledge? They didn't get it by asking for solutions. They got it by analyzing, doing research and experimenting.
  20. dummzeuch

    RAD Studio v12.1 Toolbars Wonky Behavior

    Good to know I am not the only one with that kind of setup. And yes, the toolbars are being scrambled on my system too. And I don't even move the IDE between the HighDPI and normal display, it stays on the HighDPI display all the time. That doesn't prevent the problem from occurring though. I have ceated a bug report on this in the new qp (again): IDE toolbars get scrambled over time The toolbars of the IDE lose icons when starting, exiting and restarting the IDE multiple times (see screenshot). This bug had already been reported in the old quality portal for Delphi 11 and 12. It’s still there in Delphi 12.1. Resetting the toolbars to their default using the View → Toolbars → Customize dialog, helps for a while before the same happens again.
  21. Before doing so, the developer needs to get assigned a task for it. This requires the product management to schedule such a task, which itself requires that there actually exists a request for it. If there isn't already one in the issue tracker I suggest to create one.
  22. Yes, this has annoyed me in nearly every Windows program for many years. I often want to highlight something or select a row in a list, then go to a different program and look back at the other program to type something in that is similar or whatever and when I look back, the highlight is gone until I switch focus back to that program. I don't understand why someone thought this was better and designed the OS this way.
  23. Stack Overflow Developers Survey for 2024 is live https://stackoverflow.com/dev-survey/start Let's put Delphi on the map
  24. dummzeuch

    Any chance of getting a signed installer?

    I'm not going to buy a certificate just so I can sign my open source programs. But if anybody else wants to create a signed installer, go ahead. GExperts is open source after all. Just make sure you comply with the license.
  25. Lajos Juhász

    How to debug a Not Responding program element

    Sometimes a logging can help. Log the start and finish of every action you take when the menu is executed (starting loading this / finished, starting that / finished). The part that does not have the finished event in the log is caused the hang.