Jump to content


Popular Content

Showing content with the highest reputation since 07/24/19 in Posts

  1. jbg

    IDE Fix Pack 6.4.3 breaks compilation

    This bug is now fixed in version 6.4.4. IDE Fix Pack 6.4.4 for Delphi 10.3.2
  2. Yeah, minimal... like dealing with every possible language for weekdays the mail could contain regardless the local language of the system the software is running on...
  3. ŁukaszDe

    IDE Fix pack for Rio

    New version for 10.3.2:
  4. Hi, Lately I've been using a lot more $IFDEF than I use to. And modifying code in the wrong block is what worries me, since there's no difference between active and unactive block. For example: {$IFDEF USE_FEATURE} { .. procedures and functions using a feature } {$else} { .. procedures and functions not using this feature } {$endif} USE_FEATURE might be defined as a project conditional define or in an included unit.( that really depends on the project) Anyway, I would like to know if there is an extension that would use syntax highlight in the {$IFDEF} block when USE_FEATURE is defined, fade the {$ELSE} block, and of course if USE_FEATURE is not defined, the $ELSE block would be colorful and $IFDEF block grayed out. TIA,
  5. Hi everyone, I would like to share with you that my new book has reached the production stage and will be available in September by Apress. The book is about Object Relational Mapping in Delphi and explores TMS Aurelius-- and excellent ORM solution for Delphi developers. I would, also, like to cordially thank Wagner Landgraf and Nick Hodges who were the tech reviewers of the manuscripts. Nick (who does not need any introductions) always shares his deep experience and has been very supportive while I was writing this book. Wagner (the creator of TMS Aurelius) has been guiding me with his expertise and suggestions to produce a presentation of Aurelius based on real-life situations. Thank you both. I hope you enjoy the book and I am looking forward for your feedback. Regards, John
  6. David Heffernan

    Disaster planning by archiving GetIt installers

    How easy does it seem right now?
  7. David Heffernan

    The Android 64bit deadline warnings have started

    Thanks. Actually I think we agree on most things, we just have a disagreement on the mechanics of SO. I don't think that's very important in the grand scheme of things, and I am extremely appreciative and admiring of all the good work you do in the Delphi community.
  8. Stefan Glienke

    Generics and Interface

    It does. The reason it's not supported is because Delphi Interfaces are COM based which restricts this. A generic type parameter on a method is just that: a parameter - but resolved at compiletime to provide type safety. You probably have never used any language where interfaces easily support methods with generic type parameters - otherwise you would not have this opinion. FWIW this is one of the reasons I so strongly wish for interface helpers because then it would be possible to add such methods via helper - the COM based interface itself is not affected but you can easily augment them with such methods. In 2014 I wrote some code that shows how such interface helper methods could be invoked similar to record helpers: https://pastebin.com/acp2i645
  9. David Heffernan

    Disaster planning by archiving GetIt installers

    Why would any professional programmer be using getit anyway? As I understand it, it is suitable for hobbyists and no more.
  10. Andreas just released a new Fix Pack update for 10.3.2: https://www.idefixpack.de/blog/2019/07/ide-fix-pack-6-4-3-for-delphi-10-3-2/
  11. Dalija Prasnikar

    Overflow in Compile

    Working as designed. Compiler evaluates mathematical operation first and only then it will do assignment. Since your operation works on two integers, the result will also be integer - and it will overflow at compile time. You need to typecast at least one of the operators to Int64 to widen operation result.
  12. Since I have never used GetIt for anything: Does installing those components that are free (not just demos) and those that you can buy via GetIt (is that actually possible?) also install the source code? In that case I would not bother backing up the components or any installer files but would move the source code to my own SCM. Whenever an update from GetIt is available, I would then update that SCM. Updating from GetIt would only be done on one particular installation, every other installation would use files from the SCM. In particular I would expect a company that uses Delphi to have a policy of never directly using GetIt and never use binary only components. Any company that does not have such a policy I consider likely to go belly up in the near future. It has become more likely that a component vendor goes out of business than ever before. (OTOH, I am not sure whether a company that uses Delphi nowdays isn't doomed anyway. But hey, I am working or one. 😉 )
  13. Uwe Raabe

    Refer to Form Control without using the Form unit?

    That is not breaking cycles, but actually creating them. Cyclic dependencies in the interface simply don't even compile. Therefore cyclic dependencies are only possible in the implementation section.
  14. The most important thing for me is the tasks performed by the end of the reporting period and the lack of hints and warnings in my modules. I now have no opportunity to correct this situation in all projects (consists of 6128279 total lines), when our team consists of more than 30 developers and every day there are fixing dozens of commits to the repository. This should be the basis of the corporate code development culture, but unfortunately we have not yet come to this point.
  15. [OT] 1068 Hints 1937 Warnings How do you see anything ...the most important things. [/OT]
  16. John Kouraklis

    Time Zone Library

    I came across this library and thought to share. It offers management of time zones if anyone is interested. https://github.com/pavkam/tzdb
  17. On the good side, they don't support pink goggles, either. 😉
  18. From Google Play today : Thank you for your patience while we reviewing your request. I'm happy to inform you that your app "*********" has been approved for 64-bit extension. Please note that the extension will only be given until August 1st, 2020. In addition, once your app is compliant with 64-bit, please let me know by replying this email. Thank you for supporting Google Play. Have a nice day!
  19. David Schwartz

    Disaster planning by archiving GetIt installers

    a lot of stuff on GetIt has nowhere else to get it from. Raize Components, for example, have not been distributed directly since they were incorporated into GetIt. I haven't been able to make GetIt work for 18 months due to persistent errors that have gone unfixed. How am I supposed to get updates any other way? Heck, I don't even know if GetIt distributes source or just the object files! A lot of my personal projects have become hostage to this Good Idea that has run amok, and if my maintenance agreement expires, they may well disappear -- if Embt refuses to fix problems that occur and you can only get a fix if you have an active maintenance contract, you're basically hosed. Also, while I don't personally use them, there are several libraries that commercial products I've worked on over the past 10 years that rely on other libraries currently distributed only via GetIt. Because newer updates were unavailable last year, we spent quite a bit of time migrating older source to newer Delphi versions. This was not looked on favorably by Management, because we had just spent a lot of money on updating our licenses and when we contacted Embt, we were only told that there's a problem with GetIt and we'd just have to wait until it was fixed -- "probably the next release". What the heck kind of "support" is THAT when your company has shifted to a business model based around SELLING SUPPORT AND MAINTENANCE CONTRACTS??? It's PATHETIC. Embt has chosen to bury stuff inside of GetIt while refusing to offer ANY KIND OF ALTERNATE MEANS OF DOWNLOADING IT, and it's stuff that's used in a LOT of LEGACY projects. I don't care what anybody's PERSONAL opinion of GetIt is ... it has become the ONLY means of accessing several Delphi-specific libraries that are used in LOTS of LEGACY apps currently being supported by Delphi customers who have active maintenance agreements, and it would be cost-prohibitive to replace some of them.
  20. Storing dialog sizes and positions in the registry is not best practice imo and should be stored in %localappdata% or similar
  21. Uwe Raabe

    Refer to Form Control without using the Form unit?

    @Cristian Peța That looks like a perfect candidate for the Visitor explained in this article: The Visitor Pattern – Part 4 avoiding all the is type calls and type casting. The above code would break down to implementing a TTranslator class like this: type TTranslator = class(TVisitor) protected procedure IterateComponents(Instance: TComponent); public procedure VisitAction(Instance: TAction); procedure VisitComponent(Instance: TComponent); procedure VisitControl(Instance: TControl); procedure VisitCustomForm(Instance: TCustomForm); procedure VisitCustomFrame(Instance: TCustomFrame); procedure VisitMenuItem(Instance: TMenuItem); end; procedure TTranslator.IterateComponents(Instance: TComponent); var I: Integer; begin for I := 0 to Instance.ComponentCount - 1 do Visit(Instance.Components[I]); end; procedure TTranslator.VisitAction(Instance: TAction); begin end; procedure TTranslator.VisitComponent(Instance: TComponent); begin IterateComponents(Instance); end; procedure TTranslator.VisitControl(Instance: TControl); begin if Instance.Action = nil then begin end; end; procedure TTranslator.VisitCustomForm(Instance: TCustomForm); begin { translate form parts ... } { translate components } IterateComponents(Instance); end; procedure TTranslator.VisitCustomFrame(Instance: TCustomFrame); begin { translate frame parts ... } { translate components } IterateComponents(Instance); end; procedure TTranslator.VisitMenuItem(Instance: TMenuItem); begin if Instance.Action = nil then begin end; end; Instead of calling TranslateForm(MyForm) you would call Translator.Visit(MyForm)
  22. David Heffernan

    Disaster planning by archiving GetIt installers

    The issue is not what components you use. The issue is the development process. You need to be able to create development environments in a robust way. These environments need to be identical. And you need to be able to build with different versions of your codebase, including different versions of your components. That isn't something that you get with naive package manager use. Yes. That's pretty much the point.
  23. The problem described here is the basic reason (of course there are others) why I have never considered downloading from Getit any tool or component we will use in a production environment. We have source for all the components we use and for every one the BPL/DCP is built by a Finalbuilder project under our control. And if you download and install something from Getit (when it comes back up) how do you check precisely what has changed since you last downloaded it? Where has your older version gone, for comparison?
  24. Uwe Raabe

    Delphi 10.3 Update 2 available

    Isn't that what they call cyclic dependency?
  25. David Heffernan

    The Android 64bit deadline warnings have started

    Perhaps this comes down to perception, and the type of work involved, and the other attractions of the company, but personally I hire programmers. If they don't know a specific language when they arrive, we teach them that language. I don't really buy in to the idea that there are Java programmers and C# programmers and Python programmers and so on. In my mind there are just programmers.