-
Content Count
2857 -
Joined
-
Last visited
-
Days Won
101
Everything posted by dummzeuch
-
Definitely the way to go. Trying to clean up an infected system is way more dangerous than rebuilding from scratch. And you could never be certain you removed everything.
-
Do you mean you had your Windows computer directly connected to the internet and RDP activated? In my eyes that's disaster waiting to happen. There apparently is a big market for RDP addressee and accounts and they are even cheap (Heise online had an article on that today (in. German).)
-
Why do you use .pas as the file extension? I have never seen anything else but .inc for include files (OK, there is also .tpl but that's a very special case) Regarding the use of the search path: The IDE uses it for include files and also in the given order. But beware: It also uses the library search path configured in Tools -> Options. (And there is a very outdated jedi.inc file in some (or all?) Delphi installations. I don't exactly remember where because I deleted it when I stumbled upon it.)
-
System.GetMemory returning NIL
dummzeuch replied to dummzeuch's topic in RTL and Delphi Object Pascal
I have now switched to GetMem. -
System.GetMemory returning NIL
dummzeuch replied to dummzeuch's topic in RTL and Delphi Object Pascal
Because according to the OLH there is no functional difference between GetMem and GetMemory, so I thought I had free choice. And I prefer a function over a procedure when a single value is returned. It makes the code easier to read. -
System.GetMemory returning NIL
dummzeuch replied to dummzeuch's topic in RTL and Delphi Object Pascal
Why not? FastMM should be able to handle that and the overhead should be negligible, since I am not calling it too often. In case you are wondering what I need those memory blocks for: It's a buffer for receiving pictures from a camera which are 5120x1168 pixels in BayerRG10 format. That format uses 6 bytes per pixel. The camera sends 30 pictures per second, so I played is safe and allocated "enough" buffers to last for more than 1.5 seconds. I am still experimenting with the GenICam interface. I didn't think about the required memory, I have to admit, That's what EOutOfMemory is for. 😉 -
System.GetMemory returning NIL
dummzeuch replied to dummzeuch's topic in RTL and Delphi Object Pascal
So, what I'm missing is, that the help is wrong: _GetMem calls MemoryManager.GetMemory, checks for NIL and raises EOutOfMemory. System.GetMem simply calls MemoryManager.GetMemory. (That's Delphi 10.2.3) Great! 😞 Now I have to go through the whole program and change the code to either call GetMem or check the result. -
I'm just suggesting things to check. What do you mean by "the second Delphi"? Just to make sure You have got two instances of the IDE running: The instance you used to compile and run your expert, which I would call "the first instance". That's the one that is doing the debugging. The instance you started as the host application for your expert, which I would call "the second instance". You should place breakpoints and look at the source code in the first instance. You must always be sure that the expert loaded in the second instance is the one you just compiled. Ideally the expert should not be loaded at all in the first instance. If it's a package based expert that's easy to do by only manually installing the package in the second instance. For dll base experts it's more complicated. For GExperts I am using a pre-build script that renames the existing DLL GExpertsXX.dll to GexpertsXX.dll~ so the second instance will always load the new dll while the first instance will keep on using the old one. Also: Always make sure you are building in debug mode. If you simply compile, some or your units may still be compiled without debug information. As I said: I'm trying to suggest what to check. You probably have done some of it already.
-
Are you sure you run the project with debugging? One of the first things I always do in fresh install, is removing that "run without debugging" button from the toolbar, because I keep clicking it accidentally.
-
Those startup errors are normal. It's the IDE that uses these sockets for internal purposes. I also get a few errors for accessing the license file. (That's mostly the reason I added the Filter Exception expert.)
-
Why should I use good source control versioning system?
dummzeuch replied to Mike Torrettinni's topic in Tips / Blogs / Tutorials / Videos
I'm not quite sure and can't look it up right now, but if that's the project i tried, it's for an older version and is dangerous to use with the later ones: Because of changes to the command line parameters, it will overwrite your changes if not fixed! I wrote a fix back then, be should also be on GitHub, but that was a long time ago and I lost interest in it too, so I can't guarantee that it will still work. EDIT: Yes it's the one. Here is the bug report: https://github.com/andremussche/SemanticMergeDelphi/issues/4 And here is my fix: https://github.com/dummzeuch/pas2yaml I also suggested to the developers of SemanticMerge to have an API version number passed to the filters so these can determine whether they support it or not. No idea whether they adopted this, I lost interest since Beyond Compare does most of what I need and I already have a license of it. -
Hold the mouse over the profile picture of the person you want to ignore. You will get additional information on him/her. On that panel there is a "Ignore User" button.
-
Install my Delphi IDE Explorer and have a look around. You will find plenty that does not have a purpose (any more). And if this panel annoys you so much, write yourself a plugin that hides it.
-
Did you know that this is possible: type TImageConvertOuputConfigEnum = ( IMAGE_CONVERT_OUTPUT_CONFIG_IMAGE_ID = $02, //(1 << 1), //**< output pixels points to a ImageId */ IMAGE_CONVERT_OUTPUT_CONFIG_O0 = $04, //(1 << 2), //**< disable CPU optimizations such as SSSE3 */ IMAGE_CONVERT_OUTPUT_CONFIG_BAYER_METHOD_1 = $10, //(1 << 4), //**< select bayer decoding method 1 (3x3 interpolation, a.k.a. legacy method) */ IMAGE_CONVERT_OUTPUT_CONFIG_BAYER_METHOD_2 = $20, //(2 << 4), //**< select bayer decoding method 2 (3x3 median-based interpolation, a.k.a. advanced method) */ IMAGE_CONVERT_OUTPUT_CONFIG_BAYER_METHOD_3 = $30, //(3 << 4), //**< select bayer decoding method 3 (5x5 gradient-based interpolation) */ IMAGE_CONVERT_OUTPUT_CONFIG_DEFAULT = IMAGE_CONVERT_OUTPUT_CONFIG_BAYER_METHOD_1, IMAGE_CONVERT_OUTPUT_CONFIG_BAYER_ADVANCED = IMAGE_CONVERT_OUTPUT_CONFIG_BAYER_METHOD_2 ); This is a translation of a C header file. I only now noticed that the enum contains duplicate values which I until now thought was impossible. IMAGE_CONVERT_OUTPUT_CONFIG_DEFAULT is a duplicate of IMAGE_CONVERT_OUTPUT_CONFIG_BAYER_METHOD_1, both having the ordinal value $10, and IMAGE_CONVERT_OUTPUT_CONFIG_BAYER_ADVANCED is a duplicate of IMAGE_CONVERT_OUTPUT_CONFIG_BAYER_METHOD_2, both having the ordinal value $20. The Tokyo Docwiki actually has such an example: It compiles with Delphi 2007 so it must have been possible for a long time. "Man wird alt wie 'ne Kuh und lernt immernoch dazu." -- my mother
-
When can Class.Create fail?
dummzeuch replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
He was talking about the destructor, not the constructor. It's very unlikely that a destructor runs into an out of memory condition. Yes it can happen, but usually it's the constructor that fails due to it, not the destructor. -
When can Class.Create fail?
dummzeuch replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
Just one remark here: If the constructor raises an exception, the destructor will be called automatically. You must always be aware that the destructor might run on an only partially initialized instance. -
Filtering and sorting for the GExperts PE Information Exports list
dummzeuch posted a topic in Tips / Blogs / Tutorials / Videos
The GExperts PE Information tool just got a small improvement: The Exports list can now be sorted by clicking on the column header and filtered on the export name by simply typing text. Read on in the blog post. -
ICS v8.64 can't compile on Delphi 7
dummzeuch replied to Kyle_Katarn's topic in ICS - Internet Component Suite
I tend to use jedi.inc, which is pretty comprehensive, but I still had to extend it for various compiler specific problems. Lately I have switched from using {$ifdef} to {$if declared() }when it comes to checking if a type or function is already available or has to be implemented in one of my units. But in y not sure I really like that, because it becomes harder to read. -
GExperts supports even more laziness I got into programming because I am lazy, I’d rather have the computer do the boring work than doing it myself. So it’s no wonder that I always liked Delphi and GExperts because both support my laziness. Today I added yet another feature to save me a key stroke or mouse click: The “Close Exception Notification” expert. You probably have encountered those libraries that always raise the same exception class on errors, or even worse, raise the generic Exception class instead of bothering to declare their own. And if I should guess, you have probably been guilty of doing that yourself (as I definitely have). Why is that a problem, you ask? Because you can’t easily ignore these exceptions during debugging. You always get this “Debugger Exception Notification” dialog, have to read it and decide whether you want to break and look at the code or ignore the exception. Read on in the blog post.
-
GExperts supports even more laziness
dummzeuch replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
As the page says: 😉 -
GExperts supports even more laziness
dummzeuch replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
How to compile GExperts -
Please file a bug report on SourceForge for this.
-
question about GPL and Delphi
dummzeuch replied to RDP1974's topic in Tips / Blogs / Tutorials / Videos
Contrary to popular belief, the GPL does not require you to open source your code. You must only give the source to everybody who you give the binaries. But you must not place any restrictions on how that source code can be used by these people / companies. So: It's absolutely OK to use GPL code for internally used programs, as long as these programs stay within the company. (But try to explain that to management...) But if you sell your program or make it available in any other way, you will have to include the source code, not just of your own code but also of all components, which obviously is not possible, unless these components are also open source with a GPL compatible license. Btw: You don't have to put that source code under the GPL, you only need to make it available without any restrictions. So anybody else can use it, even in a GPL program. This applies for statically linking the source code, a lib / obj file or even a DLL. If I remember correctly it does not apply if your program can load a DLL on demand for some special functionality. In that case you might get away with including only some of your source code that is used for that special functionality. It does not apply at all if you call an external executable. There are no restrictions in that case. -
Remove/disable .NET personality from RAD Studio 2007
dummzeuch posted a topic in Delphi IDE and APIs
I apparently made a mistake while installing RAD Studio 2007 (some time ago) on on PC which now results in the license manager complaining about a missing license for the .NET personality. I can simply skip that wich clicking the correct buttons on several dialogs, but I would really like to get rid of these dialogs since haveing to click those buttons on every IDE start gets tiresome fast. Is there a way to uninstall / disable the .NET personality without reinstalling the whole thing or losing the updates I have already installed? I looked into the registry but could not find anything obvious. -
Remove/disable .NET personality from RAD Studio 2007
dummzeuch replied to dummzeuch's topic in Delphi IDE and APIs
Thanks to @Arnaud Bouchez I just now remembered one of my other Delphi tools: The KnownIdePackagesManager I used that to disabled two packages: Delphi for .NET IDE Personality VCL for .NET designer IDE Package (it's probably not necessary to disable this) That did it. No more prompting for the .NET license.