Jump to content

David Champion

Members
  • Content Count

    96
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by David Champion


  1. It looks like you are trying to create an Automation Object with dual ole automation interfaces.

     

    Delphi has a wizard that can generate the initial project.

     

    The project will include a .ridl file from which you visually design a Type Library.

     

    The Type Library designer can generate an implementation stub with all the user defined interfaces.

     

    These interfaces are derived from IDispatch, which are your so called DispInterfaces.

     

     


  2. 13 hours ago, xStingEucliffexxx said:

    To create my interface factory, should I create just the factory class or the class and a factory interface as well?

    if you are trying to implement the Abstract Factory Pattern then you will need to develop factory classes.

     

    A more common case is where you will simply sub-class from TInterfacedObject and implement 1 or more interfaces.

     

     


  3. 20 hours ago, Lars Fosdal said:

    Practices can only improve

    An alternate package manager needs to be controlled and run by an organisation outside of Embarcadero which would give the community a little bit more leverage.

    • Like 1

  4. This is a very good point, that the component-driven architecture is more than adequate to product loosely couple code.

    This has troubled me for many years.

     

    Most of the time I head off in the direction of developing/refactoring around interfaces and end up with an interface oriented-design.

    So many small interfaces, so loosely coupled, that dependency injection using Spring4D is an obvious choice.

     

    It works for me but the end result is far removed from the tooling support given by the IDE for components.

    Sometimes the interface design is clumsy and not as dedicated, short and succinct as it should be, closer to a class declaration.

    I often end up with an unnecessary abstraction where a more concrete implementation as a component would do just fine.

     

    Perhaps if the VCL had a different way of producing components that avoided the deep class hierarchies and used more composition there would not be this apparent tension.

     

     

     

    • Like 1

  5. If you are a beginner, as you say, you'd best select the simplest of choices available and extend from there.

     

    I would suggest registering for a AWS account 12 months free tier and using Aurora PostgreSQL.

     

    Just a 2 tier solution, Delphi and a cloud based database. 

     

    No need to spin up a server instance.

     

    If the version of Delphi doesn't support remote databases then look into a trial version of DevArts's UniDac components.

     

     

     

    • Like 1

  6. With a little help from Google translate I can make your question more accessible:-

     

    Tôi có Delphi 11.3 trong máy Mac được kết nối với Windows 11 (MacOS Ventura 13.3.1) qua Wifi chạy PAServer 22 (phiên bản :  13.3.12.7 )
    Nhấn nút "Kiểm tra kết nối" trong "Trình quản lý cấu hình kết nối" luôn cho tôi "Lỗi từ xa: Unknow LifeCycle : Sessio". Tôi đã tìm kiếm các diễn đàn và tất cả các mục của trang giải pháp lỗi bật lên hiển thị sau khi thử không thành công, nhưng tôi không thể tìm ra giải pháp...

    I have Delphi 11.3 in my Mac connected to Windows 11 (MacOS Ventura 13.3.1) over Wifi running PAServer 22 (version: 13.3.12.

    Pressing the "Test Connection" button in "Connection Configuration Manager" always gives me "Remote Error: Unknow LifeCycle : Sessio". I have searched the forums and all the items of the solution page pop up error showing up after the failed attempt, but I can't find a solution.

     

     

    Tôi đã hy vọng ai đó ở đây có thể có đề xuất hoặc chỉ cho tôi đi đúng hướng để tìm kiếm giải pháp.

    Cảm ơn.

    I was hoping someone here could have suggestions or point me in the right direction to look for a solution.

    Thank.


  7. It would not be a big investment to acquire these 3rd party libraries and make them available for free. A better way to increase revenue is to grow the user base.

    Trying to lure developers beyond the Professional SKU by hiding the value in the Enterprise works well when the content is attractive to larger companies.

     

    The Linux platform is attractive to all types of customer.

     

    This is a missed opportunity to grow the Community Edition in a similar fashion to Python for Delphi.

     

     

     

     

     


  8. I have used the RemObjects  Remoting SDK. This also has a degree of language and platform independence.

     

    The Remoting SDK has bidirectional TCP communications when using the called 'Super TCP Channel'.

    Remote procedure calls can be made asynchronously, includes client side proxy generation, security features and event notifications.

     

     

     


  9. 2 hours ago, A.M. Hoornweg said:

    Can serious optimization be done by a single pass compiler anyway?

    Don't believe Delphi is a single pass compiler. If someone who knows more please comment.. 

     

    edit: this Embarcadero blog suggests that it is single pass 


  10. 24 minutes ago, David Hoyle said:

    If people can decide on the grammar to be used I can translate what I've put into the repository.

    I would prefer the Antlr grammar mainly because you can build and test the grammar as you go with the tools provided.

     

    Also, there are some excellent books by Terrance Parr.

     

    I could try and revive my Antlr StringTemplate for Delphi project if the repo went in that direction. 

     

     

     

     


  11. Adding to what Lars has said about Continua CI; if you use Final Builder as a Build Runner within Continua CI you can setup and test the build scripts visually.

    There is an example script in Final Builder for Code Signing and Time Stamping your code.

     


  12. 4 hours ago, Alberto Salvati said:

    I have not a database to store hashs.

    Arnaud's suggestion was to hash the script(s) and store the hash value as a string constant inside the Delphi application and this in itself can be protected by signing the executable.

     

    So to verify, you can check the code signing to see if the executable and string constant has been tampered with or turn on Windows Smart Screen to block unsigned apps.

    After that, you can check if a freshly calculated hash matches the stored hash.

     

      

×