-
Content Count
2857 -
Joined
-
Last visited
-
Days Won
101
Everything posted by dummzeuch
-
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. -
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. -
Sorry, my fault, it's not the exception address (the one where it occurred) but the address which caused the exception.
-
I tried your code too, but it didn't work (Delphi 10.2.3) The ExceptionAddress was always 0. I'll go with Mahdi Safsafi's code. That worked, for 64 bits as well as 32 bits. But thanks anyway. Every hint is appreciated.
-
This does work, thanks a lot. Now I only need a readable way to add this to the code...
-
Thanks for the hints @Mahdi Safsafi and @Kas Ob.. I got it to display the exception address so far and changed the exception name to EAccessViolation. It's too late in the evening to get more work done, but I'll try to get the rest of the information too. It works for the Win32 only IDEs so far, but FDebugEvent is not available for later IDEs, so I need a different way to get the ExceptionInformation array contents for those. Of course the same applies to other hardware exceptions.
-
You have a point there. I just reverted my change with the constants and added them as comments only.
-
I might have fixed this in the current sources. But since I have never seen this problem, I can't test it. If it works, the fix was to set StyleElements to [] to the form and all components, so the form doesn't get partially themed. This looked ugly anyway and caused some drawing problems on top of that. If you think that's an eye sore, you are probably right, but I prefer the form to work over having it look "pretty".
-
The problem(s) should now be fixed. @Stefan Glienke
-
@Stefan Glienke
-
Thanks for that. One question that I wanted to ask for a while: What do those "magic numbers" mean: $0EEDFAE6 $0EEDFAE4 $0EEDFADE I googled them and found that the last two are declared as constants in system.pas: const cNonDelphiException = $0EEDFAE4; cDelphiException = $0EEDFADE; Oddly enough the first one does not occur in system.pas, Google found it only once (Warning: This URL might not be save! It should go to a file TXLib.h which is part of "TX Library is a tiny 2D graphics library for MS Windows written in C++. This is a small sandbox for the very beginners to help them to learn basic programming principles. The documentation is in Russian." Copyright: (C) Ded (Ilya Dedinsky, http://txlib.ru) <mail@txlib.ru>" but the repository on Sourceforge to which txlib.ru links contains a different TXLib.h file.) #define EXCEPTION_CPP_BORLAND_BUILDER 0x0EEDFAE6 // Should never occur here <<<--- here #define EXCEPTION_CPP_BORLAND_DELPHI 0x0EEDFADE // Should never occur here So I guess $0EEDFAE6 is an exception number that Delphi / C++ Builder use internally. Am I right? So I could declare them as constants for readability: const cNonDelphiException = $0EEDFAE4; cCppBuilderException = $0EEDFAE6; cDelphiException = $0EEDFADE;
-
That's because I haven't decided yet how to use this information. I definitely want to.
-
Thanks that seems to fix the problem. Unfortunately when debugging GExperts itself, this still throws the exception Stefan mentioned. Apparently that's by design: The problem you see with Win64 is caused by the fix. Otherwise this would result in Project GExpertsRS102.exe raised exception class EDbkError with message 'Debug process not initialized'. in the call: Process.ReadProcessMemory(Address, SizeOf(Result), Result); No idea yet, how to solve this.