-
Content Count
2750 -
Joined
-
Last visited
-
Days Won
162
Everything posted by Uwe Raabe
-
@dummzeuch I haven't had a look at it for quite some time, but is the formatter free/open source or are there any restrictions to it?
-
BTW, I like the fact that it is the closing quotes instead of the starting one. Imagine you need to adjust the indentation of the whole literal just because you decide to change the name from blub to something with not the same length.
-
What if you want a line with a single semi-colon inside the string literal? With the current implementation your example would be written this way: blub := ''' line1 line2, indented 3 spaces line3 '''; // the ending triple quotes are aligned with the no-indentation position Some background for this discussion: Raw string literal
-
If the parser is too complicated by itself, it probably doesn't matter which syntax change is actually chosen.
-
The docs that comes with the beta installer. You don't expect beta testers to discover how to use new features by blind guesses, do you? Of course, one has to participate in the beta to get access to both, but everyone with an active subscription can ask for it.
-
The docs contain more information than the blog post shows.
-
Exactly! Nobody is forced to use this new feature. Also, I don't see anything breaking except tools parsing new code using that feature. Obviously that is always the case with new language features. The only way to avoid that is not allowing new language features in the first place.
-
I actually prefer the new syntax over the suggested one, as that is already occupied by a call to function multiline taking a string parameter - and fails because of the line-breaked string literal. Instead of teaching the compiler that a function call to multiline (what happens if I already have a similar named function in the scope?) to accept line breaks in the only sting literal parameter, the new syntax keeps the available parsers intact. They will just fail on the new multiline syntax as any Delphi compiler version before does. The new syntax is pretty simple to detect: This makes tweaking the parser not too complicated, as the start and end tokens are easy to recognize. While the triple quote alone resembles still valid syntax in previous versions, the mandatory new line would fail to parse. That is the condition where the new parser should intercept until the end condition is met. It still seems unclear how one has to escape a triple quote with no text preceding it inside a multiline string.
-
Come on - it's a meme - it has to be silly.
-
Call for Delphi 12 Support in OpenSource projects.
Uwe Raabe replied to Tommi Prami's topic in Delphi Third-Party
The IFEND works in all versions. LEGACYIFEND ON only makes XE4+ accept only IFEND, too. That might be helpful to write code compatible with versions before XE4 when written and tested with newer versions only. So it is more like a safeguard for the developer, but code written like before XE4 will also compile in XE4+ without that LEGACYIFEND directive. -
Call for Delphi 12 Support in OpenSource projects.
Uwe Raabe replied to Tommi Prami's topic in Delphi Third-Party
I'm not aware of something like that. There is a change regarding IFEND since XE4: -
Call for Delphi 12 Support in OpenSource projects.
Uwe Raabe replied to Tommi Prami's topic in Delphi Third-Party
You can even check for it: {$IFDEF CONDITIONALEXPRESSIONS} {$IF CompilerVersion < 23.0} ... {$IFEND} {$ENDIF} -
Call for Delphi 12 Support in OpenSource projects.
Uwe Raabe replied to Tommi Prami's topic in Delphi Third-Party
Me too. Although f.i. PngComponents are prepared to compile with newer versions without changing more than the LIBSUFFIX (which in my case is handled by Project Magician), I always copy the package folder to a decent named one. The VirtualTreeView approach works fine when you just compile and install from the lowest Delphi version to the highest or you revert any changes before opening the package in another one. -
Call for Delphi 12 Support in OpenSource projects.
Uwe Raabe replied to Tommi Prami's topic in Delphi Third-Party
I like the VirtualTreeeView approach, which has a package folder named RAD Studio 10.4+. It works perfectly for 11 and probably for 12, too. -
What is the benefit of sorting the Uses clause?
Uwe Raabe replied to RCrandall's topic in MMX Code Explorer
Albeit there actually is a request for that, MMX does not sort the units by name. They are grouped according to a user defined pattern, but inside the group the order stays intact. F.i. this is the Groups entry for one of my projects: After some Delphi units in a decent order based on dependency, there are the Raize and TMS units followed by VirtualTrees, PngComponents and the ZipForge units. The last four mimic the unit scopes and naming convention of the project itself also ordered by dependency. (TMS can improve their unit naming btw.) A typical uses clause looks like this: uses Winapi.Messages, System.Classes, System.Actions, System.Types, System.ImageList, Vcl.Graphics, Vcl.Menus, Vcl.ActnList, Vcl.Controls, Vcl.ExtCtrls, Vcl.Forms, Vcl.StdCtrls, Vcl.Tabs, Vcl.Dialogs, Vcl.ImgList, Vcl.VirtualImageList, Vcl.AppEvnts, RzTabs, RzForms, RzShellDialogs, RzPanel, RzButton, RzSplit, RzCommon, Common.Form, IpButton, IpMRU, IpMultiLanguageSupport, TcEditorTypes, TcGlbCfgSystem, TcGlbCfgVisualStyle, RNcCodeViewer, REditorStructure, REditorItems, RBasePalette, RStoragePalette, REditorPalette, RCustomPalette, REditorPanel, RBaseFrame, RObserver, RStandardStatus, REditorNesting, RBaseEditorFrame; The grouping algorithm is pretty flexible and I never had a case that could not be handled. If auto-sort a uses clause is automatically sorted whenever MMX modifies it - a very handy feature. -
What is the benefit of sorting the Uses clause?
Uwe Raabe replied to RCrandall's topic in MMX Code Explorer
It started with the request to expand the unit scope names, which gave a good boost to compile time in some cases. The idea of uses clause grouping and sorting crept in my mind when I noticed difficulties to quickly scan the list of used units. With a sorted and grouped uses clause the used libraries are clearly visible immediately. So its partly for compilation speed as well as a neat look (some call it OCD). -
Even that would not magically extend the license. The only option to continue working with 10.4 is buying a full version where the license also covers older versions.
-
Thanks for reporting. I know that MMX has problems with those one-line declarations and conditional defines. I have added these two to the bug tracker.
-
This seems to be an oversight in TButtonedEdit (or rather TEditButton.Glyph) to set the DropDownMenu PopupComponent before calling its Popup method. Can you file a QP report similar to RSP-33837, please?
-
Firemonkey App using RESTRequest is sending POST instead of GET on Android
Uwe Raabe replied to Jon R's topic in Network, Cloud and Web
More a convention that can be worked around as shown in the answer to that SO question. -
Indeed! I'm currently on vacation and my brain is probably in low energy mode.
-
I cannot say for myself and it might depend on the people there, but I have heard from a coulple of others that it went smoothless.
-
My list - with increasing nerd factor: Instant Grep Grepility Greppo
-
BPL creation failed when adding 3rd. party components
Uwe Raabe replied to softtouch's topic in General Help
You probably didn't allow to add the units, but allowed to add SynEditDR to the requires clause instead. If you deny that request, the units are compiled into your package. If you want to make use of the SynEdit package you must make sure that SynEditDR.dcp can be found during compile and deploy the corresponding bpl with your application. -
Tested in 10.3.3 and 11.3 - works in both of them. Update: Works also in 10.2.3, but fails in 10.1.2