Jump to content


Popular Content

Showing content with the highest reputation since 06/14/20 in Posts

  1. PyScripter, an Open Source, freely available Python IDE written in Delphi, has reached 1 million downloads from Sourceforge. This is in addition to many millions of downloads from its earlier home at the now defunct Google Code and an unknown number of downloads from other distribution channels. Historic note: The initial motivation was to build a good scripting solution for Delphi applications. About 20 years ago Microsoft was still promoting ActiveX scripting and Windows Script Engines (such as vbScript and jScript) as the way of building scripting solutions for Windows applications (one of many Microsoft technologies that was all but abandoned). At that time Python was relatively unknown, but it so happened that it was available as a Windows Script Engine and I looked into it. I loved the clean syntax, the expressiveness and conciseness of the language. Other things I liked were duck typing, batteries included, strong object orientation (everything is an object) etc.. The first iteration was an IDE (editor/debugger) for ActiveX Script Engines. But there were many bugs and limitations of Active Scripting both on the Microsoft/Windows side and the Python side. I then came across Python4Delphi which at the time was maintained by a Canadian developer Morgan Martinet. I started contributing to that project and later become its main maintainer, when Morgan's interested shifted to other things. I also developed a simple Python IDE which was named PyScripter and was originally distributed alongside Python4Delphi. There was very few Python IDEs available at the time and somehow the project became known in the Python community and instantly popular. For me, developing PyScripter was just a hobby, but I received a lot of encouragement and kept on improving it. I was also making some income from donations and Google AdSense. Both PyScripter and Python4Delphi were later moved to Google Code. Python popularity was steadily increasing and at the peak of PyScripter's popularity around 2010, there were hundreds of thousands of downloads the days following each new release. More recently as we all know Python became one of the most popular programming languages, but at the same time there was strong competition to PyScripter from freely available commercial grade IDE's such as Jetbrains PyCharm and Microsoft's Visual Studio and Visual Studio Code. PyScripter was almost abandoned when Google Code closed down due to my frustration, but after a couple of years of inactivity the project was moved to Github and development resumed. Downloads are available through Sourceforge, since 2016. Through the years PyScripter has kept a large and loyal group of followers. I get many comments along the lines "I have tried VSCode, I have tried PyCharm, but I keep going back to PyScripter". PyScripter is also quite widely used in many Universities for introducing Python to students. And almost 20 years after its first release, PyScripter is still going strong...
  2. pyscripter

    Looking for SVG support in Delphi?

    In an earlier thread I presented an Interface-based access to native Windows (Direct2D) SVG support for Delphi applications. This has now been integrated into the SVGIconImageList components by @Carlo Barazzetta. Carlo is a kind of master of ImageLists (among other things). Have a look at his IconFontsImageList for instance. His SVGIconImageList component was based on the work of Martin Walter who must be a great programmer. His SVG component covered almost every SVG element and was well structured and cleanly written. There were numerous bugs and issues though, which, to a large extent, were fixed over the last few weeks and the code was refactored and optimized. Finally, @Vincent Parrett contributed a virtual version of the Image List, mirroring Delphi's VirtualImageList. So in its current form the component features: An SVGImageCollection component that inherits from Delphi's CustomImageCollection and thus is compatible with VirtualImageList A choice of SVG engines: the pascal one based on Martin's work which is using GDI+ and the native Windows one which is using Direct2D. Other SVG engines can be plugged-in with minimum effort. Excellent design support with a nice and effective SVGImageCollection editor developed by Carlo and the built-in VirtualImageList editor. Support for changing the opacity and color of the SVGs including using GrayScale. If you adopt Material Design for example and you use VCL styles, you can adjust the icon color to the style. Compatibility with older Delphi versions going back to XE6. It is free and open-source Svgs are vastly superior to bitmaps because they are typically tiny text files and scale perfectly. So, you do not need to ship with your application multiple resolutions of your images to match the DPI of the monitors. And there is a vast number of free SVGs to cover most needs. IMHO the combination of SVGImageCollection with Delphi's VirtualImageList is the best available solution (commercial ones included) for building DPI-aware Windows applications. Give it a try.
  3. In the attachment you can find a high-level interface-based encapsulation of the Direct2D SVG functionality. It allows you to parse SVG files and draw them to a GDI/GDI+ DC. Requires Windows 10 with Creators Update or later. Main form code to display SVG files: { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin fSVG := GetD2DSVGHandler.NewSvg; fSVG.LoadFromFile('..\..\browser.svg'); //fSVG.FixedColor := TAlphaColorRec.Red; //fSVG.Opacity := 0.5; fSVG.GrayScale := True; end; procedure TForm1.Paint; begin inherited; fSvg.PaintTo(Canvas.Handle, TRectF.Create(ClientRect), True); end; procedure TForm1.Resize; begin inherited; Invalidate; end; Features: Scale to any size Keep aspect ratio (optionally) Control opacity Recolor to any color Draw in gray scale Samples: The above in grayscale: Svg.zip
  4. Mahdi Safsafi

    DDetours v2.2

    Hi, DDetours v2.2 is released. version 2.2(Jun 9, 2020): +Added support for older Delphi version: Now the minimal supported Delphi version is D7. +Added support for FPC. +Added recursive section feature: EnterRecursiveSection/ExitRecursiveSection. +Added param/tag feature for all InterceptCreate functions. +Added GetTrampolineParam function to get user param. +Added GetCreatorThreadIdFromTrampoline function to get thread id that created the hook/trampoline. +Added detection for non valid trampoline pointer. +Added unittest. +Replaced BeginHooks/BeginUnHooks by BeginTransaction. +Replaced EndHooks/EndUnHooks by EndTransaction. +Replaced GetNHook by GetHookCount. +Replaced TDetours<T> by TIntercept<T,U>/TIntercept<T> +Fixed many bugs related to MultiBytesNop. +Fixed wrong displacement value for some branch instructions on x64. +Fixed wrong offset size on x86 for GetJmpType function. +Removed v1 compatibility. +Now the library does not rely on Object. +Code refactoring. https://github.com/MahdiSafsafi/DDetours Some of the above features were planed for v3 that I started working on years ago. But I never get a chance to finish it. What a pity I'm rolling v2.2 instead of v3.2.
  5. Check out some of the interesting algorithms and data structures used to create an extremely light-weight XML DOM. https://blog.grijjy.com/2020/10/07/an-xml-dom-with-just-8-bytes-per-node/
  6. How to use open array parameters to handle array subranges: https://delphisorcery.blogspot.com/2020/09/open-array-parameters-and-subranges.html
  7. https://www.tmssoftware.com/site/tmswebcorevsc.asp Happy to announce the public beta of TMS Web Core for Visual Studio Code, you can install it directly from Visual Studio Code's marketplace and start writing web applications in Pascal in minutes. Please, use the support center forums to provide any feedback you want and help us to polish the product towards its upcoming release: https://support.tmssoftware.com/c/web-core/tms-web-core-vsc/87 RADical Web Modern SPA web application model Pure HTML5/CSS3/Javascript based applications Standard component framework for common UI controls and access to browser features Debugging in Pascal code via the browser Backed by a solid & proven Delphi Pascal to Javascript compiler that was years in development Reuse skills and components Open to consume other existing Javascript frameworks & libraries Open to use HTML/CSS for design Open to use other jQuery controls or even other Javascript frameworks Easy interfacing to REST cloud services including to TMS XData for database Easy Deployment Application consists of HTML & Javascript files only that can be easily deployed on any light or heavyweight webservers Use any existing load-balancing software and/or techniques for highest performance Visual Studio Code version benefits WYSIWYG form designer Debugging integrated in the IDE Cross-Platform (Windows / MacOS / Linux) High DPI enabled IDE Ecosystem with many additional plugins to enchance development productivity Get started with TMS Web Core for Visual Studio Code
  8. Sherlock

    Are we just "Cash Cows"?

    I didn't read the book, but I'm guessing that only applies when you add those programmers to the same problem. Luckily Delphi has a ton of problems, that could each feed a programmer for at least a month
  9. Stefan Glienke

    Delphi 10.4.1 and the IDE FIx Pack

    tbh not having IDEFixPack being available is good in the long run - with the existence of it nobody (or very few) actually cared to report issues and put some pressure on Embarcadero to address these things. Now that there is no solution available the pressure on Embarcadero has raised and I can confirm that they are working on it - will they suddenly implement all fixes and optimizations from Andreas? No, but better they do slowly than relying on the third party no matter how incredible.
  10. Carlo Barazzetta

    Looking for SVG support in Delphi?

    I've published an article about SVGIconImageList and IconFontsImageList:https://ethea.it/icons_in_delphi/
  11. Hi guys, my 4th book "DMVCFramework - the official guide" has been published. Buy it at https://leanpub.com/delphimvcframework For requests, issues and suggestion use https://github.com/danieleteti/dmvcframeworktheofficialguide/issues
  12. Arnaud Bouchez

    Patch 2 for RAD Studio 10.4 now available

    This is the famous "patch release before holidays" syndrome... 🙂
  13. Yaron

    My open-source portfolio

    I released quite a bit of interesting code to github over the years: YouTube DATA API v3 parsing: https://github.com/bLightZP/Delphi-YouTube-Channel-parsing-plugin-for-Zoom-Player Basic RSS feed parsing code: https://github.com/bLightZP/Delphi-RSS-feed-parsing-plugin-for-Zoom-Player TheAudioDB MetaData/Image scraping code: https://github.com/bLightZP/Delphi-theaudiodb.com-Zoom-Player-media-scraping-plug-in TheMovieDB MetaData/Image scraping code: https://github.com/bLightZP/Delphi-themoviedb.org-Zoom-Player-media-scraping-plug-in OpenSubtitles.org subtitle search & scrape code: https://github.com/bLightZP/Delphi-OpenSubtitles.org-API-support-for-Zoom-Player A basic cross-platform calculator https://github.com/bLightZP/ElegantCalculator https://play.google.com/store/apps/details?id=com.inmatrix.ElegantCalculator Adapted old code to work as cross-platform pure-pascal image scaling with filters (bicubic, bilinear, etc): https://github.com/bLightZP/ImageInterpolation Adapted old code to work as a cross-platform drawing of an anti-aliased circle (can be modified to draw rount-rect as well): https://github.com/bLightZP/AntiAliasedCircle I forked a QRCode generating source code and greatly optimized it (~ x50 faster): https://github.com/bLightZP/DelphiZXingQRCode The original Delphi scanline color-conversion implementation was very slow, so I optimized it: https://github.com/bLightZP/OptimizedDelphiFMXScanline
  14. Guess what? The new GExperts release is here. There are lots of bug fixes and a few new features in the new version. https://blog.dummzeuch.de/2020/10/23/gexperts-1-3-17-experimental-twm-2020-10-23-released/
  15. Alexander Sviridenkov

    ANN: HTML Office Library

    One more bridge between desktop and web: HTML Office Library. The first Delphi library for reading all office formats (+ PDF) and convert them to plain HTML on the fly. Converted document contains only plain HTML/CSS/SVG and can be displayed using HTML Component Library or browser. Library provides a uniform access to an entire document and its parts, document resources (fonts, images, etc) and properties (title, Table of Contents, etc). The library doesn't depend on any external components (DLLs, OLE, ActiveX, etc) and is cross-platform. Fully written in Delphi and comes with full source code. Following document formats are supported: Rich Text Format (RTF) MS Word 6-2007 binary format (DOC) MS Word XML document (DOCX) MS Power Point binary format (PPT) MS Power Point XML format (PPTX) MS Excel binary format (XLS) MS Excel XML format (XLSX) Adobe PDF format (PDF) Supercalc format (SXC) EPUB (electronic books). Besides the document conversion classes it also contains the following: EMF/WMF to SVG conversion TTF to WOFF conversion TTF normalization TTF to SVG conversion CFF to TTF conversion Adobe PostScript to TTF conversion. Supported Delphi versions are Delphi XE2 - Delphi 10.4.1. Supported platforms: Windows 32/64 VCL and FMX, MacOS, Linux. There are two compiled demos available https://delphihtmlcomponents.com/FileBrowser.zip 1. Simple document viewer: allows to view any document on hard drive using file tree on left side and HtPanel on right. To view final HTML press View in browser button. No installation required. 2. Document Indexer: create full text search index for documents located in selected folders and find any document from application or Web. No installation required. How to use: Run application (OfficeIndex.exe). Click Add folder and select folder containing office documents. Click Start indexing, wait until it completed. Search for documents using one of the following: a) Go to Search tab and enter search query (any words). b) Click Web interface and enter search query. c) Point mobile phone camera (mobile should be connected to the same router) to QR code and open mobile interface. Full cource code of both applications are included in library. Documentation in PDF format: https://delphihtmlcomponents.com/HTML Office Library.pdf Documentation in CHM format: https://delphihtmlcomponents.com/HTML Office Library.chm Purchase link (currently only Site License): https://store.payproglobal.com/checkout?products[1][id]=61655 There is 50% discount valid until end of October: please use coupon code HOLX
  16. PingPIng

    [Souce code]

    Hello everybody, These are some projects I have created. I have very little time to manage them all continuously so if anyone wants to collaborate or want to make pull requests, they are welcome Keras4Delphi is a high-level neural networks API, written in Pascal(Delphi Rio 10.3) with Python Binding and capable of running on top of TensorFlow, CNTK, or Theano. Based on Keras.NET and Keras https://github.com/Pigrecos/Keras4Delphi Binary Code generator Written in pascal. It can generate native code for x86 and x64 architectures and supports the whole x86/x64 instruction set. Assembly Code Generator able to compile single File or Single asm Command. https://github.com/Pigrecos/D_CodeGen symbolic execution whith delphi. The Triton Dynamic Binary Analysis (DBA) framework - by JonathanSalwan binding (## experimental ##) for Delphi https://github.com/Pigrecos/Triton4Delphi Code Deobfuscator x86_32/64 Dead code removal Peephole optimization remove Multibranch Protection ..More https://github.com/Pigrecos/CodeDeobfuscator And other.... thanks a lot 😉
  17. Just FYI, the new (large) patch is out. https://blog.marcocantu.com/blog/2020-july-radstudio104-patch2.html over 20 Delphi compiler fixes, among a long list of items addressed. Fixed the debugger instability and a few more critical issues, also improved Delphi LSP quite a bit. Quality work will continue, this is a first step.
  18. Rethinking Delphi Floating Point Control Register Management.pdf
  19. Vandrovnik

    Outdated Delphi Roadmap

    Oh, please nothing special, just make 10.4.x usable first.
  20. Alexander Sviridenkov

    HTML Library 4.3 released.

    Major improvements: New context sensitive toolbar at editor bottom (eoContextToolbar option) https://www.youtube.com/watch?v=TdWafp0xyPA Image selection toolbar. 40% faster style and layout calculation Support for inlined truetype fonts (@font-face... data:font/truetype;base64) Support for CSS tab-stop decimal and tab-interval CSS word-spacing and letter-spacing properties Magnifier when selecting text on Android and iOS Local links navigation (Click in HtPanel, Ctrl+Click in Editor) Subscript and superscript actions for selection and context toolbars. Linux: support for copy/paste formatted HTML and paste RTF Advanced charts (gradients and more: see Charts 2 section in Reports demo). Full list: https://delphihtmlcomponents.com/new43.html What is HTML Library: the only true native HTML/CSS/SVG engine for Delphi, all Delphi versions, all platforms, VCL and FMX. Rendering using GDI, GDI+, Direct2d, FMX canvas, text canvas and native iOS, OSX and Android canvases. CSS animations and transitions, animated GIF support for all platforms. RTL languages. WYSIWYG HTML editor, import from RTF and DOCX, export to PDF. Interactive HTML/SVG Reports with charts. FastReport, ReportBuilder, VirtualTreeView, SynPDF, Addict and DevExpress spellchecker integration. Pascal scripting engine. SQL library for parsing, analyzing and transforming SQL queries and working with database schema. Universal Email library for sending and receiving emails.
  21. pyscripter

    Turbo SynEdit & Font Ligatures

    Development of SynEdit at PyScripter has been moved to and merged with TurboPack SynEdit. The focus of the development is to modernize the code base and enhance the functionality (sometimes at the expense of backward compatibility). In addition to the earlier enhancements and fixes two more features have been recently added: Per-monitor DPI awareness Support for Font Ligatures (new option eoShowLigatures) Fonts like Cascadia Code and Fira Code contain ligatures relevant to programming. See this article for details. Are you using font ligatures? Do you like them? See sample. Thanks to vhanla for contributing the ligature support.
  22. Mahdi Safsafi

    Are we just "Cash Cows"?

    That reminded me about a nice quote :
  23. Bill Meyer

    Are we just "Cash Cows"?

    You can write bad code in any language. It's a poor workman who blames his tools. Delphi is not perfect, and certainly we battle defects in the IDE, but failure to design is a plan for failure in any language.
  24. pyscripter

    SynEdit preferred version?

    I will start with a bit of history. The Original Code is based on mwCustomEdit.pas by Martin Waldenburg, a great programmer. The key feature of the editor was fast syntax highlighting. This was more than 20 years ago. After a split of the community the SynEdit project was formed maintaining some of the key features of mwEdit. Over the years some of the best Delphi programmers contributed to the project. The list includes for example Gerald Nunn, Eric Grange, Jordan Russell and many many others. Flavio Etrusco added word wrap and Maël Hörz added unicode support (but in a rather idiosyncratic way). However the project management was very weak and the code gradually became very hard to maintain and improve. It aimed to support very old Delphi versions including Kylix and the code became full of IFDEFs and patches without an overall coherence. An early fork of Synedit is part of Lazarus but the two development efforts have diverged a great deal. When Embarcadero introduced the GetIt package manager they asked Roman Kassebaum to produce a version of SynEdit for GetIt. Roman did a general code cleanup removing support for early Delphi versions and Kylix (Turbo fork(s)). I have added support for code folding (the first major new feature for years) to both the Turbo fork and the main Synedit repository. However the Turbo fork(s) were not actively supported or developed beyond recompiling for new Delphi versions and the main Synedit branch was too hard to work with, hence the creation of SynEdit-2 as a fork of Turbo SynEdit. Main new features in SynEdit-2: Replaced SynRegExpr with the built-in RegularExpressions Move/Copy Line(s) Up/Down commands as in VS Code Delete Line command should work with multi-line selection Handle triple and quadruple clicks for selection Triple click and drag should select lines Double click and drag should select whole words Support OLE Drag & Drop What are the key features missing in Synedit: Better Unicode handling: Better support for wide characters e.g. Chinese ideograms (爾雅爾雅爾雅爾雅) Support for surrogate pairs (two widechars correspond to one glyph) Combining characters (e.g. Åström ḱṷṓn) Multi-cursor and multi-selection editing as in VS Code. When these features get implemented I think SynEdit will become comparable to some of the best editors around. But both of them require major rewriting of the code. Work on the second is well advanced and the unicode work is in the planning stage. Of course it is your choice as to which version of SynEdit to use, but if anyone wants to contribute to the development you are very welcome.
  25. Sherlock

    ParnassusCoreEditor.dll AccessViolation

    It's called consistency and is considered to be a good thing...most of the time.