Jump to content


Popular Content

Showing content with the highest reputation on 02/11/21 in all areas

  1. Carlo Barazzetta

    Native Svg parsing and painting in Windows

    A new brick added to this story: https://github.com/EtheaDev/SVGShellExtensions A short video/demonstration:
  2. Paperback edition of the book has been released. There is 50% discount for paperback edition for everyone who buys eBook edition. If you have already purchased the eBook version, and wish to buy the paperback, you're also eligible for a 50% discount! You can find instructions at: https://dalija.prasnikar.info/delphiebap/index.html
  3. @Dalija Prasnikar Aeauhm, look like it's UFO Technology for me 😄
  4. mael

    HxD hex, disk and memory editor

    HxD 2.5 was released with many feature enhancements and bug fixes. Here are the change log and the download. GregC/DigicoolThings published a disassembler plugin on GitHub for MC6800, MC6809, 6502 and related CPUs. The updated plugin framework can be found, here, as usual: https://github.com/maelh/hxd-plugin-framework If you like it, please star / fork it, so it becomes more well known. Donations are welcome if you want to say thanks.
  5. Henk Post

    Transform string into TDateTime

    Otherwise you neglect the date part calculated in the previous line.
  6. When you click on the combo, it explains that link will take you to the eBook, page and after the eBook purchase you will then receive link for purchasing paperback edition with discount. I guess you missed that part 🙂
  7. FPiette

    How to crash the ICS web server

    It is valid to provide an IP as an integer. Would be solved if parsing make use of int64.
  8. Bought the eBook recently. On chapter 8. I found several tips and explanations already that made it more than worth the price.
  9. Vincent Parrett

    Native Svg parsing and painting in Windows

    Nice work @Carlo Barazzetta 👍
  10. IMHO: First option (Classic). Delphi is typed so most collisions will be caught by type checking.
  11. Dalija Prasnikar

    Interface as Const parameter

    I wouldn't use any of those solutions. Because that is not golden rule. On the contrary, for reference counted types you would almost always use const to avoid unnecessary reference counting overheard. Problem is not in the method that has const, problem happens at call site. As such it should be handled at call site. First, handling it at call site allows you to trigger reference counting only for references that really need it, next, you will avoid situation where performance will become an issue and someone will go and change method signature according to common practice - using const and will inadvertently break code. Far better solutions than 1. or 2. are using additional variable instead of constructing instance during method call, This is also easy rule to remember - don't create anything inplace. Next solution would be explicitly typecasting TFoo.Create as IFoo And the last one, I like the most because it prevents you to make reference counting mistakes in other code, too, is to have class function that will create instance and return it as interface reference. As for finding all places where you can create possible problem and you need to fix it, simple search and replace can go a long way. For instance - if you have class function New, you can just replace TFoo.Create with TFoo.New and if have same parameter list, you are good.
  12. I don't think so. This is a highly desirable feature to be able to use an existing indentifier. There are rules that the compiler follow. And as @Rollo62 said, you can always use fully qualified names to designate what you want to.
  13. pyscripter

    Prevent External DLL from Exiting Application

    Sometimes it helps to trap the SystemExit exception. This would avoid many abnormal application exits. try: """ Add your Python code here""" except SystemExit as e:
  14. pyscripter

    Clearing the Main Module

    There are many ways to achieve what you want: 1. The ExecString has an overloaded form: procedure TPythonEngine.ExecString(const command : AnsiString; locals, globals : PPyObject ); You can pass a new empty dictionary to the locals and globals argument if you do not want to "pollute" the interpreter namespace. 2. You can manually do the clean up as you suggest above. 3. A more advanced way is to use subinterpreters (have a look at TPythonThread.Execute), but this is more error prone.
  15. HA, not to be harsh, obviously, you have little knowledge of the petrochemical industry. The device you utilized to type in/speak your post includes products from the "Oil" industry.
  16. A new SVG rendering option: Free Pascal wrapper for ReSVG.