-
Content Count
3586 -
Joined
-
Last visited
-
Days Won
176
Everything posted by David Heffernan
-
System.GetMemory returning NIL
David Heffernan replied to dummzeuch's topic in RTL and Delphi Object Pascal
Premature optimisation -
Is interposer class really best to customize TPanel.Paint?
David Heffernan replied to Mike Torrettinni's topic in VCL
Yes, that's what I envisage -
System.GetMemory returning NIL
David Heffernan replied to dummzeuch's topic in RTL and Delphi Object Pascal
Can't understand why you aren't calling GetMem. -
Is interposer class really best to customize TPanel.Paint?
David Heffernan replied to Mike Torrettinni's topic in VCL
Another option is to use a layered window to add the additional painting. This is very flexible, not limited to panels, doesn't require any changes to the implementation of the controls. -
When can Class.Create fail?
David Heffernan replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
Two things can happen 1. The constructor succeeds and returns a valid object reference. 2. An exception is raised, propagates out of the constructor, and the assignment never happens. -
When can Class.Create fail?
David Heffernan replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
The try finally here isn't protecting the execution of the constructor. It protects against exceptions in the code that runs after the constructor completes, after the try. Look at the code in your post. The try finally is not active when the constructor runs. If an exception is raised in the constructor then the try is never reached. So, yes, you do need the try finally. -
How to keep track/organize all overloaded, extended 3rd party source code?
David Heffernan replied to Mike Torrettinni's topic in General Help
I literally wrote class helpers. It will. That's a problem if you are using other helpers for the class. Are you? -
How to keep track/organize all overloaded, extended 3rd party source code?
David Heffernan replied to Mike Torrettinni's topic in General Help
This is what class helpers are for. Likewise. -
How to keep track/organize all overloaded, extended 3rd party source code?
David Heffernan replied to Mike Torrettinni's topic in General Help
It's possible that the changes you are making to the third party code should be made in your code instead, thus side stepping the problem. -
A painful read from a development team that has bitten off way more than it can chew.
-
issues using filenames with spaces
David Heffernan replied to FranzB's topic in Algorithms, Data Structures and Class Design
Doesn't seem plausible. FileExists doesn't care about spaces. You'll want to do some debugging on a machine that exhibits the behaviour. -
question about GPL and Delphi
David Heffernan replied to RDP1974's topic in Tips / Blogs / Tutorials / Videos
could be a long wait -
Invalid Compiler Directive: 'MESSAGES'
David Heffernan replied to Incus J's topic in ICS - Internet Component Suite
Replace that with AtomicIncrement or the Increment method from System.SyncObjs.TInterlocked -
Translation of C headers.
David Heffernan replied to pyscripter's topic in RTL and Delphi Object Pascal
Problem could be how you call the function -
Why should I use good source control versioning system?
David Heffernan replied to Mike Torrettinni's topic in Tips / Blogs / Tutorials / Videos
It really makes not a lot of difference which vcs you use, compared to not using revision control. -
question about GPL and Delphi
David Heffernan replied to RDP1974's topic in Tips / Blogs / Tutorials / Videos
If your program requires the covered code in order to function then I think your code needs to also be GPL. Worth talking to the developer of the code. Often they will dual license for such eventualities. -
Probably it is mature now.
-
Not quite. The default initialisation is outside the function.
-
You don't get this because the return type is a managed type and so is actually passed as an extra var parameter. So the variable is assumed to have been default initialised outside the function. I'm not trying to defend the compiler design here. The handling of function return variables is a complete mess in my view. They should be passed by value from callee to caller. The whole hidden var param is a weird hack from the ancient past that should never have been done.
-
omnithread Omnithread DELPHI, many calls in the same function
David Heffernan replied to bill parish's topic in OmniThreadLibrary
https://stackoverflow.com/questions/63111541/omnithread-delphi-many-calls-in-the-same-function For reference, here is the same Q on SO -
Adding madExcept or EurekaLog or similar is the obvious way to find out what is going on here.
-
TCriticalSection and cache line size
David Heffernan replied to dummzeuch's topic in RTL and Delphi Object Pascal
I'm not denying the existence of the problem. I'm just putting up a flag to say that I believe that in a great many codebases you are very unlikely to encounter it. So, don't get to too stressed about this, and perhaps don't worry about trying to fix the problem unless you know for sure that you are affected by it. -
TCriticalSection and cache line size
David Heffernan replied to dummzeuch's topic in RTL and Delphi Object Pascal
It's pretty unlikely to encounter this issue in real code. -
Linking to a C obj file that makes Windows calls
David Heffernan replied to pyscripter's topic in RTL and Delphi Object Pascal
I always turn off stack checking for this reason. Wouldn't it just be better to put it in a DLL? -
Linking to a C obj file that makes Windows calls
David Heffernan replied to pyscripter's topic in RTL and Delphi Object Pascal
Just compile the C++ code with options that suppress stack checking. Seriously though, putting all this in a DLL is a far better approach.