Jump to content


Popular Content

Showing content with the highest reputation since 06/28/21 in all areas

  1. Image32 is a 2D graphics library written entirely in Delphi Pascal. It provides an extensive range of image manipulation functions and includes a polygon renderer that supports a wide range of filling options. Documentation: http://www.angusj.com/delphi/image32/Docs/_Body.htm Examples: http://www.angusj.com/delphi/image32/Docs/Examples.htm Download: https://sourceforge.net/projects/image32/
  2. Vincent Parrett

    Bookmarks dead?

    You seem to think we should all be grateful for what we get and be quiet, you forget that ultimately we are all paying customers, many of us having sunk significant amounts of money into delphi over the years (not to mention staking our careers on it). As paying customers, we have a right to expect better, and to complain and criticise when it's warranted - and sadly lately with Delphi it is warranted. I've paid for way more versions of delphi than I have actually been able to use (due to quality issues - including D11). As for the hard working team, well they are anonymous - name 5 people on the team (and I don't mean the product managers).. I'll wait.... Back in the day the dev team were on the newsgroups, interacting with their customers, now you would be hard pressed to name one of them that posts here. I have no idea if the 'team' (1 person, 5, 10? who knows) even reads these forums or if they even have any idea how their customers feels about what they are delivering. Some days I have to drag myself back to working on my delphi projects.. today I fired up delphi to debug a problem with FinalBuilder, the IDE crashed on the first run - not an uncommon occurance. I've used delphi since 1995, I have millions of lines of code invested in it - so I persist - but I very much doubt that potential new customers would do the same - I know I wouldn't if I were one of them.
  3. Stefan Glienke

    RAD Studio 11 Alexandria is now available

    You're welcome - it is just a slightly improved version of what Aleksandr Sharahov already wrote years ago. Surprisingly they never used his purepascal code which compiles to almost the exact same code as the x86 asm version was doing. There are more than a dozen other improvements in the RTL that I have worked on - I cannot fix their compiler but I can certainly improve some suboptimal RTL code.
  4. What it's like to be a Delphi Developer https://blogs.embarcadero.com/what-is-it-like-to-be-a-developer-joe-c-hecht/
  5. vfbb


    Website: github.com/viniciusfbb/skia4delphi Skia4Delphi is a cross-platform 2D graphics API for Delphi based on Google's Skia Graphics Library (skia.org). Google's Skia Graphics Library serves as the graphics engine for Google Chrome and Chrome OS, Android, Flutter, Xamarin, Mozilla Firefox and Firefox OS, and many other products. Skia provides a more robust Canvas, being very fast and very stable, with hundreds of features for drawing 2D graphics, in addition to a text shaping engine designed to render texts in the most diverse languages with right-to-left support (such as the Persian language), full support for loading SVG files, support for creating PDF files, support for rendering Lottie files (verotized animations created in Adobe After Effects), integration with the GPU, among countless other cool features. Skia's idea is similar to Firemonkey's, the same codebase used in an OS will work the same on other platforms. It is also possible to design using the CPU in independent background threads. Skia also has native codecs, of course if you don't use the SKCodec class, when loading an encoded image it will give priority to using the platform's native codec, but it is possible to use its codec, for example for jpeg files it uses libjpeg-turbo and for png files libpng which maybe in certain environments may perform better than native. See some examples: Advanced shapes Advanced text rendering / shaping Svg Lottie files And much more...
  6. I wrote an article about Async Tasks in VCL Projects
  7. Hello, good news is, that I just released a new version of DEC (Delphi Encryption Compendium): https://github.com/MHumm/DelphiEncry...eases/tag/V6.2 What's new? Fixed some regressions, among them some which hindered compilation with older Delphi versions (support for older compilers might be reduced in future versions!) Fixed bugs in the SCOP and SHARK cipher algorithms The unit test for the hash classes got improved by adding original test vectors to those algorithms which didn't already use original test vectors and where we could find those (for most we could) The SHA3 hash algorithm has been added for 224, 256, 384 and 512 bit including support for message lengths not being a multiple of whole bytes. Our implementation uses Eric Grange's optimizes permutation kernel ASM implementation on WIn32 and WIn64 (with his friendly permission of course!) A new demo got added: Hash Benchmark FMX Now have fun with this. The GetIt provided Lite version should follow within the next few days. TurboMagic
  8. salvadordf

    My new project : WebView4Delphi

    I just published a new project in GitHub called WebView4Delphi. WebView4Delphi allows you to embed Chromium based web browsers in your Delphi or Lazarus applications using the WebView2 runtime. It uses the latest stable version of the WebView2 nuget package 1.0.1054.31. I used many of the tricks I learned creating CEF4Delphi and you will notice many similarities if you used it. I still have to write the documentation but you can build the available demos to see it working in VCL, FMX and Lazarus apps. There are a few things pending like the "windowless mode". It's being distributed with a simple MIT license so anyone can do whatever s/he wants with it. https://github.com/salvadordf/WebView4Delphi
  9. Lars Fosdal

    Rest in peace dear Danny Thorpe

    Danny Thorpe was one of the pillars that Delphi is founded on. A giant among giants. His legacy is solid and we will remember him with love and respect, and send our condolences to his family.
  10. Carlo Barazzetta

    Looking for SVG support in Delphi?

    Good news about 2.4.0 version of SVGIconImageList: - Added new engine: Image32 library (ver.3.0) by Angus Johnson (VCL+FMX) - Image32 is now the default native Delphi engine, because has more SVG functionalities like blur, gradient, merge, drop-shadow, markers, simbol, pattern, subpixel. - Added support for Android and iOS platforms (by Image32 engine) - Added support for backward Delphi versions (from XE3) - Added demo to compare the four engines (SVGViewer)
  11. As you likely noticed, Delphi 11 officially does not support Windows XP anymore. You can make your application compatible with XP again by simple set. In Project Options|Building|Delphi Compiler|Linking set "Set OS Version fields in PE Headers" and "Set SubSystem Version fields in PE Headers" to "5.1". Unless your application uses System.Threading.pas (TTask etc) you should run it under Windows XP with no problems. But if so, then you have to tweak this unit. Threading objects actually use in their internals new TThread.GetTickCount64 method, which is hardwired to Windows API GetTickCount64 which is not available in Windows XP API. Take this unit from "source\rtl\common" folder in Delphi 11 installation. Declare new local function in the beginning of implementation section of this unit like this: function _GetTickCount64: UInt64; begin if TOSVersion.Major<6 then Result := TThread.GetTickCount else Result := TThread.GetTickCount64; end; and replace all occurrences of TThread.GetTickCount64 calls with _GetTickCount64. For Win32 applications then copy this modified unit to \lib\win32\debug and \lib\win32\release folders in Delphi 11 installation and rename original System.Threading.dcu to e.g. _System.Threading.dcu. Then build your project which uses System.Threading with Debug and Release configuration. New System.Threading.dcu should be created in mentioned folders. After this you should remove modified System.Threading.pas from these folders to prevent its recurrent compilation. Now your Delphi 11 Win32 applications should run under Windows XP with no External Exception crash.
  12. Stefan Glienke

    upcoming language enhancements?

    We know they never do that but rather hope they be ready when they ship which also as we know it not the case either.
  13. Stefan Glienke

    Bookmarks dead?

    Someone should have invited David Millington or the dev at Embarcadero that is now responsible for those plugins to the Delphi 11 beta so they could have worked on those plugins at the time when many other IDE plugin devs did. /s
  14. David Schwartz

    My Experience with D10.4

    We pay so-called "maintenance" fees to supposedly get bugs fixed. But when the maintenance runs out and then they say you need to renew it to get bugs fixed in the version you already paid for, it's unethical. It makes the so-called "maintanance plan" nothing more than an annual license fee. 10.4.2 is reasonsbly nice but we should get a 10.4.3 that fixes the bugs introduced in 10.4.2, not forced to renew and then have to get D11 instead. If I don't feel like upgrading for a couple of releases, that's ok, it costs the same either way. Since inline vars were introduced in 10.x, the refactoring stopped being useful. In 10.4.2, still not useful. But other new features were added. And in 10.4.2, when I use debug inspector and adjust width or the column splitter in the popup form, Delphi hangs. All you can do is kill it in Task Manager and restart it. This happens at least 50% of the time when I inspect variables while debugging. This should have been fixed a week after 10.4.2 shipped. Nope. I guess the problems with the web server stuff that only a fraction of customers use are more important than the debugger that freezes the IDE that everybody uses. PRIORITIES.... I also have a regular problem when looking at stringlists using the stringlist viewer. It throws repeated exceptions (via MadExcept) about some issue with a Boolean, and reloads the viewer many, many times. You have to close the exception box each time, and sometimes it just recurses so many times it's easier to just kill delphi and restart it. But other stuff was fixed with patches. This crap was released under a maintenance plan. It should be fixed in a 10.4.x update, not requiring people to move to a newer version for resolution subject to renewal of the maintenance plan. I honestly don't want to move to D11 at this time. Just more new bugs to deal with. I WANT STABILITY! I'm really tired of every new release fixing some old bugs that should have been fixed before, then adding new stuff and more bugs. We NEVER get to a point of STABILITY with ANY release!!! What we can count on is that there will be a major new release every fall that will stop the previous version dead in its tracks and force you to upgrade whether you want to or not just to get older bugs fixed. If you have an end-of-the-line update before a new release (eg, 10.4.2), another one should be released to everybody that fixes outstanding bugs that makes it stable without requiring you upgrade to the next version. Customers paying for "maintenance" deserve a STABLE UPDATE at the end of a line before upgrading to a whole new release.
  15. Dalija Prasnikar

    Asynchronous Programming Library

    Nope. Frankly, it is abomination. My primary objection is that it slaps control flow into TComponent where it does not belong. TComponent is not thread safe class and asynchronous operations and multithreading imposed on that level open recipe for disaster. It does not give you more control, it takes it away from you and it is overly complicated. Maybe there are some small use cases, but I still haven't found any. At the same time we don't have cancellation token implemented in PPL which desperately needs it. Good implementation of cancelation tokens could then be used in other code even asynchronous one that does not run in threads. I have no idea what is original intent behind that library, so maybe I am missing something obvious.
  16. David Heffernan

    Patch for Delphi 11 Alexandria available

    Uwe is providing useful information that your problem may have an environmental aspect to it. Your antagonistic response is very counterproductive.
  17. Not sure which of the subforums to post, but here it goes: With great sadness, I just got word from both Julian Bucknall on Twitter and Lino Tadros on Facebook that my dear friend Danny Thorpe passed away on October 22nd, just a few hours ago. Still limited in energy, still recovering from many treatments, I will need to keep it short and hope to gain some more energy and blog a small obituary later. For now, I'm devastated. Loosing a friend and one of the instrumental Delph R&D team members from the days brings so many mixed emotions. I wish his wife Cindy and their loved ones all the best. Rest in peace dear Danny. The world will be different without you. --jeroen Referencs: - https://twitter.com/JMBucknall/status/1451674438097854464, https://twitter.com/jpluimers/status/1451677770552123399 - https://www.facebook.com/lino.tadros/posts/10158270097971179, https://www.facebook.com/cindy.f.thorpe/posts/10224108253026657
  18. vfbb


    We are very pleased to announce the 2.0 release of the Skia4Delphi project. The library was almost completely rewritten, bringing many new features such as visual components (VCL/FMX), easy installation, easy configuration, miscellaneous error handling, and much more. Now it also has many more features as well as more examples. See main changes: v2.0.0 Added support for Delphi 11 Added support for OSX ARM 64-bit Added Setup (friendly install) Added IDE plugin to enable the skia in your project: replacing manual changes in project settings, deployment and dlls that were needed before. Now it's automatic, just right click on your project inside the IDE then "Enable Skia" Built-in by default the "icudtl.dat" file in dll Added the controls TSkLottieAnimation, TSkPaintBox and TSkSvg Added SkParagraph (multiple styles in text) Added support for Telegram stickers (using TSkLottieAnimation) Added error handling in sensitive methods Added the source of our website: https://skia4delphi.org Library rewritted Improved the integration with apple's MetalKit Improved library usage, like replacing SkStream to TStream Fixed AccessViolation using TStream Fixed issue with transparent bitmap in Vcl sample Fixed minor issues Explained Svg limitations in documentation We are now using the latest inactive milestone release of Skia (M88), because the others are updated frequently. Deprecated non-windows platforms in Delphi 10.3 Rio or older Homepage: skia4delphi.org GitHub: https://github.com/viniciusfbb/skia4delphi A liittle preview Setup Just download the Skia4Delphi_2.0.0_Setup.exe attached in Releases page. Enabling your project Telegram sticker (tgs files): SkParagraph: WebP: kung_fu_panda.webp Format Size Png (100% quality) 512 KB Jpeg (80% quality) 65.1 KB WebP (80% quality) 51.6 KB Controls And much more...
  19. Alexander Sviridenkov

    HTML Library 4.5 Released

    HTML Component Library, HTML Editor Library and HTML Report Library version 4.5 released. What's new: 1. RAD Studio 11 Alexandria support. 2. New THtMarkdownPanel component for displaying Markdown documents. 3. Improved Markdown support (tables, links, etc.) 4. Improved rending or large SVG images 5. Improved Flex support. 6. Improved handling of incorrect markup (tag order). 7. Added THtPanel.OnShowResizeHint event. 8. Added THtDocument.EmbedAllImages method for embedding images into document. 9. Added THtPanel.Script property for storing common scripts. 10. Added PrintScale parameter to Print method for scaling pages. 11. Added SplitBlocktoRoot method for splitting nested blocks (f.e. citation in emails). 12. Support for disablet attribute in inputs. 13. Added HighlightCheckedNodes property in THtVirtualXMLTree. 14. Improved scrolling of page with many input controls. 15. Added PNG encoding of pasted images for FMX. 16. New Editor event OnSurrogatePair. This event is called on second (low surrogate) char and when it returns true, default char processing is skipped. 17. SVG: added support for preserveAspectRatio with values none, meet and slice. 18. Faster rendering of large break-all blocks. 19. Support for type="number" in inputs. 20. Added Remove method to JQuery. 21. Addes support for attr!=value selector 22. Added support for summary and details elements. 23. DOCX to HTML conversion is now supported in Delphi 5 - 7. Fixed issues: https://delphihtmlcomponents.com/fixed45.html https://delphihtmlcomponents.com/
  20. David Heffernan

    RAD Studio 11 Alexandria is now available

    Irrelevant. Good products are cohesive. Different aspects work with each other and support each other. Funny. Binary literals, digit separators and avx512 asm. That's the entirety of new language features. That's a pace that can only be described as glacial. Cant be hard to get the old formatter to work. If it's an arse for them to do it, tough. Their adult for building up so much technical debt. Honestly, look at the quality of what comes out of Emba and compare to other mainstream IDEs.
  21. aehimself

    TPopupMenu with group headers

    I ended up combining the code of @chkaufmann and @Lars Fosdal plus added the always-disabled property. The end result fully supports VCL styles and looks awesome! The full code became: Unit uHeaderMenuItem; Interface Uses Vcl.Menus, Vcl.Graphics, WinApi.Windows, System.Classes; Type THeaderMenuItem = Class(TMenuItem) strict private Procedure SetEnabled(Const inEnabled: Boolean); Function GetEnabled: Boolean; protected Procedure AdvancedDrawItem(ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState; TopLevel: Boolean); Override; Procedure DoAdvancedDrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState); Procedure Loaded; Override; Public Constructor Create(AOwner: TComponent); Override; published Property Enabled: Boolean Read GetEnabled Write SetEnabled; End; Implementation Uses Vcl.Themes, System.SysUtils; Procedure THeaderMenuItem.AdvancedDrawItem(ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState; TopLevel: Boolean); Begin Self.DoAdvancedDrawItem(Self, ACanvas, ARect, State); End; Constructor THeaderMenuItem.Create(AOwner: TComponent); Begin inherited; Self.Enabled := False; OnAdvancedDrawItem := DoAdvancedDrawItem; End; Procedure THeaderMenuItem.DoAdvancedDrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState); Begin ACanvas.Brush.Color := TStyleManager.ActiveStyle.GetStyleColor(scPanelDisabled); ACanvas.FillRect(ARect); ACanvas.Font.Color := TStyleManager.ActiveStyle.GetStyleFontColor(sfWindowTextNormal); ACanvas.Font.Style := [fsBold]; ACanvas.TextRect(ARect, ARect.Left + 3, ARect.Top + 3, StripHotkey(Caption)); End; Function THeaderMenuItem.GetEnabled: Boolean; Begin Result := inherited Enabled; End; Procedure THeaderMenuItem.Loaded; Begin inherited; Self.Enabled := False; End; Procedure THeaderMenuItem.SetEnabled(Const inEnabled: Boolean); Begin inherited Enabled := False; End; End.
  22. Marco showed a preview of some of what's new in Delphi 11 yesterday - you can read his blog with screenshots, or watch the video replay, here. I'm also giving a talk today on Usability and Design, in general but also referring to the IDE and some decisions we made there. If you've ever wanted to see an internal mockup of things we did not do, this is the one to watch -- but also, I hope the talk in general will be helpful for anyone who wants to have good design in their app. Join this or the other (really good!) talks today and tomorrow here!
  23. pyscripter

    New Community Edition

    In case you have not seen it: Delphi & C++Builder Community Editions Now Available in Version 10.4.2! (embarcadero.com)
  24. Lars Fosdal

    Parnassus Bookmarks for Delphi 11 Alexandria?

    When there are reasons, there should be public information - but there is just silence.
  25. Isn't fastest and using Delphi's own classes mutually exclusive? My personal recommendation goes to https://github.com/ahausladen/JsonDataObjects