Jump to content

dummzeuch

Members
  • Content Count

    2977
  • Joined

  • Last visited

  • Days Won

    106

Everything posted by dummzeuch

  1. dummzeuch

    Indy package names

    OK, what it boils down to is this: It's a legacy from before Delphi 6 when the LIBSUFFIX feature was introduced. And it took even longer before it was widely used. You are the only developer left, as as happened many Delphi open source projects, and there are just too many things that compete about your time. Other libraries have ignored this too (I specifically mentioned in my blog post that TeeChart does that too, but of course there is also the jcl and jvcl.) It's planned for Indy11. I hereby apologize for using the word "sloppy" in my blog post. I had just spent several hours trying to figure out what the problem was and was quite a bit frustrated. What I don't understand is this: Why should you care whether Embarcadero "is open" to such a breaking change? They are the ones who profit from your work, not the other way around. On the contrary, I would expect them to provide you with some help here. (But my guess is that they only want to make the library work with the latest Delphi version and would love to to drop compatibility to older versions. This has happened to other libraries too.)
  2. I have just uploaded a beta version of GExperts 1.3.12 for Delphi 10.3 Rio. NOTE: This is a BETA! Beware of bugs, e.g. the Goto-Dialog enhancements cause redraw problems if theming is enabled, the Run Parameters dialog enhancements (drag and drop for files and directories) don’t work at all. https://blog.dummzeuch.de/2018/11/25/gexperts-1-3-12-beta-for-delphi-10-3-rio-available/
  3. dummzeuch

    GExperts 1.3.12 beta for Delphi 10.3 Rio available

    Also fixed the problem reported by David Hoyle by hooking the popup menu's OnPopup event. Apparently every other plugin has done the same by now, if only I had googled for "ecSwapCppHdrFiles" before reinventing the wheel. 😞 But my solution is better: It does not add entries for the breakpoints popup menu. 🙂
  4. dummzeuch

    RadioGroup layout

    SpeedButtons have the drawback that you can't select and press them with the keyboard. I wrote a hack for simulating SpeedButtons with BitButtons which gets around this limitation. But on the other hand, if you have a keyboard, you could simply press the appropriate key rather than fiddling with the mouse....
  5. Mahdi Safsafi has proposed a fix for the bug in the GExperts Filter Exceptions expert, which occurs when developing for non Windows targets (first reported on Embarcadero’s quality portal ). I have implemented this fix and it doesn’t have any adverse effects on for Windows targets. But neither he nor I can test it for non Windows targets since we don’t develop for these. That means we need testers. If you want to help, please post a comment here or to the bug report, or contact me via private message.
  6. As I wrote above: So, depending on your Delphi version this may still work, but it won't in the later version(s).
  7. dummzeuch

    Grep search empty window with 10.4.1

    A fix, or rather workaround was to set the main panel's visibility to False and then True again in the FormShow event. fixed in revision #3312 At least I hope so.
  8. dummzeuch

    Grep search empty window with 10.4.1

    Heureka, I finally managed to see this effect on my own computer, and even managed to reproduce it reliably (at least 3 times in a row): Steps: undock the Grep Results window and save the desktop do some Grep search (may not be necessary) Open a different project (the Grep Results window disappears) Open the Grep Results Window -> It's empty, just as described When I dock and undock it, the content comes back. After that I can not reproduce it until I restart the IDE. Then the steps detailed above reproduce the effect. No I idea yet, what causes this, but now I should be able to debug it.
  9. You cannot access private fields of a class declared in a different unit. [Period] That is, if you play by the rules. There are various ways to still achieve that, but each of them relies on either some compiler quirk (e.g. class helpers could access private fields in some Delphi versions, but that loophole has been closed) or directly use the knowledge about the memory layout of the original class. The latter is done either with pointer arithmetic or by declaring a new class with the same fields and hard typecasting an instance to that class, which then allows accessing the private fields. Of course that would mean this class or pointer arithmetic must be adapted to every change that Embarcadero makes to the original, so the memory layout matches.
  10. dummzeuch

    Unit scope names in IDE - possible 2+ lines?

    Up to Delphi 7 it was easily possible to switch the editor tabs to multline, but with the "new" IDE there is no simple way to achieve that and nobody has yet thought of a complex way and implemented it. It would probably be possible to hack the edit window and insert a TTabSet, if one were so inclined, but I think Ctrl+F12 is much more useful than multiline tabs.
  11. dummzeuch

    Per monitor DPI awareness - how to prevent flickering?

    Hm, the use of LockWindowUpdate is strongly discouraged by Microsoft: Some gotchas of LockWindowUpdate: What does LockWindowUpdate do? And even worse, this describes exactly your use case: With what operations is LockWindowUpdate not meant to be used? Some remarks on WM_SETREDRAW here: The Unfortunate Effect of WM_SETREDRAW No idea whether these still apply, the blog post is from 2011.
  12. dummzeuch

    Registering GExperts after a build??

    If you overwrite the DLL when building it, you don't need to register it, the IDE will load the new DLL the next time it starts. If you build it to a different directory, you can still copy/move it and overwrite the original one, which again won't require a new registration. Only if you want to use the new DLL in a different directory, you will need to unregister the old one(!) and register the new one.
  13. dummzeuch

    GLAD loader for Delphi

    None at all. I don't expect anybody to put any effort into whatever, unless they are really interested. I have been proved right with that many times. I have spent lots of time trying to write good documentation, comments or bug reports. Some people do read it, but many simply don't and start asking questions that have already been answered. So why bother writing it?
  14. dummzeuch

    Recomended Translation API

    If you start from scratch, consider using DeepL. Their translations are usually much better than Google or Microsoft. I don't know about their API though, I only ever used the web interface.
  15. Sometimes your program needs to block the screen saver from automatically kicking in. My use case was that the program was recording data and whenever the screen saver was active, the data was lost (No idea why, it probably had something to do with the way HID is implemented in Windows.) So I was looking for a way to fix that without forcing the user to turn off the screen saver. The methods that used to work under Windows XP no longer work in Windows 7 and later (I don’t care about Vista), so I googled and found this question on StackOverflow. The Windows API functions PowerCreateRequest + PowerSetRequest mentioned in the highest voted answer looked promising. Unfortunately they don’t seem bo be available in Delphi read on in my blog post
  16. dummzeuch

    Filter Exceptions expert and IOS / Android apps

    Thanks, this could solve the problem, but as I said: I cannot test it. I need some volunteers to test this. Any takers? It's just a matter of creating a simple Android, Linux, OSX or IOS application respectively that raises an exception and see what happens. If Mahdi's fix works this will simply display the filter exception dialog, if not, it will crash the IDE. That's simple to distinguish. 😉 I just tried to create a simple Android app to run in the emulator, only to discover that apparently the emulator is no longer supported for debugging. So, that leaves me with trying to install all the stuff necessary to debug on a real device or not give a damn.
  17. dummzeuch

    More performance Stringgrid sorting algorithm help

    That's Bubble Sort you are using, which is not renowned for speed but mostly for the funny name. Maybe it would help to use something faster?
  18. dummzeuch

    GLAD loader for Delphi

    I would agree, if this were a commercial library. But this is an open source project, apparently maintained by a single person. You can, of course, expect what you want, but nobody is obliged to care. You should have formulated it as a suggestion rather than a demand. Writing documentation is usually less fun than coding and requires a different skill set, so most programmers expect to be paid for it as a compensation. In open source projects there usually is nobody who can pay them, so the documentation is lacking.
  19. dummzeuch

    On IDE cannot get TABS

    I think this is what you are looking for: https://stackoverflow.com/questions/7649812/get-set-sub-properties-ussing-rtti
  20. dummzeuch

    On IDE cannot get TABS

    Have a look at the code in "IDE PlugIn\Colorizer.Hooks.IDE.pas", "IDE PlugIn\Colorizer.Hooks.pas" and "IDE PlugIn\Colorizer.Wrappers.pas". These seem to be the places where the plugin hooks into the TGradientTabSet code of the IDE. I just grepped for "TGradientTabSet", I didn't try to understand any of the code, so don't ask me how it works, I don't know.
  21. dummzeuch

    On IDE cannot get TABS

    Yeah, that's odd. I wonder where this declaration comes from. There are other classes there as well, that are naked declarations. Maybe looking at the project as a whole would give some clues. For a start I would remove all property and method declarations, typecast to this type and try to access the fields to see if that results in plausible values. If they do, it's possible to call the virtual methods through the VMT. But that's definitely out of my league.
  22. That one only applies to the map file. Of course, the same code should probably also work for the search path. It's just not called.
  23. dummzeuch

    "Self-updating" terminal services DLL

    It should be possible to rename a DLL while it is being used and replace it with a new one. I do this all the time in the pre build script of GExperts. This of course requires the rights move the file in the first place.
  24. Thanks, I was just about to ask you to do that. I'm sure there are other places where support for environment variables would be convenient. I'll have a look when I find the time.
×