Jump to content

Sherlock

Moderators
  • Content Count

    1209
  • Joined

  • Last visited

  • Days Won

    25

Everything posted by Sherlock

  1. Sherlock

    Looking for RpShell, RpTable, RpDefine, RpBase, RpSystem

    @georges pletinckx I really feal you should elaborate on your question, but keep in mind that we do not support software piracy here in any way. I guess your project was created using the BE (bundled or borland edition) of Rave Reports back in the olden days. You'll just have to bite the bullet and install one of those old Delphis.
  2. Sherlock

    Sorting two lists in step?

    It sort of was: So the TDictionary approach is sound.
  3. Sherlock

    Stack Overflow Developer Survey for 2023

    I know that, I just considered it to be funny...hence the grin.
  4. Sherlock

    Stack Overflow Developer Survey for 2023

    A post with that many downvotes is usually closed... ...just sayin'.
  5. Sherlock

    How many people use Delphi?

    I'd like to think, that the "Delphi is fast" statement refers to compile times (only). But then I compile for anything other than Win32 and grow silent again....
  6. @Brian Evans I'm betting that @Uwe Raabe is referring to this https://www.uweraabe.de/Blog/2014/09/09/the-garbled-path-variable/
  7. Oh, I see it, believe me. And I'm looking forward to making more money by fixing stuff this so called AI breaks. Nothing wrong there.
  8. Sherlock

    Delphi 11.3 is available now!

    https://quality.embarcadero.com/browse/RSP-40658 and https://quality.embarcadero.com/browse/RSP-40808 Sound like this issue...and perhaps more.
  9. Sherlock

    bitmap is not displayed

    And to elaborate a bit on Anders great pointers on how to ask a question that will get usable answers: When posting code use the code tags! It makes code just so much more readable by coloring and over all prettying things up. As you seem to have noticed yourself, formatting the code by following general guidelines like this one https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Introduction to render it more human readable is also a plus. The less strain reading your code puts on the potential helpers eyes the more likely you will get great answers.
  10. Well, a platform change comes with a bunch of changes to compiler directives. And it has been my knowledge, that those only really take after a full build because some of the DCUs may be considered clean even though they have been compiled with a different set of directives. So of course you need to fully build after switching the platform.
  11. @David Schwartz But that is exactly the point: ChatGPT just blurts out unchecked stuff someone might naively use and if it compiles ... ships it. No matter what happens then. And that is simply unacceptable and dangerous, no matter how fascinating (or in my case not) on may consider the subject.
  12. Sherlock

    IEC 62304 Medical software standard

    That is a very good attitude and will most likely prevent this endeavor from failing. This is one of the very few examples where I actually value consultants....
  13. Sherlock

    Funny Code in System.Types

    FYI with 11.3 I get 4 Tests passed.
  14. ...and post the link here for us to follow, if we get the same issue.
  15. And once you've done that, just commit the "correct" version to your (D)VCS and since changes to forms are more seldom than changes to code you'll never have to go fish again, just refresh the form file from your repository.
  16. Sherlock

    Delphi 11.3 is available now!

    Oh, I get it! Thanks!
  17. Sherlock

    Delphi 11.3 is available now!

    Good news indeed. Goes to show that one should not copy&paste release notes 😉
  18. Sherlock

    Delphi 11.3 is available now!

    In the release notes: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Release_Notes#Launching_iOS_fails_with_PAServer_22
  19. Sherlock

    Delphi 11.3 is available now!

    Switching between VMs is not that arduous... What gets to me right now is that my GetIt batch file wont work. I get either or What gives? Now I have to install everything by hand again, along with the really tedious IDE restarting....
  20. Sherlock

    Delphi 11.3 is available now!

    It is sad to see, that PAServer on macOS still requires Python 2.7. Firstly because the guys over on the Python side always claimed breaking changes between the 2 and 3 branches where no biggie and secondly because even though they are they are fixable...
  21. So I've been digging into some component codes just for the heck of it, and stumbled across a whole lot of code like the following snippet: procedure Foo; var Bar: PArrayOfByte; begin // Do some more or less elaborate thing with Bar // and in the end FreeAndNil(Bar); end; Now, first off, that is not how I had understood FreeAndNil. I always thought it to be usable for object instances. Of course one could argue, that whatever is behind a pointer could be an object itself, but I mean some thingy that was created via a TObject.Create. And sure enough, Delphi 10.4 will no longer compile stunts like these. It will give an E2010 and bluntly state that TObject and PArrayOfByte are not compatible. And rightly so. So...What to do? How to fix? Given that (in the above crude example) Bar must have been allocated memory via System.GetMem or System.New, System.FreeMem or Sysem.Dispose will do the trick, right? Why was this not done in the first place, though? Why mix paradigms at the risk of creating some unholy entity mucking up the entire system? Perhaps looking into FreeAndNil will enlighten us? This is 10.3.1s take on that method: procedure FreeAndNil(var Obj); {$IF not Defined(AUTOREFCOUNT)} var Temp: TObject; begin Temp := TObject(Obj); Pointer(Obj) := nil; Temp.Free; end; {$ELSE} begin TObject(Obj) := nil; end; {$ENDIF} And here is what 10.4 considers to be correct: procedure FreeAndNil(const [ref] Obj: TObject); {$IF not Defined(AUTOREFCOUNT)} var Temp: TObject; begin Temp := Obj; TObject(Pointer(@Obj)^) := nil; Temp.Free; end; {$ELSE} begin Obj := nil; end; {$ENDIF} Subtle, innit? Now FreeAndNil requires the thing it's supposed to free and nil to be of TObject, which is cool. But it also considers it to be const...why is that? I learned const renders the parameter unmodifiable, see here: http://docwiki.embarcadero.com/RADStudio/Rio/en/Parameters_(Delphi)#Constant_Parameters. I also took a wrong turn somewhere and ended up in this C++ explantion of const http://docwiki.embarcadero.com/RADStudio/Rio/en/Const in detail this sentence: "A const pointer cannot be modified, though the object to which it points can be changed." OK, so we can change the object, we are freeing it after all. But then we also change where the pointer points to, by niling it. Now that should violate the const boundary, but it does not. Is it because of the "fancy shmancy" use of @s and ^s here? TObject(Pointer(@Obj)^) := nil; Why? Why go to the lenghts of casting, adressing and dereferencing? What are your thoughts and comments on this? I think this almost cured my urge to look into the sources of other people 🤣
  22. Sherlock

    Error when iOS application building in Delphi 11.2

    Just to mention another service: https://www.macincloud.com/
  23. @programmerdelphi2k I don't have a problem, what problem are you talking about? You had better either respond using quotes or address the person you would like to respond to directly. But posts like yours might very well lead to further misunderstandings.
  24. Sherlock

    Must have multiple var sections

    The var goes before the begin. procedure TfDesignMaster.PopulatePdlNotesWithValuePack(Sender: TObject); var stocknummm,value,value1,value2,keyfields, fieldname: string; F: TField; i: integer; lresult: boolean; fn: TStringList; sl: TStringList; begin fn:=tstringlist.create; sl:=tstringlist.create; Surprisingly the DocWiki does not clarify this: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Variables_(Delphi) at least on that page.
  25. The issue I have with the (not so new) browser approach is as follows: It promotes a browser monoculture. A little bit over 10 years ago IE was a must have in the corporate world, because all the renowned applications would run on it, and only it. No other browsers could be used, and therefore as soon as somebody wanted to browse the internet, in some companies they where forced to use IE, resulting in catastrophic security issues, because MS got lazy and complacent in their browser development. Everybody that counted needed it, and anybody that didn't like it didn't count. But this got so far that the fine people who developed browser based applications got just as lazy and complacent ("learning from MS means winning" and so forth), resulting in even worse applications, that only ran on specific IE versions. It was then that responsible IT departments had to allow the installation of other browsers, if only to allow for safe browsing. IE was the biggest target for malware by far.... I have taken a lunch break and noticed I drifted off. So let me get back to the point. The only good reason for browser based applications is the zero install "feature". I admit, that is a tough one, for the usual Java, .net crowd what with their frameworks and version jungle and so forth. But for us Delphians? Come on! As I always say: monolithic applications rule! No need to install pesky frameworks, DLLs or other version dependent nuisance, just run it from a network share. As for the current browser high. Do they really check if their applications work with all browsers in all OSes? Short answer is "No" which leads us to monoculture with all the bad things that entails.
×