Jump to content

Edwin Yip

Members
  • Content Count

    430
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by Edwin Yip


  1. There is also Lasse's TPDFiumControl which is based on Andy's PdfiumLib which is in turn based on Google Pdfium (used in Chrome).

     

    Basically, PdfiumLib is a Delphi wrapper for Pdfium, but the rendering of pdf is one page at a time, and TPDFiumControl adds a vertical scrollbar.

     

    There is also Paul's PdfiumReader (similar to TPdfiumControl that adds vertical scrolling, but uses a custom build of Pdfium dlls), but unfortunately, it's GPL licensed and no other commercial options are available.

     

    I found that Pauls' PdfiumReader is much faster when scrolling than TPdfiumControl.

     

    That being said, if TPdfiumControl is as fast as PdfiumReader  (when scrolling), it'll be perfect.

     


  2. 2 hours ago, angusj said:

     

    Done.

    Also, there was a problem with the last update where I failed to upload a recent change in Img32.pas which caused problems in Img32.Layers. That's now fixed too.

    I've also made a minor update to the Layers301 sample application.

    https://sourceforge.net/projects/image32/files/

     

    layers301.png.8108f60d22a21b6cdd9efe160c3380c7.png

     

    Thanks Angus, I'll check it out!

    What a vivid colorful looking of the picture! It reminds me the early days of the web 2.0 era where all websites have such vivid colorful looking.


  3. Thanks for your continued effort in making Image32 better and better!

    So I want to use your svg viewer, and would like to make the following changes, and I'm wondering if you accept pull requests (or does sf.net even have a "pull request" feature?)?

     

    • Change `TBaseImgPanel.fScrollbarHorz  : TPanelScrollbar` from private to public, so that I can implement my own key-bindings for panning the image view.
    • Add `OnMouseWheel` event.
    • Make `TBaseImgPanel.ScaleAtPoint` public so that can I implement customized zooming.

    Basically, I want to change the way how the image's zoomed out/in and panning.

    Thanks!

     

    15 hours ago, angusj said:

    Just updated to version 3.2

    https://sourceforge.net/projects/image32/

     

     


  4. On 8/16/2021 at 8:37 PM, luebbe said:

    Additional Info: SVGIconImageList has a wrapper for Image32, so Image32 can be used as one of four rendering engines for SVG icons. Since it proved to be the best of the four, @Carlo Barazzetta has made it the default.

    See: https://github.com/EtheaDev/SVGIconImageList

    Just tried the Image32's SVG viewer, the rendering result is almost perfect in my eyes! You've done a great job Angus!

    • Like 1
    • Thanks 1

  5. Well done Conrad! Several thoughts (feel free to ignore if any of them doesn't make sense):

    • Like others say, the console IDE extension should get more power by directly embedding cmd.exe or the PowerShell window.
    • Maybe it's more convenient to immediately create a console window for the current project, after clicking the Tools menu item.

    Hope it helps.


  6. 13 minutes ago, David Heffernan said:

    Nah, I don't really believe anything that you are saying here. 

    Oh, this is the third time I heard you simply saying "I don't believe you". The first time I heard about that from you is on a stackoverflow question I asked about my Delphi IDE strangely reset my frame sizes after each project reload (or IDE reload), and you said the same thing which I didn't bother to explain more ;)


  7. 11 hours ago, timfrost said:

    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.

    Actually I know that custom data can be inserted into madExcept report, but I don't have the user's license included because:

    • For bug reporting you usually don't need that until this strange bug report is submitted... 
    • The trial users don't have license info.
    • The inclusion of that info might lead to the need of considerations for compliance with laws like GDPR or something like that.

  8. 9 hours ago, Kas Ob. said:

    my thoughts here is some sandbox changed all of these binary names ... but most likely it is dynamically loaded means there is no import section in the EXE, hence the sandbox might be buggy and didn't change the dll and correct the runtime loading....

    Hi Kas,

    Thank you very much for your insightful thoughts, and I think you nailed it! The SQLite DLL is dynamically loaded in my case...


  9. The program in question uses madExcept to intercept and report exceptions.

     

    From time to time I got error reports about SQLite DLLs (I use mORMot and I use DLL for a reason) couldn't be loaded.

     

    All these error reports have the same characteristic - both the EXE name and the Windows account names are changed:

    computer name      : NIBFGAO55910842
    user name          : K1dtev0pKEBA0 <admin>

    executable         : wjabrmqkin.exe

     

    The EXE date is also strange because it doesn't match my program's version.

     

    So I suspect that my program's run in a virtual environment (should be VM-for-program but not VM-for-OS like VirtualBox) on the end-user's system.

     

    But I've no clue as to what is that, have you encountered similar issues? And how to avoid the DLL loading issue?

     

    Thanks.


  10. Very very very nice! And thanks for your great efforts in providing the Delphi community this powerful 2D library wrapper!

     

     Two questions:

    - What's the most convenient way to obtain the skia dll without building from source?
      Update:  Sorry, I didn't notice the external skia repository since I use TortoiseSVN to checkout github repos, but there is still not any DLL inside that repository...
     

    - What's the oldest Delphi compiler supported?

     

    Thanks!


  11. For my new project I need a template engine for generating web pages, while I have concluded which suited my needs the best and I'm quite confident about my conclusion, your opinions and comments might help me to make my final decision.

     

    Since mORMot is my go-to framework for server-side web development, the first candidate to consider is obviously DMustache, which is a fast Delphi/FPC implementation of the popular logic-less Mustache template engine. Actually I've used it in several of my projects and it's great. But sometimes I need more features, but as you know, logic-less means no "if", "while", and so on.

     

    And fortunately I found Sempare Template Engine, which is the only feature-rich template engine for Delphi ( Yes, I meant it, because we all know Delphi was/is mostly focused on GUI development but not web development...)

     

    Pros

    ===

    - Very very feature-rich, "if", "for and while loop", "include", "JSON", "custom methods", and so on. Basically, the feature set it's very close to template engines you can find in web-focused languages such as Java. No other Delphi template engine is even comparable (sorry, I love DMustache, but I also need "if" and "while"...).

    - Very well designed! You can tell by just looking at the unit namespaces and the source!

    - Documented, and with examples.

    - Well-tested (with DUnitX tests)

     

    Cons: While It's also open source, but for commercial uses you need to buy a license key with a very reasonable price.

     

    There are other template engines too, but IMHO, only DMustache and Sempare Template are serious, so I won't list them here...

     

    Your comments are welcomed!

    • Like 1

  12. On 6/23/2021 at 6:07 AM, Arnaud Bouchez said:

    @Stefan Glienke

    If you can, please take a look at a new mORMot 2 unit:
    https://github.com/synopse/mORMot2/blob/master/src/core/mormot.core.collections.pas

     

    In respect to generics.collections, this unit uses interfaces as variable holders, and leverage them to reduce the generated code as much as possible,  as the Spring4D 2.0 framework does, but for both Delphi and FPC.

    Most of the unit is in fact embedding some core collection types to mormot.core.collections.dcu to reduce the user units and executable size for Delphi XE7+ and FPC 3.2+.
    Thanks a lot for the ideas!

     

    It also publishes TDynArray and TSynDictionary high-level features like JSON/binary serialization or thread safety with Generics strong typing.
    More TDynArray features (like sorting and search) and also TDynArrayHasher features (an optional hash table included in ISynList<T>) are coming.

    Wow! So the collections in mORMot2 is/will be even more powerful!

    Great to hear that, and as always, we can rely on mORMt/2 ;)


  13. 12 hours ago, Arnaud Bouchez said:

    Is it only me or awful and undocumented problems like " F2084 Internal Error: AV004513DE-R00024F47-0 " occur when working on Delphi with generics?

     

    You are not alone! And sadly that's the reason I use as less as generics as possible... sometimes a re-build clears the issue, sometimes I have to re-boot the IDE, it's really unproductive...

     

    And, I thought the bug only exists in my old XE4 compiler, I didn't expect it also lives in the new IDEs... then I wonder, what are the new versions charge for??? ...

×