Jump to content

Der schöne Günther

Members
  • Content Count

    654
  • Joined

  • Last visited

  • Days Won

    12

Everything posted by Der schöne Günther

  1. That is indeed annoying, but we haven't stumbled upon a "real" bug. We are using String/DateTime conversion for Iso8601 from the System.DateUtils all the time.
  2. Der schöne Günther

    Disabled floating point exceptions are problematic for DLLs

    Strictly speaking, this is not exclusively related to Delphi 12, your DLLs would have suffered the same, if they were called from another non-Delphi application. I believe that if your code relies on a certain FPU behaviour, it should either fail-fast by aborting if the FPU is not set correctly, or temporarily alter it, and then restore it to the previous state via try..finally. In any case, that would be your DLL would have to be changed.
  3. Der schöne Günther

    Good delphi learning sites for new team member

    That's a super interesting concept, but the content appears to be around 15 years of age.
  4. Der schöne Günther

    Delphi - Direct2D - Paintbox drawing is flickering

    I am not familiar with Direct2D, but confused nonetheless - Wouldn't you need a HWND to paint into? And a TPaintBox is not a window control, it's a simple TGraphicControl descendant - Meaning you may probably paint onto your form or into that very panel, but I fail to see how a Paintbox is even remotely helpful. Thanks for updating the code snippet. Didn't know you can also create a TDirect2DCanvas pointing to a Canvas, instead of a HWND.
  5. Der schöne Günther

    State of an uninitialised variables..

    Yes, but we're just mere humans, and we don't even have a compiler that will help us by generating a warning. Even the gods from Embarcaddero occasionally trip over this, here is an example straight from the RTL itself: https://quality.embarcadero.com/browse/RSP-18300
  6. Der schöne Günther

    State of an uninitialised variables..

    I wouldn't really call those features - Rather oddities, quirks or flat-out defects 😬 You can hardly blame yourself for not expecting something like that.
  7. Der schöne Günther

    Real time desktop colors change like filters

    This surely isn't trivial. I once was about to make small tool for inverting the colors of windows that did not support a "dark theme" but I never really got started with it. It seems that you can use the (now deprecated) Magnification API to (selectively) transform colors or run filters on the whole screen (or just selected parts of it like rectangle areas or selected HWNDs): Magnification API overview (Applying Color Effects)| Microsoft Learn There is also its successor, the Desktop Duplication API - Win32 apps | Microsoft Learn which I had only used for grabbing screen data, not manipulating it. So I cannot say if it's a feasible solution for manipulating the colors.
  8. Der schöne Günther

    State of an uninitialised variables..

    Although he explicitly said local variable, it could probably have been something like this: program Project1; function getText(const txt: String): String; begin // Incorrectly assumes "Result" got // initialized to an empty string Result := Result + txt; end; begin var text: String; text := getText('This should not be visible'); text := getText('Hello'); // Outputs "This should not be visibleHello" WriteLn(text); end.
  9. Der schöne Günther

    Delphi 12.1 is available

    But what's new? And why is the .iso just 730 Megabytes? 🤔
  10. Der schöne Günther

    DelphiLint v1.0.0 released!

    I have a stupid question about Does that mean it runs entirely self-dependent, and I do not need a license for SonarQube?
  11. Der schöne Günther

    FloatToJSON

    My point is that it was not necessary to add this in the first place. Without knowing better, they got talked into changing a working part of the RTL, adding new bugs and breaking existing code.
  12. Der schöne Günther

    FloatToJSON

    Stuff like that makes me lose all hope. They still don't appear to have at least a minimal test coverage for the standard library. It was already reported and is allegedly fixed in "RAD Studio 12 Athens Patch 1" See: [RSP-43463] JSON serialization error with scientific double notation - Embarcadero Technologies -- Also, I have absolutely no clue why they decided to add this in the first place. The JSON specifications are crystal clear: https://ecma-international.org/publications-and-standards/standards/ecma-404/ See also: RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format (ietf.org)
  13. Der schöne Günther

    Embed line number at design time??

    It sounds like you are trying to add an exception logging mechanism to your application. Would you like some help? All jokes aside, if that's the case, then you should really investigate proper stack tracing and exception logging mechanisms. In case (for whatever reason), you really just like to add the current line number into a string, then have a look at: https://stackoverflow.com/q/7214213
  14. Der schöne Günther

    Delphi 12: internal errors

    Well, that de-escalated quickly.
  15. Der schöne Günther

    Delphi and "Use only memory safe languages"

    For those who still can't get enough, here is a very recent article from none other than Herb Sutter, of course with emphasis on C++ C++ safety, in context – Sutter’s Mill (herbsutter.com)
  16. Der schöne Günther

    TFrame versus SubForm

    So what I gather from this thread is The IDE supports placing frames at design time. While that enables sharing or referencing components like ImageLists, it may come with additional challenges (and bugs) The VCL both supports placing and re-parenting frames and forms at runtime. There is virtually no difference between these two Correct?
  17. Der schöne Günther

    Code Review for Delphi and Pascal

    There is a Delphi plugin for SonarCube which only does very basic analysis. It could probably be extended. https://github.com/Embarcadero/SonarDelphi Apart from that, I am not aware of anything else.
  18. Der schöne Günther

    TFrame versus SubForm

    Can you shed some light on what a "SubForm" is? I am working with frames all the time. The IDE will show the wrong frames and throw error messages if you are opening project groups where the name of a frame class is not unique throughout all projects in that group. The IDE will often randomly redundantly copy parts of a frame on its container's .dfm file (even entire image lists). You will have to use your versioning system and watch carefully to commit only the parts you changed yourself, and not the random insertions by the IDE.
  19. Der schöne Günther

    Delphi 12 Watch list

    I am bewildered by two consecutive dots CLIENT_CODE..AsString
  20. Der schöne Günther

    Delphi and "Use only memory safe languages"

    and ... Rust which is often quoted in relation to memory-safety. Linux: It has been a (small) part of the Linux kernel since 6.1 Rust — The Linux Kernel documentation Windows:
  21. Der schöne Günther

    Delphi and "Use only memory safe languages"

    For those interested, here is the very recent Secure by Design: Google's Perspective on Memory Safety (research.google) (March, 4th)
  22. Der schöne Günther

    Delphi 12 : Encoding Unicode strange behaviour

    Your life will be much easier if you rely on Strings and Chars for text manipulation, not bytes. Convert to bytes when your text manipulation is done, not before that.
  23. Der schöne Günther

    REST Web Service

    I am not familiar with Moodle, but I'd probably just roll my own. Take an Indy Http server, handle GET, PUT, POST requests, done. You're in full control. I never had the need for any of these 3rd party frameworks (I'm sure they're great, though).
  24. Der schöne Günther

    Delphi and "Use only memory safe languages"

    Can't add to "How does this compare to Delphi" but here's three interesting standpoints why companies have come to enjoy the memory safety of Rust: Mozilla Source: Implications of Rewriting a Browser Component in Rust - Mozilla Hacks - the Web developer blog Microsoft Source: Why Rust for safe systems programming | MSRC Blog | Microsoft Security Response Center Google Source: Google Online Security Blog: Memory Safe Languages in Android 13 (googleblog.com)
  25. Der schöne Günther

    check if App Minimized

    That is because Win+D does not minimise windows. It brings the desktop window to the foreground. You can validate this by pressing Win+D again which will send the desktop to the back again, and all windows are just like before. What for Win+M? This will actively minimise the windows, and this should get handled by the OnMinimize event.
×