Jump to content

David Heffernan

Members
  • Content Count

    3473
  • Joined

  • Last visited

  • Days Won

    171

Everything posted by David Heffernan

  1. David Heffernan

    Debugger gives wrong value for long double

    Those libraries will be appallingly slow. In terms of the calculation side of it, it doesn't sound like you have a problem. Use double. As far as the IDE goes its not surprising that a program written using the Delphi rtl doesn't convert floats to decimal text correctly because the rtl doesn't. Or vice versa. Never has done and in spite of Emba being told more than a decade ago they haven't shown any inclination to address it. In my code I use dtoa and dragon4 to do these things so I can get correct values.
  2. I'm not talking about generalities. I'm talking about this specific topic. The OP already said that the pointer values that are streamed are ignored. The problem at hand is that the code does naive blitting of internal records, and these records have different layouts for different targets.
  3. What would offsets be helpful for given that the data streamed in those fields is never used
  4. David Heffernan

    Debugger gives wrong value for long double

    Not in IEEE 754 floating point data types that you are using. Anyway I'm not actually sure what your actual problem is. Do you feel that there is an issue with the debugger? As for 80 bit floats I don't see any future for them. That idea died and everyone uses 64 bit double now. Is double insufficient for your needs?
  5. Streaming offsets doesn't seem helpful. The user isn't interested in streaming addresses. The addresses are initialised at runtime. They are only streamed because the code is, er, sloppy, and blits raw records rather than serialising.
  6. David Heffernan

    GetWindowHandle + Ctrl V

    Are you running your IDE elevated?
  7. I'm just curious but why are you using AnsiString casts which produce behaviour dependent on the executing process locale? Did you mean to encode as UTF8?
  8. But what is the problem? You can't solve something until you know what the problem is. As Lars says, streaming pointers seems, er, pointless.
  9. David Heffernan

    Data structure for Integer ranges

    Surely this could be done using regular expressions
  10. When performance is an issue, pass by reference then. Presumably you are happy to use value types like integer? Or do you shun all value types? Prevent what bugs? Code with interfaces can have bugs too. So it's not some magic solution. Code using interfaces can have leaks. They are still there, the compiler writes them. It's the exact same pattern as used with classes. It's well known and easy to follow. This is true. But it's simple enough to flow the rules and avoid this.
  11. So what would be the problem with that? That's what happens with vakue types. Why would interfaces be needed to avoid memory leaks?
  12. Actually, I think that this was the first mention of GetMem in the thread.
  13. Problem with this is that if the record has any managed types, then they won't be properly initialised/finalised when using GetMem/FreeMem. This is what New/Dispose brings.
  14. David Heffernan

    Record operator overloading error

  15. David Heffernan

    Record operator overloading error

    This looks like a compiler bug to me. not(a) or True should be the same as: not a or True which in turn is the same as: (not a) or True because unary not has a higher precedence than or. See Expressions (Delphi) - RAD Studio (embarcadero.com) I can't see why your code should fail. I suggest that you submit a bug report to Quality Portal.
  16. David Heffernan

    Delphi 12 is available

    That's been possible for years
  17. I opened Visual Studio the other day and made some edits to a C# module that implements an API interface for our software. We have interfaces in a variety of languages, C++, Python, C#, etc. I was blown away when VS offered me suggestions for the code I was writing. Clearly it's using some AI library to do this. Honestly, the quality of the suggested code blew my mind. I knew what I wanted to write, and so did VS. This is only going to get better and better, but it's already amazing. So far as I know, there's nothing remotely like this for us Delphi users. Or would we get this is we wrote our code in an editor like VS Code??
  18. David Heffernan

    Your experience with custom styles - do they work well?

    I had hope based on my QC reports from XE7 days. In any case it's a huge design mistake for Emba to implement windows themed menus as custom draw. Just let the bloody system draw it and then it will always be right!! Well, MDI excluded, but menus are getting deprecated any time soon.
  19. David Heffernan

    Your experience with custom styles - do they work well?

    I never submitted any.
  20. David Heffernan

    Your experience with custom styles - do they work well?

    Ha ha ha. I think we all know the answer to this. They can't even do menus properly. Even for the standard windows theme the menus are custom drawn and the Emba code gets it wrong in various mixed dpi scenarios. When I switched to Delphi 11.3 I'd hoped to avoid having to patch the VCL to suppress its custom drawn menus. Alas that hope was doomed.
  21. That's fair. But it's not the subject of this discussion.
  22. The two versions are identical, apart from the double dereference with the class wrapper version. That's the only part that seems ugly to me.
  23. This is correct. Raw pointer in C++ is directly analogous to typer pointer in Delphi. However a reference to a class instance is actually no different from a raw pointer. You have to manage allocation and deallocation of both. Which is my point.
  24. How is this materially different? You still need to explicitly Free, and you need try/finally. The class is just extra baggage. For what gain?
  25. David Heffernan

    How to enable SafeSEH, CFG flags for Delphi 10.4 Dll's/Exe's?

    That's what I thought. What about the part that pointed out the futility of setting the flag without having the corresponding compiler support?
×