Jump to content

David Heffernan

Members
  • Content Count

    3698
  • Joined

  • Last visited

  • Days Won

    185

Everything posted by David Heffernan

  1. David Heffernan

    TTaskDialogs not working with Delphi Styles

    FWIW this is what I see with Delphi 11.3, and toolbar drop downs. I'm actually at 175% dpi, and running Delphi DPI aware. If I click on the left hand side of the drop down button next to the open icon, I get a file dialog. If I click on the right hand side of the drop down button I get the menu dropped down. I think that the same happens in my app if I use the VCL menu code, although it's so long since I looked that I don't remember the exact details. I'd be interested to know if the latest versions of Delphi IDE manage to handle this drop down hit detection correctly. Other problems I saw with VCL styles drawing menus was failure to scale check marks in high dpi scenarios. I ended up patching Vcl.Menus so that it uses Windows to draw the menus rather than VCL styles which even for the standard Windows theme is what you get for menus. This was gnarly with high DPI because I need to create and cache PARGB32 bitmaps, because that's how you get alpha blended menu icons in system drawn windows: Themed menu’s icons, a complete Vista and XP solution (updated) - nanoANT
  2. David Heffernan

    TTaskDialogs not working with Delphi Styles

    Maybe they fixed it. My experience has been that every time they fix one bug, there's another one around the corner.
  3. David Heffernan

    TTaskDialogs not working with Delphi Styles

    I tried recently and the toolbars still aren't right. Classic example is the behaviour of drop down buttons which open menus in high DPI. Try the file open drop down in, say 250 or 300%. You have to click on the very right hand side of the drop down. Context menus are a mess too. Coming up on the wrong screen. It mostly works, but there's just enough that doesn't for it to be no good. I'd like to offer my clients a dark mode but cannot.
  4. David Heffernan

    TTaskDialogs not working with Delphi Styles

    VCL styles are still not fit for purpose and probably never will be
  5. That's evaluated to a quietnan at compile time, just as it has always been
  6. Ultimately, if exceptions are masked then there's no behavioural difference between SNaN and QNaN. Seems an odd design choice for x86 to change the NaN type though. Presumably there's a reason I'm not aware of. Normally I think I know my way around floating point, but when exceptions are masked is the great unknown for me. I've never been there. And when I explored moving to 12 I just unmasked them!!!
  7. I don't have anything later than 11.3 installed. So there are likely changes that I'm not familiar with. The one thing that jumps to my mind is the ABI. Floating point return values travel via ST(0) in x86 but by a general purpose register in x64 (can't remember which). This means that it has traditionally not been possible to return SNaN by function return value in 32 bit, although it is possible to in 64 bit. That's because loading into ST(0) triggers invalid op. But now fp exceptions are masked by default. Anyway, that's all I know right now, not at a computer.
  8. David Heffernan

    Memory leak on TParallel.For

    I don't know why you don't attempt to debug your code.
  9. David Heffernan

    Unicode Statistics Tool

    You don't need this tool.
  10. The original code looks fine. But you only showed an excerpt. Show a reproduction of an error and then somebody can tell you what is actually going on. Don't fix things until you understand them.
  11. David Heffernan

    How do I return to the 'Constructor'??

    You very likely still shouldn't be showing user dialogs in a constructor. The fact that you made this design choice to meet a requirement does not mean that it was the right design choice.
  12. David Heffernan

    updated Delphi64RTL intel ipp onetbb

    I mean, come on, how could that test be relevant!
  13. David Heffernan

    updated Delphi64RTL intel ipp onetbb

    This point has been raised many times previously fwiw
  14. David Heffernan

    Dynamic array used as a queue. Memory fragmentation?

    Except aligned is now slower on modern cpus because of the less efficient cache usage when there is padding.
  15. David Heffernan

    Dynamic array used as a queue. Memory fragmentation?

    It is if you use a proper memory manager
  16. David Heffernan

    Dynamic array used as a queue. Memory fragmentation?

    This was true once upon a time but is not true for modern x86-64 architectures.
  17. David Heffernan

    Show executable size after successful build?

    You've spent more time posting here than you would ever save from this feature existing
  18. David Heffernan

    Show executable size after successful build?

    But it doesn't change from one build to the next. Or is your problem that on Monday you know that the executable is 25mb but come Tuesday you've forgotten. Maybe you should get some post it notes.
  19. David Heffernan

    Show executable size after successful build?

    So check the size in explorer. Not like you need to do this repeatedly. Are you having trouble using explorer?
  20. David Heffernan

    Avoid parameter evaluation

    Yeah, I couldn't believe that anon methods arrived way back in Delphi 2009. I thought they were a much younger feature!!
  21. David Heffernan

    Avoid parameter evaluation

    What specific feature are you talking about here?
  22. David Heffernan

    Show executable size after successful build?

    Doesn't seem very useful to me. I wouldn't prioritise this.
  23. David Heffernan

    C++ to Delphi conversion problem

    I don't know why you aren't facing up to the reality that you need to write some C++ code.
  24. David Heffernan

    C++ to Delphi conversion problem

    You can't declare this structure in Delphi because it uses the STL type std::vector.
×