Jump to content

David Heffernan

Members
  • Content Count

    3430
  • Joined

  • Last visited

  • Days Won

    169

Everything posted by David Heffernan

  1. David Heffernan

    The Case of Delphi Const String Parameters

    That would then be a race condition between the copy and the modification. That seems like the far bigger issue.
  2. David Heffernan

    The Case of Delphi Const String Parameters

    Nothing to see here. Carry on using const for string parameters. The issue is vanishingly rare. If you encounter the issue, fix it. Don't go changing existing code unless you are actually affected by the issue.
  3. Not so. In fact set of Char is actually implemented as set of AnsiChar. It has very special treatment introduced to "help" porting from ANSI Delphi to Unicode Delphi.
  4. David Heffernan

    Popup window with focus inside.

    Is your question, "is it possible to change the focus without changing the active window?"
  5. Unfortunately Emba never implemented proper generics support for sets which would make this trivial and type safe.
  6. The issue is that you need to write this code for every single set type that you use.
  7. There is another issue here, which is that you check bits that are unused, it the base type has number of members not divisible by 8. Probably you get away with it because it's probably hard to get 1 in any of the unused bits in a set.
  8. Thinking again, the specifics are important here, the use of an untyped parameter that is overload with an absolute variable. This basically renders range checking close to useless, because of the unsafe typecast.
  9. That's wrong. The code reads absolute aSet rather than absolute aByte. Consequently this statement is also incorrect. aSet could be on the stack, or the heap, or a global. In any case, I took the question a bit more generally than you. Accessing arrays out of bounds can lead to AVs or corruption of other memory in the case of a write operation. Yes, I know that the example here is a read. I was generalising.
  10. Behaviour is undefined. You might get an AV, or a write might corrupt data. Definitely not graceful failure.
  11. David Heffernan

    How can I implement DLLs in my code?

    Your code doesn't load a dll. You have an abstract virtual method that is never implemented. You are trying to run before you can walk. You aren't going to learn anything useful this way. You need to go back to the basics.
  12. Enumerate the members of interest and persist them. If these classes are really that simple, what is the difficulty? What are you stuck with? Using the RTTI? Or working with INI files?
  13. David Heffernan

    Can an app beat a spreadsheet?

    Talk to other people and see what they want.
  14. David Heffernan

    Example of wasteful, innefficient string manipulation

    This was from the original post. I suspect you meant to say fragmented rather than defragmented. When I asked how you assessed fragmentation you said that you hadn't, and that you didn't understand virtual memory. I don't know what you think you have demonstrated, but I don't think you have demonstrated anything at all.
  15. David Heffernan

    Example of wasteful, innefficient string manipulation

    What's the point? You've already reached a false conclusion based on a flawed investigation. If we try to point this out you tell us that you aren't interested in learning the truth.
  16. David Heffernan

    Example of wasteful, innefficient string manipulation

    Why aren't you curious to learn about how virtual memory works? Why aren't you curious to learn how sub-allocating memory managers work? Why aren't you curious to learn what address space fragmentation is?
  17. David Heffernan

    Example of wasteful, innefficient string manipulation

    I understand that you'd like that conclusion. It would be nice if it were true though. It isn't.
  18. David Heffernan

    Example of wasteful, innefficient string manipulation

    If you don't know about address space fragmentation, don't you wonder whether or not it is relevant?
  19. David Heffernan

    Example of wasteful, innefficient string manipulation

    Are you measuring address space fragmentation?
  20. It's just calling methods and accessing attributes. No different for pandas than for any other library.
  21. David Heffernan

    Example of wasteful, innefficient string manipulation

    Delphi's memory manager is fastmm. Also, your tool to measure the effect of the program isn't really telling you anything. It says nothing about fragmentation of address space. Virtual memory is a very complex subject. I suspect you need to learn more of the details before you can reason about your program.
  22. David Heffernan

    FormDestory call order

    Agreed. Why would the main form destroy itself before the code in the dpr completes?
  23. David Heffernan

    madexcept inside a DLL

    There are lots of posts on this topic on the madExcept forum. Websearch with the obvious search terms will find them.
  24. David Heffernan

    Images in High DPI, how?

    You seem to be wanting to change your program, but now you tell us that you can't change it. Seems like a waste of time.
×