-
Content Count
2857 -
Joined
-
Last visited
-
Days Won
101
Everything posted by dummzeuch
-
I have installed it on 8.1 too (and another installation on Windows 10). But since 4.1 isn't stable enough for me to use it in every day work, I can't really say whether there are any Win 8.1 specific issues.
-
PortableAppsToStartMenu 1.0.0
dummzeuch replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
The version.res file is generated by the prebuild script (when it works). -
PortableAppsToStartMenu 1.0.0
dummzeuch replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
The space character in the path might cause this. -
this regex function gets unexpected results at some cases
dummzeuch replied to Skullcode's topic in VCL
The regex you posted here got mixed up by the editor/browser. There is no way we can help you based on that code. Do as @FredS suggests: Use a tool to try this regex. -
PortableAppsToStartMenu 1.0.0
dummzeuch replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
You don't need to run any batch file, but you must be sure to check out the sources including the externals, in this case dzlib and buildtools. The pre- and post-build scripts need buildtools. Oh, yes, I forgot to implement that button. I never use it and prefer drag and drop or autocomplete. I just added it out of habit. (Hm, why is this text larger now? Sometimes the mobile interface does strange things.) -
I think the problem with the Menu Shortcuts expert is, that it only changes the shortcut for the menu item, not that for the associated action. I guess I'll have to look into this a bit further. @Carlos Tré It's odd that changing the action's shortcut does not change the shortcut of the popup menu entry. They both use an action with the same name. Maybe these are two different actions? Not impossible given the mess some of the IDE modules present.
-
The ToolsApi unit declares the IOTAProcess interface as follows: IOTAProcess = interface(IOTAProcess150) ['{FBECB2A2-80BF-400D-B4A6-0BCEABC2FF7D}'] { Read the process memory at the given address } function ReadProcessMemory(Address: TOTAAddress; Count: Integer; var Buffer): Integer; overload; { Write to the process memory at the given address } function WriteProcessMemory(Address: TOTAAddress; Count: Integer; var Buffer): Integer; overload; Unfortunately it does not say what the function results mean, and I haven't seen any code that checks that result. My assumption from the values I have seen is that these functions return the number of bytes read / written, but is that true? Is it documented anywhere?
-
Apparently the new experimental Filter Exception expert does not work when debugging IOS or Android apps (and probably also not for Linux programs). There is a bug report on the Embarcadero Quality Portal on crashes when debugging IOS apps. Uninstalling GExperts or disabling the Filter Exception expert solves that issue. Does anybody have similar experiences with other platforms? I had a look at the code again and figured that the problem might be that it hooks/calls TNativeDebugger methods in win32debugide*.bpl. Maybe it should instead call one of the other *debugide* packages: gdbdebugide (Linux)? ios32debugide ios64debugide But on the other hand I don't really care because I don't do any development for anything but Win32 (and possibly Win64 in the future). So I am thinking about disabling the expert when a project for non windows platforms is active instead. It should definitely not crash the IDE.
-
IOTAProcess.ReadProcessMemory / .WriteProcessMemory
dummzeuch replied to dummzeuch's topic in Delphi IDE and APIs
The WinApi functions return a BOOL, not a number. They have an additional parameter for that: BOOL ReadProcessMemory( HANDLE hProcess, LPCVOID lpBaseAddress, LPVOID lpBuffer, SIZE_T nSize, SIZE_T *lpNumberOfBytesRead ); -
Yes, if they are in the current context. That should be no problem with constants declared in the system unit, but for other constants that might not be the case. Hm, thinking about it: I wonder whether this is still true for parts of the IDE that are not written in Delphi...
-
You are right. It's there in Delphi 10.4. I was looking in Delphi 10.2, where it isn't^D^D^D^D^Dis also right there in that same menu. But: Even in Delphi 10.4, if I remove the shortcut from the main menu entry with GExperts, it still gets shown in the editor's popup menu. And pressing Ctrl+D still calls the formatter.
-
I now read those vmt offset values from the debugger using IOTAThread.Evaluate. Works fine for Win32 and Win64. Can't test other targets.
-
That was my first thought too, but unfortunately there is no main menu entry for it, and GExperts only supports man menu entries to assign keyboard shortcuts.
-
I need the values for the constants vmtArcOffset and CPP_ABI_ADJUST (declared in the System unit) for various platforms. I know them for Win32 (both 0) Win64 (0 and 24 = 3*SizeOf(Pointer64)) Android32 (0 and 12 = 3*SizeOf(Pointer32)) Android64 (0 and 24 = 3*SizeOf(Pointer64)) IOS64 (0 and 24 = 3*SizeOf(Pointer64)) OSX64 (0 and 24 = 3*SizeOf(Pointer64)) Could somebody who develops for other platforms please look them up and tell me? IOS32 OSX32 Linux I'm not sure about the vmtArcOffset and how it changed for different platforms when Embarcadero introduced and when they later dropped ARC support. the automatic reference counting ARC support supposedly sets vmtArcOffset = 2 * SizeOf(Pointer).
-
Values for vmtArcOffset and CPP_ABI_ADJUST
dummzeuch replied to dummzeuch's topic in RTL and Delphi Object Pascal
I found an easier solution: I'm now using IOTAThread.Evaluate to get the values of these constants (actually I needed vmtParent and vmtClassName which I originally wanted to calculate like the RTL does). Seems to work and doesn't even require me to know the target platform. -
Values for vmtArcOffset and CPP_ABI_ADJUST
dummzeuch replied to dummzeuch's topic in RTL and Delphi Object Pascal
Yes, I know, that's where I got those constant names from, but I don't know for which platform which symbol is defined. -
Hm, yes, there is that. Very odd that it works at all. This function is only used in the testing code but that code is always enabled, so it should raise that exception.... Unless GetExceptionObject returns 0.
-
Thanks a lot for testing this. It's good to see that it works for most platforms. Could you please double check this again? Also for IOS? If it is a Delphi issue, you should probably file a bug report with Embarcadero (in this case, make sure to disable GExperts completely (not just the Filter Exception expert) to ensure that it doesn't interfere with the debugging in any other way.) If it turns out to only happen in the Filter Exceptions expert, I'd like to know that. There are other tests which I would like you to try, if you like: Raise a different exception (so I can see whether the name is determined correctly. Raise an OS exception, e.g. division by zero or access violation.
-
Performance issues running Delphi Applications on Windows VM
dummzeuch replied to costa's topic in Tips / Blogs / Tutorials / Videos
From the screenshots I gather that both these programs have a lot of custom drawn stuff in the interface. Comparing them to the very simple configuration dialog of Notepad++ is a bit unfair. JRM seems to be an FMX program, I have no experience with that. From what I hear about FMX it should be fast on modern graphics hardware, but what about virtualized graphics hardware? I assume you have already installed the VMWare tools in that VM? If I remember correctly graphics output is very slow without them. Another option would be to connect to the VM via Remote Desktop which might be faster than the emulated graphics of the VM. Did you try to contact the vendors of these tools? Without knowing more about how they work, it's very difficult to guess what the problem might be. TDM looks pricey to me (vendors that ask you to contact sales to get a quote always are), so they should provide support to their customers. JRM in contrast seems to be a one man show, which may even increase your chances to get help, but he might not have the resources to actually test that case. -
function reference feature for Delphi source code
dummzeuch replied to Nasreddine's topic in GExperts
Which does not support C++, which the OP seems to be interested in mostly. -
Ctrl+D is listed in the GExperts Keyboard Shortcuts expert as assigned to the action actFormatSource, so it's not an editor key binding but simply an action. And that means it's just a matter of finding that action and changing its keyboard shortcut to whatever you like. And the IDE is even helpful with an NTA (native tools api) call for this: function TGxActionBroker.GetIdeActionList: TCustomActionList; var NTAServices: INTAServices; begin Assert(Assigned(BorlandIDEServices)); NTAServices := BorlandIDEServices as INTAServices; Assert(Assigned(NTAServices)); Result := NTAServices.ActionList; Assert(Assigned(Result)); end; I leave the rest (enumerating the list and change the shortcut of the action as an exercise to the reader. 😉
-
function reference feature for Delphi source code
dummzeuch replied to Nasreddine's topic in GExperts
GExperts does not paint into the editor window and that's not easy to implement (CnWizards does it though). Also, Grep only searches for strings / regular expressions, it knows nothing about context, so it would be wrong for non unique identifiers, so this would be of very limited use. Feel free to try it though. I'll accept a patch. Maybe there are other tools that already implement this, but I know of none. Isn't there anything like the Find -> Find References functionality in the IDE for C++ code? It usually works fine for me for Delphi code. -
Having fun with Delphi
dummzeuch replied to Attila Kovacs's topic in Algorithms, Data Structures and Class Design
Now that's a cool idea. I'm going to rewrite my FileFilterBuilder which currently is class / interface based in this way. Thanks a lot. -
Using Delphi in Virtual machine for a month
dummzeuch replied to Mike Torrettinni's topic in Tips / Blogs / Tutorials / Videos
You said yourself that this is about a different issue. You should open a new topic for it. -
How secure is your WordPress installation?
dummzeuch posted a topic in Tips / Blogs / Tutorials / Videos
I have been using WordPress for this blog for several years and always thought my setup was reasonably secure. Turns out that there is something called the WordPress REST API which allows to get quite a lot information about the installation without any security at all. Read on in the blog post.