Jump to content

Uwe Raabe

Members
  • Content Count

    2750
  • Joined

  • Last visited

  • Days Won

    162

Everything posted by Uwe Raabe

  1. Yes, it does: Supported Languages. They are also providing new releases in a reasonable time frame. When I provide a test case showing some syntax confusing the parser, they usually fix it in the next two releases. OK, but that doesn't say anything about the quality and usability of the product. I may have reacted the same when I had found the website myself, but I already had another product from their German reseller, when they contacted me with a trial of Understand. That was 2014 and I declined with a comment about the poor Delphi support. In 2016 they came up with that again, and I agreed, because the Delphi support was sufficient for me at that time. Meanwhile, with some significant help from myself, it became even better. As I often have to cope with foreign code and for that it proved very helpful. It turned out that it also gives some valuable insights in my own code, especially the sort of code that evolved over time. I am glad to have this tool at hand. One can argue about their sales channel, but IMHO that doesn't diminish the product itself. BTW, one can always try to negotiate with the reseller.
  2. Just a small anecdote: Working on one of my customers code base, which is heavily convoluted with circular references, I was able to break a cycle with simply using a string literal instead of a global constant declared in one of the units, knowingly sacrificing at least some of the Clean Code principles. The constant was declared like this: const cLocalHost = 'localhost'; BTW, a valuable tool for me to understand someone else's code and detect the fibers a cycle is made from is SciTools Understand. Although it may look a bit expensive for some at first, the time saving effects are absolutely worth it.
  3. Relying on unit scope names also makes the compiling slower. Besides MMX there is also UsesCleaner as its command line companion resolving these issues.
  4. Avoiding circular unit references speeds up compilation significantly. Let me cite @Bill Meyer in his excellent book Delphi Legacy Projects : Strategies and Survival Guide: As slower compile times also affect the IDE, especially Code Insight, we are not just talking about longer build times, but responsiveness of the IDE itself. Also mentioned in the book and backed by my own experience and involvement, a very helpful tool is the Unit Dependency Analyzer built in MMX Code Explorer (also available as standalone). Bill dedicates a whole chapter in his book on Cleaning Uses Clauses.
  5. Uwe Raabe

    Passive, non interactive custom form

    The docs say for WS_EX_NOACTIVATE:
  6. Uwe Raabe

    Passive, non interactive custom form

    That would still miss the To achieve that add a message handler like this: procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST; ... procedure TMyTransparentForm.WMNCHitTest(var Message: TWMNCHitTest); begin Message.Result := HTTRANSPARENT; end;
  7. Uwe Raabe

    Good data grid for VCL and FMX

    As already mentioned, TMS FNC Grid, but also TeeGrid from Steema. Technically these are not strictly the same component, because it must be derived from either a VCL or FMX TControl, but for the developer it comes quite near.
  8. Uwe Raabe

    Feedback Request - FastReports vs ReportBuilder?

    In a discussion I also mentioned that it is a Virginia based company, but other powers seem to know better. IMHO that is really sad, because I also like the product and find it more capable than others.
  9. Uwe Raabe

    Feedback Request - FastReports vs ReportBuilder?

    There are some concerns about the country of origin. Some companies have strict compliance rules, while others just have a bad gut feeling.
  10. Uwe Raabe

    TCalendarView returning a bad Date

    I guess, that is as designed. When you click on a date that date is selected. When you click again on the same date it is unselected and the Date property is set to NullDate: NullDate: TDate = -700000; You can avoid that when you set SelectionMode to smNone.
  11. Uwe Raabe

    TCalendarView returning a bad Date

    I'm a bit unsure what your example should achieve, as it doesn't match what you show here.
  12. As expected, I indeed get different outcomes with Win32 and Win64 targets. (Delphi 11.3 Patch 1)
  13. Well, as it fails in my case, I guess that is what undefined behavior means.
  14. Make the Owner of that TImage instance your component and set csSubComponent in the TImages ComponentStyle. That means, the image should be created like this: FImage := TImage.Create(Self); FImage.SetSubComponent(True);
  15. Uwe Raabe

    Good data grid for VCL and FMX

    For FMX?
  16. Reminds me of this one: Why does a call to GetDIBits fail on Win64?
  17. Hybrid, Bastard, Chimera or (my personal favorite) Manticore. But as we already can call a function like a procedure, it may be straight forward to declare a procedure with a return type - even if there is no way to retrieve that value. 🤔 Looking into details, a function internally is just a procedure with an additional parameter for the return value. It is the declaration that makes the difference. After all, I agree that BlockRead/BlockWrite should no longer be used.
  18. That's why it is called Compiler Magic.
  19. Hard to say without testing. It is an intrinsic function, so we cannot see what is done internally.
  20. Interestingly CodeInsight shows it as a procedure with a return value: The docs also state Result as an optional parameter, which indicates it is a procedure:
  21. Uwe Raabe

    Replacement for TBits?

    Wow! If my math is correct that needs more than 32GB of memory. I have no idea what the purpose is, but perhaps there are other approaches to achieve the same.
  22. Uwe Raabe

    Is there a Sunday between 2 dates ?

    It is not. The wording of the question leaves room for interpretation and the examples only cover the common case, but are leaving out the corner cases. If the specification were sufficient, I wouldn't have asked my questions.
  23. Uwe Raabe

    Is there a Sunday between 2 dates ?

    I am a bit baffled that the OP does not react at all.
  24. Uwe Raabe

    Is there a Sunday between 2 dates ?

    Yep, that was the background of these questions to the OP: The code I provided assumes that the start and end date are also counted when they fall on a Sunday. So unless the specification isn't refined any solution (start<=date<=end, start<date<=end, start<=date<end or start<date<end) is valid.
  25. Uwe Raabe

    JSON records in TFDMemTable

    Either the request specifies the 50 records per page or the server defaults or is limited to that. Try to increase the limit in your request or make multiple requests for each page and combine the result sets.
×