Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 07/30/19 in all areas

  1. 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...
  2. 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. 😉 )
  3. 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.
  4. I too don't use the registry to store anything. I don't want to be part of the problem that created registry cleaners. And I don't trust uninstallers (or me) to completely free the registry from any thing I might have entered. It is easier to simply delete the %localappdata%\myProduct, for the user too, should I forget that 😉 The registry has become the same cluttered monster the win.ini was.
  5. Storing dialog sizes and positions in the registry is not best practice imo and should be stored in %localappdata% or similar
  6. Tom F

    GetIt work-around

    EMB has provided a temporary GetIt until their main servers are back up: https://community.idera.com/developer-tools/b/blog/posts/temporary-10-3-2-getit-server-for-installing-10-3-2-add-on-packages
  7. How to request an extension: Visit https://support.google.com/googleplay/android-developer/contact/publishing Fill out the form and select ‘I submitted a new app or app update but it is not live’ In the feedback field, indicate that your application was built with Embarcadero Delphi or C++Builder, and that you’d like to request an extension to the 64-bit requirement https://community.idera.com/developer-tools/b/blog/posts/google-play-store-android-32-bit-extension-for-delphi-and-c-builder-customers
  8. The recent GetIt failure has exposed some vulnerabilities many of us have in archiving our development machines. Using local backup procedures and virtual machines to archive our development machines is one way we can protect ourselves. But, another reasonable safeguard would be for us to assure that we can build our development environment from scratch, offline. Archiving the RAD Studio ISO is a good first step. But, if the GetIt servers are down, or if older versions of tools become unavailable for any other reason, the ISO is insufficient protection. Perhaps we can archive GetIt installers also? Marco's post (from last year) indicates that the IDE can create an html log of GetIt actions: http://blog.marcocantu.com/blog/2018-july-getit-install-logs.html. Examining the sample logs in his blog, it appears that C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\ might contain the downloaded installers that we could invoke using the command lines that are in the log. I plan to empirically test this approach, but thought I'd ask the expert community here for any insight or experience it has on this. Has anyone here ever tried to manually install GetIt downloads by examining this log and using command lines with the .exe files? Are there any rules about GetIt downloads being self-contained, or perhaps might they also download additional resources.
  9. 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.
  10. @Dave Nottage Well thanks, perfect tip again. I was alrerady diving deep in other tasked, but I just doublechecked this. There was a well hidden reference in OSX-specific code (typical copy-paste problem ) This reference was nicely separated in its own OSX unit uses {$IF Defined(IOS)} Sys.Power.WakeLock.Impl.iOS {$ELSEIF Defined(ANDROID)} Sys.Power.WakeLock.Impl.Android {$ELSEIF Defined(MSWINDOWS)} Sys.Power.WakeLock.Impl.Win {$ELSEIF Defined(MACOS)} Sys.Power.WakeLock.Impl.OSX {$ELSE} {$MESSAGE Error 'IWakeLock not supported on this platform'} {$ENDIF} ; but unfortunately the hidden reference resides in a region unit Sys.Power.WakeLock.Impl.OSX; .... {$REGION 'Windows helper functions'} function SetThreadExecutionState(esFlags: EXECUTION_STATE): EXECUTION_STATE; stdcall; external 'kernel32.dll'; {$ENDREGION} So this was hardly visible, if region was not expanded. Anyway, it was just this line, never used in the unit at all. Thats a good reason why I tend to avoid regions usually, and here I had one of the few places where I still used it by accident. I wonder why this never got any message/warning/hint/ under Macos32 ? Maybe Macos can make use of Windows kernel32.dll somehow Thanks for pointing me in the right direction. App is running now normally under Macos64 ( w/o any changes), even with the dirty Spring4D fix, and more important for me with Bluetooth LE support running at same code under Macos32/64 Bit (which was my biggest worry for me). Looks very good, need more time to test, but so far all is running out of the box. At compiletime I still get a warning: So maybe one day I find where this reference is, but for now I will check and test the more important parts. @Fritzew Thanks for the info, then I will be able re-test all my Spring4D related code soon. Since I already postponed this to the latest possible moment, and just started with the first project.
  11. I don't buy that argument. Your program needs to be able to adapt to changes in screen resolution. When restoring the form layout you must deal with the screen resolution having changed, roaming or not. User can change resolution, font scaling, changes attached monitors, etc. Having said that, I am sure that an argument could be constructed to justify not having such settings roam. In fact, using that part of the user profile that resides on the filesystem allows you to choose between roaming and local on a per setting basis. That's certainly an advantage over HKCU.
  12. EMB has provided a GetIt work-around: https://community.idera.com/developer-tools/b/blog/posts/temporary-10-3-2-getit-server-for-installing-10-3-2-add-on-packages
  13. f.m

    [FireDAC] Query.MergeDataset - how to use?

    To write changes to the database, try this: LQueryDest.CachedUpdates := True; LQueryDest.MergeDataSet( LQuerySource, TFDMergeDataMode.dmDeltaMerge ); LQueryDest.Connection.StartTransaction(); Assert( 0 = LQueryDest.ApplyUpdates() ); LQueryDest.Connection.Commit(); LQueryDest.CommitUpdates(); LQueryDest.CachedUpdates := False; A record will be saved if its UpdateStatus is Inserted or Modified.
  14. 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
  15. 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.
  16. David Heffernan

    Disaster planning by archiving GetIt installers

    How easy does it seem right now?
  17. 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.
×