Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 11/07/18 in all areas

  1. I have just uploaded the sources for the Code Coverage Plugin shown during my session at EKON 22 on Monday. Besides its functionality it may also give some guidance on writing IDE plugins in general. https://bitbucket.org/uweraabe/codecoveragemagician Tested only on Delphi 10.2.3 Tokyo!
  2. Just wanted to share my last blog post on changes to the Delphi language in 10.3: http://blog.marcocantu.com/blog/2018-november-custom-managed-records-delphi.html Still a bit rough in some details, but a very handy feature overall.
  3. I've written a short article on theming Open Tools API custom messages in IDE plug-ins because one of my projected stop working correct when theming was enabled in RAD Studio 10.2.2. https://www.davidghoyle.co.uk/WordPress/?p=2044 Dave.
  4. Wosi

    Inline Variables Coming in 10.3

    Great! What's about this: const RESTClient = TRESTClient.Create(Nil); Does it work? I'm having a good feeling about it 😉 https://github.com/RomanYankovsky/DelphiAST/pull/271
  5. Dalija Prasnikar

    Custom Managed Records Coming in Delphi 10.3

    Automatic invocation is the whole point of managed records. If they have constructors and destructors, you want them to run. Yes, you can do that manually, but then they would not be called managed records. If you don't want managed records, and you want to perform some initialization and finalization code manually, you can use plain record procedures. You don't need constructors and destructors in that case.
  6. Attila Kovacs

    FavIcon

    A bit better quality for the small ones. DP.ico
  7. In the MARS repository a new demo (check the Demos folder) is now available: https://github.com/andrea-magni/MARS/tree/master/Demos/EKON22 It is a project I created through the MARSCmd utility and used as a playground for my EKON 22 session, yesterday. There are a number of features showcased in this demo, from parameters passing to object/record/dataset serialization passing through FireDAC integration and MARS Client library components. To enable the FireDAC part of the demo, be sure to have a MAIN_DB FireDAC connection defined in your system, against the Firebird demo db (EMPLOYEEDB) or please adapt the simple SQL statements to your own database. I am available for questions or discussion. Sincerely, Andrea
  8. Andrea Magni

    Welcome!

    Welcome in this subgroup dedicated to MARS-Curiosity (MARS in short), a REST Library for Embarcadero Delphi! First of all I want to thank the Delphi Praxis team for the opportunity to have a dedicated subgroup here. MARS is an open source project, at the time I am writing this I am by far the main contributor. The project is hosted on GitHub ( https://github.com/andrea-magni/MARS ). This forum will supersede the G+ community and it is the right place where to ask questions about the project. If you actually find an issue with the library (and it is not a matter of knowing how to achieve something using the library's functionalities), please use the GitHub Issue tracker. Feel free to let me know your opinion about MARS as well as suggest new functionalities or changes in the library. I will be happy to hear from you all. Sincerely, Andrea
  9. Switch off the option to scroll to the newest message, Auto Scroll (F6), Fifth icon from the right on the top toolbar.
  10. Rudy Velthuis

    Custom Managed Records Coming in Delphi 10.3

    They don't intrduce automatisms you don't want. In fact, they now let you customize or even avoid the already existing automatisms (e.g. for records with managed content), allowing for better optimization. At the moment, normal, so called plain records (i.e. not M-records) are not managed. But records with managed content are already automatically managed using the usual (hidden) functions System._InitializeRecord, System_CopyRecord and System._FinalizeRecord. That management always takes place, and there (was) no way to get out of that. But these routines are slow and use TypeInfo. They must walk through that type info to determine which members must be initialized, refcounted, finalized, etc. at what moment. That takes time. With the new M-records, you can replace these routines by declaring a (default) constructor without parameters, a (default) destructor and a new Assign operator. These *replace* _InitializeRecord, _CopyRecord and _FinalizeRecord. So now you can selectively only initialize/copy/finalize what needs to be done. This saves time, as your code doesn't have to slowly walk/search the typeinfo to find what must be done for each member field. This is a possibility for manual optimization many people (including me) have asked for already. And it opens up new possibilities, like e.g. RAII. If you combine it with inline declared, block local variables, there are many possibilities.
  11. Rudy Velthuis

    Inline Variables Coming in 10.3

    The type is still safe. It just doesn't have to be repeated (IOW, you get DRY). So instead of var X: TObjectList<MyUsefultype>; begin X := TObjectList<MyUsefulType>.Create; You simply do: begin var X := TObjectList<MyUsefulType>.Create; The compiler does not guess. Type inference is not new either. You already had it for true constants and for certain generic functions (if the compiler could determine the type parameter, you don't have to specifiy it). You also had it when declaring a variable using Refactoring. Now you have it in the compiler. They type is not "guessed", it is determined. Also, if you do: var i := 17; then i is not a byte. The compiler chooses a useful type, in this case Integer. If you want something else but the default, you can do: var i: UInt32 := 17; so then you don't use type inference. It makes declaring types a lot simpler and doesn't require repetition, which means there is less chance for errors. I wish we had had it much earlier. These things: inline declaration, inline initialization, block local scope and type inference are all one new feature and belong to each other.
  12. Edwin Yip

    Delphi SQL Formatter

    Try GExperts -> Editor Experts -> Paste String As. This is a gem from GExperts. Furthermore - you have 'Copy Raw Strings' which does the opposite.
  13. Uwe Raabe

    Inline Variables Coming in 10.3

    At least it compiles...
  14. David Hoyle

    IDE Error Reporting problem

    Its been broken in some way shape or form for quite a while (since Berlin I think). I usually get an XML error. Its also been reported in QP.
  15. bernau

    IDE Code Coverage Plugin available

    I didn't visit the ECON. But everything, that has to do with IDE-Plugins, is very interesting for me. Is there any description available? What is the function of the Code Coverage Plugin? Do you have Screenshots?
  16. Sherlock

    New in 10.3: IDE UI Improvements in the Main Window

    Tokyo really is quake proof 😉
  17. toms

    Mute a topic?

    This would be a "Swipe to hide" function on a touch device.
  18. Mr. E

    Mute a topic?

    I wonder if there is a way of mute topics that aren't interested for me and got a lot of attention/posts that make it shows over and over. Using the "Fluid" option allows to see only that Forum, but sometimes a lot of topics are a little "annoying". Then if I want to read it again, unmuting that topic can be helpful too. (Thinking twice, seems like this topic is a good & bad example ) Regards
  19. Edwin Yip

    Mute a topic?

    I want this feature too.
  20. There is a book by Terence Parr on Language Implementation Patterns that might be of interest. Sue
×