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

53 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

    Moving from Per Monitor V1 to V2

    I would suggest that before you claim to support pmv2 you should add a second monitor which you can run at a different DPI, and test everything. This is the best way to be confident that your users will find no surprises in your software. But even then if the user setup differs from yours, it may not be enough.
  2. I don't know the answer to that specific question. I know that you cannot run multiple threads rendering (different) PDFs to image formats simultaneously, which is why I use Foxit (formerly Debenu) QuickPDF Library for this purpose, where you can safely use multiple instances of the PDFLibrary class in the same process. Google 'PDFIUM multithread' for more information (some of it inconsistent or not recent). When single threading, we can use either library, and we find that very occasionally some (usually CJK) PDFs, which in general our users do not have control over, do not render with one and do with the other. Typically PDFIUM will report failures or unsupported PDF features, whereas QPDF is slightly more likely than PDFIUM to mis-render these edge cases.
  3. But anything based on PDFIUM has the limitation of single threading only. Which may not matter if you have a user interactively tweaking annotations and images, but it does to the applications I deal with.
  4. timfrost

    DevExpress PDF Viewer

    There is also the excellent PDFIUM DLL wrapper from Winsoft: https://www.winsoft.sk/pdfium.htm. You would not need to ship the PDFIUM DLL with every update of your software, though it does get updated from time to time. The viewer demo builds to 2.9MB, but the demo is a full viewer with scaling, rotation, printing, rendering etc.
  5. In a MadExcept bugreport there is nothing to stop you adding customer identification or licence details in the headings. No need for the customer to manually fill in anything. There are examples in the MadExcept documentation on how to do this in your application which generates the report.
  6. And mine too. North Star Horizon in a wooden case. I still have it.
  7. I liked the Vectorize demo, but it seems that saving the monochrome image to SVG is not finished yet. Or did I miss something?
  8. "For purposes of controlling the execution of the loop, the expressions initialValue and finalValue are evaluated only once, before the loop begins." You can use a 'while' statement to force the evaluation of the final value on every iteration. i := 0 while i < list.count do
  9. timfrost

    How to get the actual UTC time??

    However "funny" your user's country plays with daylight savings, the settings should be promptly reflected in the IANA database, which you can incorporate using the functions at https://github.com/pavkam/tzdb. If you are prepared to monitor updates (every few months) and recompile your application with the latest include file (many changes are historical only), then it is simple to convert UTC to a local timezone, including DST when applicable, which can be displayed accurately for users wherever they are in the world.
  10. Gimpel Software and PC Lint seem to be still around, and I still have a copy, though a version too old to run on Windows these days. I met Jim Gimpel a few times back in the days when one travelled to software development conferences, even for me across the Atlantic, to discuss and find new tools. Much longer ago than I care to remember.
  11. timfrost

    Delphi demands elevation?

    If you right-click the EXE and select Properties/Compatibility, is 'Run as administrator' checked? This setting would survive rebuilding and would also be unique to your own VM where it is running, as well as independent of the manifest it contains.
  12. So that means it's only one AV vendor that your company uses and that you have to contact? You mentioned 'scanners'.
  13. Trying to change source code to avoid this is a waste of your time. Any change or no change could make it go away tomorrow. Upload to VirusTotal, list those that catch it, and if it is important to you, see if the vendors will fix the false positives. And then it may be reported again when you next make a change and rebuild.
  14. timfrost

    Main screen tab error

    I copied one from 20.0 and changed Rio to Sydney and XE8 to XE9, which sort of works. But I hardly ever close a project or use this screen. It's either closing the IDE or simply opening another project, 99% of the time here.
  15. timfrost

    VCL Handling of dpi changes - poor performance

    After some of my VCL applications, I find the worst performer for repaints when dragging between different resolution screens is Regedit.