Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


timfrost last won the day on February 24 2020

timfrost had the most liked content!

Community Reputation

44 Excellent

Technical Information

  • Delphi-Version
    Delphi 10.4 Sydney

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. timfrost

    50 Years of Pascal

    I am another UCSD Pascal user from about the same time, on my first microcomputer, a North Star Horizon (the model with the wooden case). I still have the CP/M and USCD Pascal disks, manuals, and 'User Manual and Report'; and the computer, but with no VDU to see if it still works. The first software tools I published were for various microcomputer-supported languages (including PL/1) before Lifeboat Associates persuaded me that C was the future. So I gave up Pascal and missed out on TP, only going back to writing in Pascal when Delphi 1 arrived
  2. In the Webinar yesterday, responding to a question about compiler updates/upgrades, I heard Marco say that 'Getit is a bit of a problem because it always uninstalls the old version before installing'. How can anyone defend this approach? What happens when you test the new version and something fails to work? Where is the old source code for you to compare the differences and either fix them or adjust your usage? A component installer should never force an install into the location of the production library; it should always be checked and validated before it is too late to do this.
  3. timfrost

    Visual Control for selecting a date range

    TMS VCL UI Pack has a 'calendar group' component that does exactly this, with three months to a view. I have used it and it works well.
  4. Very interesting topic! I also have been getting 10.4.1 IDE instability, and in 10.4 too. Not quite enough to stop work and try to track it down, but annoying. After reading the start of this topic I looked at my MMX version, and found it was 15.0.29, so I experimentally upgraded to 15.0.32 and the instability and hangs got much worse. I dropped back to 15.0.30 and no IDE problems yet. I run my IDE on a 4k screen at 200%, and dropping to 100% is not an option.
  5. For this sort of question I always used to go to www.efg2.com to find the answer, usually with success. It had code samples for all sorts of graphics and color algorithms. The site has gone now, but if you go to that URL, it has links to the Internet Archive where it can all still be found. A bit slower to navigate now, but perhaps worth a look.
  6. timfrost

    The Case of Delphi Const String Parameters

    We seem to be speaking here only about accidentally modifying the const string from inside the function. And Marco's blog did not mention the word 'thread'. But presumably another thread could cause the same address problem by modifying the string, and the problem would not arise if the function lacked the const and was therefore passed its own copy to read. Or am I overcomplicating this?
  7. timfrost

    madexcept inside a DLL

    I suggest you look instead at : http://help.madshi.net/madExceptDemo.htm
  8. timfrost

    IDGlobalProtocols GmtOffsetStrToDateTime

    If you need to handle time zones all around the world, for users and senders in different time zones, I recommend TZDB from https://github.com/pavkam/tzdb. It is essentially a single PAS file which has all the TZ and DST data and functions you need. There are also other tools, including one to update the source code from the IANA database, which is updated a few times a year. Of course you also need to follow the advice above about how to parse the input! As I have said here before, I suggest tweaking the database extraction tool to exclude all the historical data, which it seems unlikely you will need.
  9. timfrost

    FastMM5. Can't get a log file

    You can call FastMM_ApplyLegacyConditionalDefines if you already have defines in your code to control logging; it will then use them. But there is new, finer, control of the logging for FastMM5 and you can select FastMM_LogToFileEvents as you wish. The extensive documentation in the source describes all this, and there are basic instructions about logging options at https://github.com/pleriche/FastMM5. Someone (but perhaps not from the USA during this holiday season) will no doubt be along help with a more comprehensive answer; I mainly make do with the defaults.
  10. Your logs only show what is coming in, not what is going out, but my guess is that the Indy server rejected the BDAT command (binary data) as invalid. I have never seen one before in the wild, and I see that the RFC1830 that introduced this command in August 1995 marks it as 'experimental'.
  11. timfrost

    Issue with UsesCleaner..

    I have only seen a link to a zip with the EXE/CFG files. If I had known where to find the source I might have worked out what compressed=0 does!
  12. timfrost

    Issue with UsesCleaner..

    It would be much more logical to have an option in UsesCleaner which makes it follow the settings in GExperts formatter. I want to define my formatting preferences in the formatter, which seems to me to be the right way to do it. Why should I have to reformat every unit with my chosen formatter settings (without any option set to match another application, of course) in order to fix the unwanted format changes that the UsersCleaner has made? If I could find the UsesCleaner site and a place for feature requests, I would add one: please add an option to never change unit sequence and never add or delete newlines in the uses section and always retain comments. This would then cover a preference in any formatter to have one unit per line.
  13. timfrost

    Listview control with filtering like File Explorer

    I use TMS TadvStringGrid when I need to do this, but it is not free and not available on its own. It can build the combobox with an entry for every different value in the column, or you can override it to create entries manually such as 1-20. 21-40, >40, and filter them yourself. It puts an icon in the header row which you click on to filter. I am sure that there are other grids available from other vendors with this capability, but I happen to use TMS
  14. Despite the name of this topic I cannot remember seeing any of your code which actually references a UTFstring. If you want an answer to the original question, the 'lazy programmer' solution (and so occasionally mine) is to pass the UTF8 text to the Windows API MultiByteToWideString function with source code 65001 (UTF8). With the normal options, any invalid UTF8 sequences should be returned as Ufffd in the returned Unicode string, and you can walk the result and drop them. This is not the 'proper' way to approach the problem, but it should work.
  15. timfrost

    Project Magician gotcha

    Sent; it is my broken project file which causes it to crash!