-
Content Count
2634 -
Joined
-
Last visited
-
Days Won
91
Everything posted by dummzeuch
-
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.
-
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.
-
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?
-
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.
-
Blocking the Windows Screen Saver in Delphi
dummzeuch posted a topic in Tips / Blogs / Tutorials / Videos
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 -
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.
-
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?
-
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.
-
I think this is what you are looking for: https://stackoverflow.com/questions/7649812/get-set-sub-properties-ussing-rtti
-
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.
-
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.
-
Open File expert and Uses Clause Manager don't understand environment variables
dummzeuch replied to merijnb's topic in GExperts
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. -
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.
-
Open File expert and Uses Clause Manager don't understand environment variables
dummzeuch replied to merijnb's topic in GExperts
https://gexperts.dummzeuch.de -
Open File expert and Uses Clause Manager don't understand environment variables
dummzeuch replied to merijnb's topic in GExperts
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. -
TabControl is a TGradientTabSet, not a TTabControl and it does not descend from TTabControl either (Look at the Hierarchy tab in the IDE explorer), so typecasting it to TTabControl won't work. It doesn't have a Tabs property either, so even RTTI won't help you there. I found a TGradientTabSet on https://github.com/RRUZ/Delphi-IDE-Colorizer/blob/master/IDE PlugIn/Galileo/TGradientTabSet.pas. Not sure this is the one used in the IDE, but it's worth a try since this seems to be an IDE plugin.,
-
New feature request: Open dfm as Text if malformed (vote if care)
dummzeuch replied to Tommi Prami's topic in Delphi IDE and APIs
I'm encountering this problem regularly when some component isn't installed in the IDE or is installed but in a different (usually older) version. It would be nice to simply open that dfm as text and be able to make rudimentary changes to it. Most of the time it is enough to remove or change some properties from the dfm to make it load normally. The IDE always offers to delete a property or control, but I don't trust it (and I have reasons for that). Currently I open the dfm in a text editor but that's rather inconvenient. -
I have received a few reports about bugs in GExperts in Delphi 10.4.1 that do not occur in Delphi 10.4. Here is a GExperts DLL that was compiled with Delphi 10.4.1. Maybe it will solve some of theses problems. Read on in the blog post.
-
Since the Visible property is introduced very early in the controls hierarchy, it's more likely to work than the Tabs property. Most likely your "x" is not a TTabControl but something else. Have you checked its ClassName?
-
No, I can't. I don't have any apple hardware to run any tests. See my comment to the ticket:
-
The link I posted goes directly to the page that gives you the description and in turn links to the source code. There is no ready built bpl for it. (And it's not part of GExperts.)
-
Did you try one of the Delphi IDE Explorers? E.g. mine. It might get you better information than Winspector. Multline tabs for the editor window are not possible with Delphi > 7. I don't know about the "new" old style component palette, I never used it.
-
I understood that you wanted to have an additional window that is shown when the CPU window is visible. Another approach would be to extend the CPU window itself, similar to what GExperts does to the Search Path edit window. It could add a panel to the right of the window which contains additional controls that are filled by GExperts.
-
Not sure wether it is doable, we'll never know for sure until we try. As for usefulness: I rarely use the CPU view, so for me it would be of very limited use. For others, I don't know. To sum it up: I have no plans to do this, because I have too much to do for my limited time already. But as always, I will accept patches if somebody wants to try. I will also grant write access to svn if somebody thinks he needs it. So, if you want it: Do it. :-)
-
New Filter Exceptions expert in GExperts
dummzeuch posted a topic in Tips / Blogs / Tutorials / Videos
I my last GExperts related blog post I wrote about the new “Close Exception Notification” expert which I just had added to GExperts. It was a hack that hooked the Exception Notification dialog. This spawned a discussion in the international Delphi Praxis forum and resulted in a rewrite of the expert. It’s now called “Filter Exception” expert and instead of hooking the dialog it directly hooks into the code that shows this dialog. Thus it prevents the dialog from being shown for filtered exceptions. Read on in the blog post.