-
Content Count
2750 -
Joined
-
Last visited
-
Days Won
162
Everything posted by Uwe Raabe
-
Feature req: Compiler unit dependency graph / log with warnings about circularity
Uwe Raabe replied to Lars Fosdal's topic in Delphi IDE and APIs
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. -
Feature req: Compiler unit dependency graph / log with warnings about circularity
Uwe Raabe replied to Lars Fosdal's topic in Delphi IDE and APIs
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. -
Feature req: Compiler unit dependency graph / log with warnings about circularity
Uwe Raabe replied to Lars Fosdal's topic in Delphi IDE and APIs
Relying on unit scope names also makes the compiling slower. Besides MMX there is also UsesCleaner as its command line companion resolving these issues. -
Feature req: Compiler unit dependency graph / log with warnings about circularity
Uwe Raabe replied to Lars Fosdal's topic in Delphi IDE and APIs
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. -
The docs say for WS_EX_NOACTIVATE:
-
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;
-
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.
-
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.
-
There are some concerns about the country of origin. Some companies have strict compliance rules, while others just have a bad gut feeling.
-
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.
-
I'm a bit unsure what your example should achieve, as it doesn't match what you show here.
-
combining two characters to a string switches them
Uwe Raabe replied to dummzeuch's topic in RTL and Delphi Object Pascal
As expected, I indeed get different outcomes with Win32 and Win64 targets. (Delphi 11.3 Patch 1) -
combining two characters to a string switches them
Uwe Raabe replied to dummzeuch's topic in RTL and Delphi Object Pascal
Well, as it fails in my case, I guess that is what undefined behavior means. -
TImage inside TComponent serializaton
Uwe Raabe replied to isola's topic in RTL and Delphi Object Pascal
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); -
combining two characters to a string switches them
Uwe Raabe replied to dummzeuch's topic in RTL and Delphi Object Pascal
Reminds me of this one: Why does a call to GetDIBits fail on Win64? -
BlockRead & BlockWrite - E2010 error
Uwe Raabe replied to Jud's topic in RTL and Delphi Object Pascal
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. -
BlockRead & BlockWrite - E2010 error
Uwe Raabe replied to Jud's topic in RTL and Delphi Object Pascal
That's why it is called Compiler Magic. -
BlockRead & BlockWrite - E2010 error
Uwe Raabe replied to Jud's topic in RTL and Delphi Object Pascal
Hard to say without testing. It is an intrinsic function, so we cannot see what is done internally. -
BlockRead & BlockWrite - E2010 error
Uwe Raabe replied to Jud's topic in RTL and Delphi Object Pascal
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: -
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.
-
Is there a Sunday between 2 dates ?
Uwe Raabe replied to Henry Olive's topic in RTL and Delphi Object Pascal
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. -
Is there a Sunday between 2 dates ?
Uwe Raabe replied to Henry Olive's topic in RTL and Delphi Object Pascal
I am a bit baffled that the OP does not react at all. -
Is there a Sunday between 2 dates ?
Uwe Raabe replied to Henry Olive's topic in RTL and Delphi Object Pascal
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. -
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.