Jump to content

David Heffernan

Members
  • Content Count

    3710
  • Joined

  • Last visited

  • Days Won

    185

Everything posted by David Heffernan

  1. David Heffernan

    Delphi and "Use only memory safe languages"

    This is a strange post. The issue with multiple languages is the mix of zero based and one based indexing.
  2. David Heffernan

    Delphi and "Use only memory safe languages"

    I don't disagree with that point. My point is that it was a bad idea in the first place to make strings 1 based.
  3. David Heffernan

    Delphi and "Use only memory safe languages"

    It would make far more sense for strings to be zero based. They are only one based because short strings stored their length in element 0.
  4. David Heffernan

    Delphi and "Use only memory safe languages"

    You can for short strings
  5. David Heffernan

    Delphi and "Use only memory safe languages"

    for var item in arr do This is generally to be preferred, but sometimes you want the index as well as the item. In Python we write for index, item in enumerate(arr): print(f"arr[{index}] = {item}") The absence of such a feature, which also relies on tuple unpacking, makes such loops in Delphi less convenient. This is pretty much the only reason for still using classic for loops.
  6. I use an EV code signing certificate
  7. No, this is not possible in Delphi 2007. You can declare typed constants for fixed length arrays, but not dynamic arrays.
  8. Sorry, content removed, I'm talking nonsense.
  9. Sorry, content remove, I'm talking nonsense
  10. David Heffernan

    Delphi and "Use only memory safe languages"

    Isn't the reason that Delphi is good at building GUI apps, at least it was for vcl back in the day. And it's still good for pure Win32 apps.
  11. David Heffernan

    Ping-pong between two Application.ProcessMessages

    Yeah, use threads
  12. David Heffernan

    How to edit a config file

    You need try/finally to avoid potential leaks. There are basically two main object creation patterns that you have to learn. You can't get far without them.
  13. Can you link the documentation you refer to so that there is no ambiguity in the question
  14. David Heffernan

    Disabled floating point exceptions are problematic for DLLs

    That's easy to fix. You just make sure that they call internal methods only. Not really. You can store the FPCR to a local variable in the exported method. The thing is, the change in Delphi 12 isn't actually causing any new issues. These issues always existed. It's just a consequence of the "design" of DLLs not making FPCR part of the ABI.
  15. David Heffernan

    Disabled floating point exceptions are problematic for DLLs

    One very obvious problem is that you need to write code like this everywhere. Not just at the top level. I stand by my advice before. Either: 1. Make FPCR part of the contract, or 2. Take control on entry, and restore on exit.
  16. David Heffernan

    Disabled floating point exceptions are problematic for DLLs

    This is the worst advice I've seen in quite some time!!
  17. David Heffernan

    Disabled floating point exceptions are problematic for DLLs

    DLLs should take charge of this. They should either make it part of their contract that the host sets the fp control state to a specific state. Or they should set it on entry, and restore it on exit. My DLL does the latter.
  18. David Heffernan

    Uses Clause Sorting??

    It's time to start using revision control
  19. David Heffernan

    Windows Paint 3D open file using ShellExecute

    Why are you using ShellExecute. That's a deprecated function that used to be used to execute shell actions, but has been replaced by ShellExecuteEx. If you want to execute a specific program why aren't you using CreateProcess?
  20. David Heffernan

    C Libraries to Delphi

    This is pretty epic, let's be honest. Take all the drudge out, and let us work on the brain stuff.
  21. David Heffernan

    Delphi and "Use only memory safe languages"

    That's kind of a vague specification. For instance, is the data pushed or pulled? I would imagine that makes a difference.
  22. David Heffernan

    Delphi and "Use only memory safe languages"

    The real trick there is not to do it. Avoid it at all costs.
  23. David Heffernan

    Delphi and "Use only memory safe languages"

    I don't really understand this. I always write the try/finally immediately after the construction, and always bang the Free in immediately. Then I fill out the body. It's just a habit that you form so that you don't make such mistakes. And honestly, this is never one that is hard to debug because you just have a leak. And presumably you use leak detection tools so that you'd always find them immediately. I don't really understand this scenario either. If you have a reference to something that may or may not exist, you would test Assigned() before using it. And when you were finished, you'd set the reference back to nil once you'd destroyed it. The scenario that is tricky is when you have multiple references to an object.
  24. David Heffernan

    Delphi and "Use only memory safe languages"

    Keep searching then
  25. David Heffernan

    Delphi and "Use only memory safe languages"

    It's odd you say that, but I never have to debug issues like this. There are two simple patterns for lifetime and they are so ingrained, nobody ever makes a mistake in my team.
×