-
Content Count
3698 -
Joined
-
Last visited
-
Days Won
185
Everything posted by David Heffernan
-
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
-
Maybe they fixed it. My experience has been that every time they fix one bug, there's another one around the corner.
-
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.
-
VCL styles are still not fit for purpose and probably never will be
-
bug Delphi (Win32) quiets signaling NaN on function return
David Heffernan replied to Jim McKeeth's topic in RTL and Delphi Object Pascal
That's evaluated to a quietnan at compile time, just as it has always been -
bug Delphi (Win32) quiets signaling NaN on function return
David Heffernan replied to Jim McKeeth's topic in RTL and Delphi Object Pascal
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!!! -
bug Delphi (Win32) quiets signaling NaN on function return
David Heffernan replied to Jim McKeeth's topic in RTL and Delphi Object Pascal
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. -
Delphi bug reports or feature requests to "vote"/comment for (important, fatal etc)/
David Heffernan replied to Tommi Prami's topic in Delphi IDE and APIs
Not even sure if this is a bug. -
I don't know why you don't attempt to debug your code.
-
You don't need this tool.
-
Pointer casting with NativeUint
David Heffernan replied to duzzell's topic in Algorithms, Data Structures and Class Design
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. -
How do I return to the 'Constructor'??
David Heffernan replied to Ian Branch's topic in General Help
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. -
updated Delphi64RTL intel ipp onetbb
David Heffernan replied to RDP1974's topic in RTL and Delphi Object Pascal
I mean, come on, how could that test be relevant! -
updated Delphi64RTL intel ipp onetbb
David Heffernan replied to RDP1974's topic in RTL and Delphi Object Pascal
This point has been raised many times previously fwiw -
Dynamic array used as a queue. Memory fragmentation?
David Heffernan replied to A.M. Hoornweg's topic in RTL and Delphi Object Pascal
Except aligned is now slower on modern cpus because of the less efficient cache usage when there is padding. -
Dynamic array used as a queue. Memory fragmentation?
David Heffernan replied to A.M. Hoornweg's topic in RTL and Delphi Object Pascal
It is if you use a proper memory manager -
Dynamic array used as a queue. Memory fragmentation?
David Heffernan replied to A.M. Hoornweg's topic in RTL and Delphi Object Pascal
This was true once upon a time but is not true for modern x86-64 architectures. -
Show executable size after successful build?
David Heffernan replied to PeterPanettone's topic in Delphi IDE and APIs
You've spent more time posting here than you would ever save from this feature existing -
Show executable size after successful build?
David Heffernan replied to PeterPanettone's topic in Delphi IDE and APIs
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. -
Show executable size after successful build?
David Heffernan replied to PeterPanettone's topic in Delphi IDE and APIs
So check the size in explorer. Not like you need to do this repeatedly. Are you having trouble using explorer? -
Avoid parameter evaluation
David Heffernan replied to Maxime Janvier's topic in RTL and Delphi Object Pascal
Yeah, I couldn't believe that anon methods arrived way back in Delphi 2009. I thought they were a much younger feature!! -
Avoid parameter evaluation
David Heffernan replied to Maxime Janvier's topic in RTL and Delphi Object Pascal
What specific feature are you talking about here? -
Show executable size after successful build?
David Heffernan replied to PeterPanettone's topic in Delphi IDE and APIs
Doesn't seem very useful to me. I wouldn't prioritise this. -
I don't know why you aren't facing up to the reality that you need to write some C++ code.
-
You can't declare this structure in Delphi because it uses the STL type std::vector.