Jump to content

Edwin Yip

Members
  • Content Count

    430
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by Edwin Yip

  1. Yes, the bottom-most panel is alClient, on the second level are a list of row-panels with alTop, and on the third level one is alLeft and another is alClient. I'll try to get a reproducible sample later after the more important tasks are done... Thanks for your concern.
  2. Thanks for the info. I'm not sure (yet). I'll be back with more details...
  3. Edwin Yip

    simple PDF editing need

    With my very limited knowledge in this area (in the information collecting stage for a possible future project), ActiveX solutions aside, AFAIK, there is only one free option - use the low-level API of PdfiumLib, but I'm not sure if there is any Delphi sample code. If you can wait, ImageEn developer is planning to add such annotation feature to that lib (with has a PDF viewer already).
  4. Do you mean this algorithm : https://blog.disy.net/sugiyama-method
  5. Edwin Yip

    Where is Ctrl-F3 coming from?

    Try this magical Delphi Expert: https://github.com/NickRing/Delphi-Shortcut-Finder It's as amazing as a magic! I'm using an older version for my old XE4.
  6. Alternatively, Maybe raise a request to the CNWizards team for their InputHelper module might get such feature implemented faster ;)
  7. Edwin Yip

    Report Builder + HTML Library + Office Library.

    Wonderful! FWIW, please consider QuickJs ;)
  8. Edwin Yip

    Report Builder + HTML Library + Office Library.

    Hi Alexander, Another question, do you have a plan to provide JavaScript support in the future for HCL in the future? I'm not asking for any concrete time-frame but just if a plan is there ;)
  9. Edwin Yip

    Report Builder + HTML Library + Office Library.

    Great! Pity. Can't the editor provide events like `OnBeforeDeleteElement`, `OnBeforeEditElement`, and so on?
  10. Edwin Yip

    Report Builder + HTML Library + Office Library.

    Hi Alexander, Good job! May I take this chance to ask, can you control which elements can/cannot be modified in HCL editor? For examples: Allows some <p> texts to be editable while some cannot be edited. Disable deleting of <p> tags while allowing editing the texts. And so on...
  11. @darnocian, according to the documents, since custom function for the template must be defined as static class methods, how do I access contextual data in those utility methods? I can see you can use `class var` to pass contextual data to the utility class before calling `Template.Eval`, but in case of multi-threaded template rendering, it seems that locking is unnecessarily needed. But at least it's workable? I'll try but you might have a better answer? Thanks. It'll be great if ITemplateFunctions.AddFunctions supports non-class methods, so that in the methods the object's fields are accessible.
  12. As you said, "I do understand however that you may have non technical users from which you may want to hide this detail.", and that's what I wanted, just like DMustache allows you to use methods (non-class methods) to define custom functions. Anyways, I understand that's the current status of the template engine, I can live with that.
  13. Oh, that make the template code complex, especially if you need third parties to write the template... And actually I'm asking something else - What I mean is how to access relevant data in Delphi utility functions, like TMyUtilities.DoSomething in the document example...
  14. With Sempare Template, how can you achieve recursive code generation? For example, in case of html page menu, the level is not fixed, how do you recursively generate the nested `<ul><li>` items? Thanks
  15. Oh, I think you misunderstood - what I mean is that you can customize the html code generated by `RenderMenu` by allowing the passing to it the `<li>` tags to use, for example, use `<li class="levelItem">`
  16. After more thoughts I realized that you can customize the starting/closing tags through function parameters, so that to be more practical.
  17. As I understand it, I think you are actually demonstrating option 1? However, it's not suitable for me since I need the logic to be represented in the template code. But thanks all the same. The nested for loops does the work - all after all, the menu always have a limited nesting level, on contrary to my original statement...
  18. Thanks, no hurry, because I've solved the issue with nested for loops in the template code. The recursion must be represented in the template code in order to be helpful in my case.
  19. @Dany Marmur, Thanks for sharing. Without sample code actually I'm not sure what does "use a stack in the template" as described by @darnocian actually mean. I use nested `for` loops to access the tree structure passed to the template engine.
  20. Thanks for the help. I'm trying to use option 2, by passing multi-level nested objects that represents the menu structure and in the template code use nested `for` loops to generate the `ul/li` items.
  21. This is a great news!!!! Can you point us to the specific page on your site that describes this feature in detail? Thanks.
  22. Edwin Yip

    How to manage feature changes during release cycle?

    I bet you yourself are that friend of your own :D
  23. I don't know that limit. Do you mean you cannot manipulate the pdf with Pdfium in a background thread even using a legitimate locking mechanism?
  24. ImageEn will be unbeatable if it allows editing and saving of pdf annotations like what you can do with it against images. I had a look at the Pdfium interface, it seems to provide such API.
  25. Thanks for your answer. 1. Do you use Pdfium DLL or .obj files? I prefer the later, if even possible. 2. Do you mean with ImageEn you cannot annotate a pdf at all, or do you mean you can annotate it but cannot modify the annotation after saving it to disk?
×