Jump to content

dummzeuch

Members
  • Content Count

    2634
  • Joined

  • Last visited

  • Days Won

    91

Everything posted by dummzeuch

  1. dummzeuch

    AE BDSLauncher

    The .dproj file contains a version entry which is unique for most Delphi versions (unfortunately not for all of them), see the Delphi Wiki How to find out which Delphi version was used to create a project? (Or you can simple take the source code for that detection from my dzBdsLauncher, assuming that the licenses are compatible.)
  2. dummzeuch

    AE BDSLauncher

    I might have missed it in your post, but for me the most important functionality for such a program would be to detect the correct Delphi version for a given project based on the contents of the dproj file. Of course that only matters if more than one Delphi version is available, and I'm probably an extreme in having all versions from Delphi 6 to 11 (with the exception of Delphi 8 ) installed on the same computer.
  3. dummzeuch

    VM and Legacy apps

    A simple option would be to have "network named user" licenses and run your own license server.
  4. dummzeuch

    VM and Legacy apps

    I rarely use Delphi VMs at all, but those that I do use are running on a Citrix XenServer and must be used via Remote Desktop (or the even slower VNC based remote console of the XenCenter). But my experience with using VirtualBox in general is that Remote Desktop is faster and more convenient than the console. Usually my VirtualBox VMs are run "headless" anyway.
  5. dummzeuch

    VM and Legacy apps

    Try to connect to that virtual machine via Remote Desktop rather than using the console. This might solve some of these problems.
  6. dummzeuch

    No GExperts formatter on Windows 11 with elevated IDE

    Under some circumstances that I never could figure out, sometimes some keyboard shortcuts get lost. Usually opening the config dialog and exiting it with OK will fix that. But apparently you had already tried that. No idea what could cause this odd behaviour in elevated mode. Did you try the same shortcut for a different expert? Did it work in that case? Please file a bug report on SourceForge giving as much detail as possible, including how you start Delphi in elevated mode.
  7. Papier ist geduldig (literally: "paper is patient", possibly better: "Paper doesn't blush") or rather in this case it's the electrons or magnetic particles that are.
  8. dummzeuch

    Open AI Chat

    The Golem has finally become reality. Not.
  9. dummzeuch

    Open AI Chat

    No, the AI will simply wait until mankind has forgotten how to write software and then turn itself off.
  10. dummzeuch

    Added a menu item to Grep Search Results

    The best way to suggest new features (or report bugs), optionally with a patch, is writing a feature request (or bug report) on SourceForge. Anything I get by email, in this the forum, via Twitter or whatever other obscure communication channel might get lost due to me forgetting about it. Odd that the SourceForge email does not work. It used to work at some time and I haven't changed anyting.
  11. dummzeuch

    Added a menu item to Grep Search Results

    Thanks. Did you also file a feature request on SourceForge?
  12. dummzeuch

    Find usage of indexed default property

    There are probably tools for that. (Pascal Analyzer comes to mind, but I am not sure whether it does what you want. They have a free version, so you can check.) This sounds like it might be what you want: https://www.peganza.com/PALHelp/index.html?identifiers_report.htm
  13. dummzeuch

    Find usage of indexed default property

    You could rename or comment out that property and let the compiler find all the errors.
  14. dummzeuch

    Regex help please..

    Does that validate Thomas.Müller-Lüdenscheid+privat@abslutseriös.de ? And also the Punycode version of it?
  15. From the OLH of System.Generics.Collections.TList.BinarySearch: Is there another method / function in the RTL which does binary search on TList<T> but is guaranteed to return the match with the lowest index? (IndexOf returns it but does a linear search). Or do I really have to implement that myself? (I'm trying to be more specific with my question this time, but just in case: I'm not looking for code that does this but an existing function / method or maybe a different class / generic in the RTL which I may have overlooked.)
  16. OK, so there are two bugs: the documentation is (and has always been) wrong. the implementation in Delphi 11 was "verschlimmbessert" (made worse by trying to improve it). The function BinarySearch should have been called differently (yes, off by one) Goes to show that I should simply have done what I did while the quality of the docs was even worse than it is today: Look at the sources.
  17. Strangely enough, TStringList.Find uses (and has been using for decades) a modified binary search algorithm that always returns the first matching item if Duplicates = dupAccept and which does not have such a repeat loop. But the documentation does not mention that.
  18. Interesting: I just googled for "lower bound binary search" pascal and the first hit is Stefan's message in this topic. Now that's fast indexing.
  19. Yes, that seems to be what that repeat loop does.
  20. No, it doesn't. The function still returns the index of an item that matches the search criteria. Which one it actually returns is just an implementation detail.
  21. OK, so it depends on the Delphi version. 😞 I can confirm that the change was introduced sometime after Delphi 10.2 because there the repeat loop is missing from TArray<T>.BinarySearch. I wonder why they changed BinarySearch rather than introducing an additional method. That change impacts performance after all, even if only marginally.
  22. I have tried to ask the question as precisely as possible to avoid people posting code and making suggestions on how to implement that functionality when all I want to know is if I was missing something that's already in the RTL. Yes, I know that. I was asking for a function / method that "uses binary search" in contrast to e.g. linear search, not "that only uses binary search".
  23. dummzeuch

    How to open a file in the already running IDE?

    That was actually one of the points for this tool: To open a project in a new instance of the IDE rather than in an existing one. For me that latter has always been an annoying anti feature. I was under the impression that Delphi's BdsLauncher simply was a wrapper that can be called with the file to open as a parameter which then would check whether bds.exe was already running and either start it or pass the file name to it to open it. But that doesn't seem to be the case. As @Fr0sT.Brutal already wrote: According to the registry entries it is DDE.
  24. dummzeuch

    View program flow and calls to help understand code?

    When I looked at the source code of the Delphi Code Coverage tool some time ago I thought that it could be used to do exactly this: Create a trace of the code execution. It doesn't do that out of the box but it should be possible to use the source code as the base for such a tool. Background: Delphi Code Coverage starts the executable as a debugger. It analyses the map file to create breakpoints for each executable line and then runs the program until it finishes. During that time it logs any callback it receives from Windows when a breakpoint is being hit. That data is later used to generate an overview of the source lines that were actually executed. If that sounds like it could be used to generate a trace, that's exactly my thought. I would love to give it a try but I doubt that I will find the time.
  25. If I want to get the topmost element of a stack (System.Generics.Collections.TStack<T>), without removing it, I use TStack<T>.Peek. Is there any way to get the second to topmost element? I looked at the sources and found none, so the only way I could come up with is: TopElement := MyStack.Pop; SecondElement := MyStack.Peek; // <== I want this one MyStack.Push(TopElement); if SecondElement = SearchedForElement then begin // ... end; Alternatively I would settle for a way to check whether the stack contains a given element: if MyStack.Contains(SearchedForElement) then begin // ... end; But there doesn't seem to be such a method either. Is there maybe a different container for that?
×