Jump to content

Leaderboard


Popular Content

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

  1. Stefan Glienke

    Modern C++ and Delphi

    FWIW in Delphi that fear is often caused by the fact that new features often don't work for years and are poorly designed so they affect some important aspects negatively such as compile speed or runtime performance which often you encounter way later when you already extensively use them (latest example: inline variables). Many other languages have a plethora of incredibly smart people designing things for years with enough time to thoroughly test and ensure they are zero or minimal overhead.
  2. David Heffernan

    Modern C++ and Delphi

    Given that you weren't aware of using, it seems that you may not be fluent and experienced with C++. Are you sure you are best placed to be offering critiques of the language? Certainly my experience of using local variables in C++ differs greatly from yours. It is incredibly valuable in my experience to declare local variables at the point of use and with a narrow scope.
  3. FredS

    Add a system-menu item to all applications?

    Never heard of him 🙂
  4. FredS

    Detect if running in a remote session..

    Detecting the Remote Desktop Services environment
  5. Uwe Raabe

    Changes in Parallel Library

    I would prefer when PPL would be fixed and stabilized instead of not being used at all. There is a couple of functionality in Delphi that relies on PPL and that would need to be reinvented where another external library is used. The lack of manpower dedicated to this part of the RTL (and a lot of others) is a real drawback. I wish Embarcadero would allow more participation from the community or at least all the MVPs that already offered their help in these areas. Another option would be to open source the standard libraries and accept pull requests, but that seems to be only at the edge of their radar - if at all.
  6. You haven't told us what TPath.GetDocumentsPath returns for you in 10.2. I suppose the same as in 10.3. And I suppose the same for TPath.GetSharedDocumentsPath. Do you see any difference between 10.2 and 10.3? Because targetSdkVersion is now 28 in your manifest and you need to ask permission for what you want to do. This is an Android OS request. Nothing to do with Delphi.
  7. rvk

    Add a system-menu item to all applications?

    Yes, there are... (although I could also appreciate the comment of FredS ) I have it working here in 64 bit. Besides the INVALID_HANDLE_VALUE I mentioned earlier, you need to use the correct GetMsgProc() definition. The one now used is only valid in 32 bit. If you change it into this it worked here (both in the implementation and interface part). (although you might want to avoid a parameter named wParam because it is also a type in the Windows unit which you need, solved here with unit-prefixing)
  8. aehimself

    Add a system-menu item to all applications?

    Come on. Let us to have some fun, life is not only strict and serious work. After all, there are people who always try to put some humor into their writing.
  9. Alberto Miola

    New section for native apps

    I have been talking with Yaroslav Brovin recently (the creator of FGX native) and this project is going to be in public beta at the beginning of 2020. Would it be a good idea to make a section for it? If not now at least when the beta starts. FGX native will be an add on for the Delphi IDE This is a webinar unfortunately only in Russian; btw this will work for Android only at the beginning, iOS will come later. I attach some pictures of the documentation. More info on FGX are here: http://fire-monkey.ru/forum/370-native-fgx/ (use https://translate.yandex.com/ which is a good russian-english translator)
  10. David Schwartz

    Modern C++ and Delphi

    Fair point, but it's more a matter of "when" and "where"... I began using C in 1985, learned C++ about a year later and used it heavily from 1987 thru about 2000. Delphi was released in 1995 and it replaced C++ in my daily work by 2000. I used C/C++ at the time b/c I was doing embedded real-time system programming. Work in business apps, mostly under Windows, was taking off in the 90's, and it became far easier to find Delphi work than C/C++ work. Now it's getting hard to find ANY work b/c potential employers want to see 3+ years of immediate hands-on experience with whatever tools they happen to be using. (I remember seeing an ad for a job about 6 months after Apple published their iOS API that stated "must have at least 3 years experience working in iOS".) It's possible to learn pretty much anything, but you can't magically conjure up OTJ experience for them. 🙂 The last bunch of C code I looked at was some open-source stuff that was written in a way to simulate what C++ did, but in the author's words, "to avoid the overhead that C++ imposes at run-time". So instead, you had to write tons of highly stylized code to pretend you were working with classes. The last bunch of C++ code I looked at was well over a decade old and was about as "vanilla" as you could get. It hardly even implemented any of the idioms from that famous "C++ Idioms" book. Not a whole lot of consistency across any of the class designs. There was also a Delphi gig I had around 2004 where I was asked to maintain some code written by a guy steeped in C++; it was an unbelievably large and convoluted class library in Delphi that was extremely hard to figure out even with C++ expertise. Ditto for Delphi. In fact, all of the Delphi gigs I've had in the past 10 years were all maintaining D6/D7 code. Sadly the main reason a couple of them migrated to newer versions of Delphi was because the IT people there forced them to upgrade SQL Server and they needed to upgrade some libs they used with it that were only available in newer versions of Delphi. So aside from the fact that I try to keep up with the latest Delphi features myself, it's not due to any actual employment / OTJ needs. As an aside, there was a time I was working on learning Java. It's very similar to C/C++ in my mind, and Java 8 had just been introduced. I ran into a curious problem. I'd see job reqs that just specified "Java" (no version#) and libs like Spring. When I'd inquire more deeply, I'd find out they were almost all using Java 5. I talked with a VP of software at InfusionSoft at a job fair about this and asked, "When are you moving to Java 7?" and he admitted their entire platform was based on Java 5 and they had a few guys working on Java 6, but it would be at least 2 years before they could switch because they'd have to completely rearchitect their entire platform first. Meanwhile, he said they were hiring as many Java (?) developers as fast as they could. State Farm moved their world development HQ to Phoenix and they have been hiring Java devs like crazy. All Java 5 at the time I inquired, but they don't say that in any of the job reqs I've seen. I was particularly interested in the functional aspects added to Java 7, and not one place I talked with said they're using them (or even Java 7 itself). Kind of the same way none of the Delphi projects I've worked on use Interface units for anything other than those mandated by OCX. The last place I was at, my colleagues complained about my use of functional code stuff in Delphi using a library that made it much easier. It sure did simplify the code and make it a lot easier to read, but they just weren't interested. So I'm glad to hear there are places that actually keep up with new languages features and idiomatic uses. That's not what I've encountered over the past 25 years in this field, and not for lack of trying. I've found places that use the latest versions of Delphi, for example, but almost none of the features introduced since D2010. Trying to introduce them starts pushing upstream against fears rooted in the harm refactoring can have vs. stability. Very little new code is being written, and when it does happen, they want you to follow existing coding practices so future maintainers don't have to deal with a variety of coding styles. That sort of attitude is hardly language-specific in my experience. As the old saying goes, YMMV.
  11. ertank

    Android - Segmentation fault (11) when closing app

    I could re-produce that error simply by running the app and once it is completely settled, closing it. Even for that I have spend several hours and tracked problem down to specific database operation(s). I use UniDAC and suspected that their native DBF (dBase) support might be the problem. I have remarked relevant code lines and continue my development. At some point, I needed these database operations and removed their remarks. It is very strange that after that error is not each time but random. I am not getting that error anymore, now. I do know same lines are called at each time and they are doing exact same things. If it appears again, I am going to directly check these database operations though. Thanks for the help.
  12. Anders Melander

    Detect if running in a remote session..

    This works for me: function DetectRemoteSession: boolean; const SM_REMOTECONTROL = $2001; // This system metric is used in a Terminal // Services environment. Its value is nonzero // if the current session is remotely // controlled; otherwise, 0. SM_REMOTESESSION = $1000; // This system metric is used in a Terminal // Services environment. If the calling process // is associated with a Terminal Services // client session, the return value is nonzero. // If the calling process is associated with // the Terminal Server console session, the // return value is 0. The console session is // not necessarily the physical console. var Mode: string; begin Result := (GetSystemMetrics(SM_REMOTESESSION) <> 0) or (GetSystemMetrics(SM_REMOTECONTROL) <> 0); // Test for emulated local/remote mode if (FindCmdLineSwitchEx('Session', Mode, ['-','\','/'], True)) then begin if (SameText(Mode, 'Remote')) then Result := True else if (SameText(Mode, 'Local')) then Result := False; end; end;
  13. Stefan Glienke

    Modern C++ and Delphi

    IOW: no, they still don't work
  14. Darian Miller

    Check what Patches I have installed, or not?

    As long as you repeat them in the right order, I assume it work out fine as you will end up with all updates. But, it also might be a good opportunity to rebuild from scratch. What I have been considering building is a resource for every hotfix for every version, listed in order. Today it's a mess to try to go back and figure out how to properly install an older version and get all updates. I am waiting until their new EDN portal is released - hopefully they will have that ability built-in.
  15. Hi Team, D10.3.2. - Where/how do I check/confirm what patches I have or haven't installed into my Delphi? With the several Patches so far, I am uncertain which ones I have actually installed. I see docwiki,emb..... says there is a 'Check for Updates' allegedly in my Program Menu but there isn't. Regards & TIA, Ian
  16. Darian Miller

    Check what Patches I have installed, or not?

    AFAIK, since some patches are manually installed (files copied to a folder), currently there's no automated way of knowing if you have all the patches installed. Use this list of patches and go through each one to manually verify: https://community.idera.com/developer-tools/b/blog/posts/rad-studio-delphi-and-c-builder-10-3-2-list-of-patches I imagine someone could write a tool to scan your installation and tell you which patch level you are at...
  17. Stefan Glienke

    Changes in Parallel Library

    We have a catch 22 here. If stuff does not work I don't use it - especially if it tries to solve a task that has already been solved years ago. So if people don't use it less people are affected by bugs and less likely it is they get fixed - however even when issues are being reported by many people it takes time to fix them and only with an upgrade you get those fixes. With a library like OTL you don't need to upgrade your entire IDE to get some bugfix. This is the fundamental flaw you have when IDE, compiler and runtime are so tightly coupled that they cannot be upgraded individually. That plus a lack of quality control.
  18. eivindbakkestuen

    GExperts 1.3.14 released

    https://community.idera.com/developer-tools/b/blog/posts/rad-studio-10-3-2-runtime-packages-compatibility-patch-released
  19. Is there an IDE addin to automatically change for example this: var I: Integer; into this: var I: System.Integer;
  20. In addition to what @Stefan Glienke pointed out, there is a problem with your prototypes, your function does not change aQuality param so why you're passing it by value ? Also you're adding extra-no-sense comparison : if aQuality = rsPoor then Result := 0 // you may remove this one ! ... else Result := 0; // rsPoor covered here !
  21. The original code in QualityToInt causes a System.LoadResString for each "case" it checks every time you call that method and System._UStrEqual for the equals check. Neither of those two methods have changed between those versions according to the diff I just did. However LoadResString calls quite a number of other functions that I did not check for changes. I would say a dictionary is pretty much overkill here for those 3 strings - it only is faster because you eliminated the (as I assume) LoadResString calls every time. Try initializing values you compare to only once instead of comparing against the resource strings. I am pretty sure that will beat the dictionary.
  22. RonaldK

    Generic Command Line Parser for Delphi 10.3.x

    There is another one from Vincent Parrett: https://github.com/VSoftTechnologies/VSoft.CommandLineParser
  23. I used the Migration Tool to move my syntax highlighting from 10.2.3 to 10.3.
  24. Stefan Glienke

    How best to update from 10.3.1 to 10.3.2?

    Updating a single application even if complex is not a hard task, almost every other major IDE out there can do it. Only Delphi developers have to manually apply hotfixes by unzipping some archive and unblock the contained binaries...
  25. Remy Lebeau

    Best components for creating windows service apps

    Note that CodeCentral is going to be shutdown soon, see The future of CodeCentral announcement in the Embarcadero community.
×