Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 10/01/19 in all areas

  1. Remy Lebeau

    Changes in Parallel Library

    I have seen many people report many problems with the PPL over the years. And for that reason, I REFUSE to ever use the PPL at all. I don't trust it. It hasn't worked right since day 1, and Embarcadero just can't seem to get it right. I prefer to stay in control of my own threads.
  2. Doesn't sound very much like dvcs is what you need. Sounds more like a central database is what you need.
  3. Don't tell me - but this the almighty excuse brought up by the decision makers almost every time some issue like this is brought up - "but what about existing code" - like for that dreaded "directly passing result of ctor call to interface parameter issue" - what about existing code? Well existing code is most likely suffering from a defect. The stupidity of the Delphi compiler in almost every aspect and the unwillingness to change anything significant on that is making me furious!
  4. David Heffernan

    Memory leak in thread

    graphics32 is generally faster than gdi I believe
  5. David Heffernan

    Memory leak in thread

    Or a pure Pascal library like graphics32
  6. Remy Lebeau

    Memory leak in thread

    That leak report is suggesting that a UnicodeString allocated when the TCanvas.Font property creates its HFONT handle is being leaked. Why, who knows. The only UnicodeString I see allocated in TFont.GetHandle() is from a call to System.UTF8ToString(), and the compiler should be cleaning up that UnicodeString automatically when TFont.GetHandle() exits. That being said, do note that TBitmap and TCanvas ARE NOT THREAD SAFE. One thing I notice in your code is that you are unlocking the TBitmap canvases after drawing, but you said that the TBitmap objects are being "freed later". As soon as you unlock the canvases, the main UI thread is free to swoop in anytime and free the GDI resources behind the TBitmap objects' backs. That very well could cause race conditions that lead to problems. You have to keep the canvases locked for as long as you are using the TBitmap objects in a thread. Otherwise, don't use TBitmap in a thread at all, use straight Win32 API calls instead.
  7. Remy Lebeau

    SFTP client

    Thanks, I'm already aware of that implementation. I had discussions with the author about it, I just haven't had a chance to incorporate it directly into Indy yet: #49 Create an SSL IOHandler for Win32 that uses Microsoft CryptoAPI instead of OpenSSL
  8. Given how many developers have got problems understanding how a distributed version control system works, I doubt that non technical people will understand it. And given how many times I personally had problems resolving git oddities (probably due to my own limited understanding of it), I doubt that you will do yourself a favor implementing this with git. This will most likely become a support nightmare, especially in my experience with the attitude of sales people towards IT and software developers. (They regard them lower than plumbers because in contrast to sales who earn the company lots of money IT only costs the company money and gets always into the way.)
  9. I would have imagined that you'd want some coordination, not everybody having their own copies, all different. Also, git in particular, and dvcs in general are very complex. You sure you want to throw that at your users. But hey, what do I know about your needs. Nothing. If you want to use git then go ahead. For instance with libgit2.
  10. Remy Lebeau

    Memory leak in thread

    Well, how do you expect people to help you when you don't show everything you are doing? How do you know the resources are even being leaked at all? Do you have a leak report from somewhere?
  11. Sherlock

    How best to update from 10.3.1 to 10.3.2?

    Well that's one of the drawbacks, when you switch from boring old monolithic to DLL/BPL/.net hell (preferebly a mix of all three, just to make sure). And no, @PeterPanettone I do not think a 12 year old developer should be confronted with this madness, it would scar the poor child for life.
  12. PeterPanettone

    How best to update from 10.3.1 to 10.3.2?

    A 12-year-old developer could do this in a few days. It is very simple: Do all the things programmatically the user does manually. I really don't see why this should be difficult.
  13. Inside the Code Explorer drag the interface onto the class name. MMX will open a dialog where you can see which methods will be implemented and which method sigatures might possibly get corrected because of changes in the interface definition. EDIT: MMX will show the implemented interfaces below the class name. You can repeat the drag operation to update the class definition whenever the interface definition changes.
  14. Arnaud Bouchez

    JSON as a way to save information in Firebird

    For a regular SQL DB, I would use a BLOB SUB_TYPE TEXT field, to store the JSON content. Then duplicate some JSON fields in a dedicated stand-alone SQL field (e.g. a "id" or "name" JSON field into regular table.id or table.name fields in addition to the table.json main field), for easy query - with an index if speed is mandatory. So, start with JSON only (and a key field), then maybe add some dedicated SQL fields for easier query, if necessary. side note: I would rather use SQLite3 or PostgreSQL for efficiently storing JSON content: both have efficient built-in support. Or a "JSON native" database like MongoDB.
  15. Thanks for all the replies. I think I used the web installer to install 10.3.1 - so I'll give that a try (backing up the VM first). Yes, I've found that some projects, especially those originating in older releases (e.g. Delphi 7 or 2010) and then dragged through later releases, start to behave in odd ways. For example the application version and build number settings don't stick - or when compiling, a different version number is assigned to the build than what is displayed in the project Options dialog. It trips up source control too. Perhaps there's an easy way to say 'start a new clean .dpr/.dproj file for this project'? It would be great if the Delphi Help menu included a Check For Updates item, as a quick foolproof way to update within the same series (e.g. 10.3.1 to 10.3.2 etc.)
  16. Lars Fosdal

    How best to update from 10.3.1 to 10.3.2?

    If you installed 10.3.1 in your VM with the webinstaller, you can simply download the new webinstaller for 10.3.2 and run it. It will still automatically uninstall the previous version, but if you select to keep the configuration, it will remain configured for 10.3.2. If you installed 10.3.1 in your VM from the ISO image, I recommend uninstalling it before installing the 10.3.2 from either the new ISO image or the new webinstaller. Personally, I always use the webinstaller. /off-topic: Considering the number of new features in 10.3.2, I am a little miffed that you can't have both 10.3.1 and 10.3.2 installed at the same time.
  17. 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...
×