Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 11/27/23 in all areas

  1. Alexander Sviridenkov

    HTML Library 4.8 Released

    Delphi 12 support. New htide unit - installed Delphi versions, Library paths, PAS and DCU parsing, etc. New demo (/Sample Projects/graph) - Unit dependency viewer. Video: https://youtu.be/ec0pOy2uY4w Compiled demo: https://delphihtmlcomponents.com/graph.zip Cairo canvas support on Linux and Windows for Delphi and Lazarus. Canvas supports precise text rendering so PDF and other documents converted by HTML Office library now can be properly displayed on Linux. PDF export on Linux via Cairo. Reports library now supports Lazarus Big upgrade of SQL framework: perform SQL queries on CSV and text files, JSON, XML, Excel, Outlook, SQL scripts and other sources. Video: https://www.youtube.com/watch?v=IzV9jZe6ksQ Compiled demo: https://delphihtmlcomponents.com/sqltest.zip Manual: https://delphihtmlcomponents.com/sql/ What it can do: Convert to/from CSV, JSON, XML, HTML, Excel, SQL script. Upload files/objects to database Export data from database Check data consistency Display data/objects in DB-aware controls, HtPanel, StringGrid, VirtualTreeview, ControlList Extend database capabilities (f.e. use Pivot in Firebird). Serialize and deserialize objects Reduce calls to REST server by using already loaded data. Supported data sources: CSV file JSON file JSON string XML file HTML file Text file with fixed size fields SQL script ZIP archive XLS/XLSX Excel sheet (requires HTML Office Library). Outlook PST/OST file (requires HTML Office Library). TList<T> TObjectList Any class with IEnumerable or GetEnumerator support TDataset array of T SQL Query Custom sources can be added by implementing IDMDatasource interface. Supported dialects: SQL 92 Oracle MS SQL Server Firebird MySQL PostrgesSQL SQLite ElevateDB Result can be exported to CSV XML JSON SQL script TDataset TStringList TObjectList SQL table HTML (plain table or using template) Array of variant Binary file or any other format, using custom processing of result data.
  2. Uwe Raabe

    Pos, SplitString

    It could be even shorter: Result := MyStr.Remove(MyStr.IndexOf('<')).Trim; No need to check for existence as the internally called _UStrDelete already handles that case pretty well.
  3. Darian Miller

    SonarDelphi v1.0.0 released!

    There are a few major reasons: - Peganza is the number one expert at static code analysis of Delphi code. They have been doing it for over 20 years now. - FixInsight just cannot match Pascal Expert's (PEX) depth of coverage. Compare the number of flags for each and you'll find a very large difference. - FixInsight is part of Peganza's main toolset and is very actively maintained. Simply compare PEX version history: https://peganza.com/history_pex.html to FixInisight: https://www.tmssoftware.com/site/fixinsight.asp?s=history - PEX is $89 and FixInsight is about $115. If you want to dig deeper, get Peganza's free "Pascal Analyzer Lite" product. And if you want the widest available static source analysis of your Delphi code, get Peganza's "Pascal Analyzer" product as it has more info that you'd probably ever actually fully utilize. The one downside for the PEX vs Fix Insight comparison is a command line option, which is available in the more expensive "Fix Insight Pro" product but not in Pascal Expert. However, it is available in Pascal Analyzer so if that's a requirement then I'd get Pascal Analyzer + Pascal Expert in their bundled offering. I had an All-Access subscription to TMS for the last few years I have used both products and while they are both nice tools, Pascal Expert just seems to be a very large step ahead of Fix Insight in all ways except the command-line option (but I also have Pascal Analyzer so it wasn't an issue for me.) But, they had a huge head-start as they are using the 20+ year old heavily improved/tweaked Pascal Analyzer engine to generate their warnings. In my opinion, every Delphi developer should use the stand alone and command-line driven "Pascal Analyzer" tool in their development process. In addition, to help reduce introducing new issues, everyone should utilize either of these IDE plugin: Pascal Expert or Fix Insight. I would also highly suggest purchasing the All Access subscription from TMS as they are probably the number one component developer for Delphi and they have been pushing out an enormous amount of updates for all their products (seemingly excluding Fix Insight but I assume that is because it was a purchased product.) The amount of code you get from their All Access subscription is amazing. While other component developers have went idle or closed, TMS seems to have hit the accelerator lately. For a little more info, here's my review of Pascal Expert https://ideasawakened.com/post/product-review-pascal-expert
  4. Dalija Prasnikar

    Delphi 12 is available

    I think it got a bit further... we are somewhere in the Dark Ages...
  5. Lars Fosdal

    Delphi 12 is available

    It has progressed to the Bronze Age...
  6. corneliusdavid

    Pos, SplitString

    I agree it's not near as readable. But it was sure fun to see if I could do it!
  7. corneliusdavid

    New proyect in Delfos

    DMVCFramework is a good way to build a REST server; it's open-source, well supported, and well documented but has a steep learning curve for newbies. RAD Server also allows you to build a REST Server but requires the purchase Delphi (or RAD Studio) Enterprise or higher, so it's not cheap if you don't already own that edition of Delphi. But neither of those solutions are explicitly "database in the cloud" products. They can be written to access databases and provide remote data but you can also host a database in the cloud and access it remotely from a standard Delphi app using database components. There are many reasons why building a REST server is a much better way to go but just thought I'd mention the option as I have done both.
  8. OpenSSL has released new minor version 3.2.0, which has a lot of new features. It is compatible with the current versions of ICS, but has only been tested briefly with clients, it needs at least a week of testing with servers before I'm comfortable adding the DLLs to ICS as the defaults. The major change in 3.2.0 is support for client side QUIC protocol. QUIC is based on UDP rather than TCP and allows multiple streams in parallel, typically for downloading web pages with hundreds of elements, QUIC combined with HTTP/2 becomes HTTP/3. There is a DLL solution that has been used to add HTTP/2 to Indy but not native Delphi implementation I'm aware of, it's a lot of work. So no possibility of ICS having HTTP/3 soon. Other changes in 3.2.0 include: Certificate compression in TLS, including support for zlib, zstd and Brotli Deterministic ECDSA. Support for Ed25519ctx, Ed25519ph and Ed448ph. AES-GCM-SIV. Argon2 and supporting thread pool functionality. Hybrid Public Key Encryption (HPKE). The ability to use raw public keys in TLS. Support for Brainpool curves in TLS 1.3. SM4-XTS. Support for using the Windows system certificate store as a source of trusted root certificates. Some of the above cipher and hash changes may be used by TLS connections without change to ICS, if negotiated with the other end, but certificate related changes will need updates to ICS. Windows binaries are available in SVN and the overnight zip file and separately from https://wiki.overbyte.eu/wiki/index.php/ICS_Download or https://www.magsys.co.uk/delphi/magics.asp In addition to the three DLL files, the zip includes a compiled RES resource file that contains the same DLLs, text files and version information, see the RC file. The RES file may be linked into application EXE files and code then used to extract the DLLs from the resource to a temporary directory to avoid distributing them separately. ICS V9.1 and later optionally support loading the resource file, currently in SVN and the overnight zip. Angus
  9. corneliusdavid

    Software only creates an error in RemoteApp

    I support some programs that are accessed via RDP and when I was first researching remotely running apps, I tried RemoteApp briefly but had a similar problem. While I don't recall what the exact cause of it was in that instance, it has to do with the application assuming resources are accessible in the same manner as they are when run from a standard Windows desktop--which RDP provides. It may have been something simple like checking for the screen size or something. In any case, we had to modify the program and even then only run it via RDP. I'm sure it would work through RemoteApp if it was a fairly simple program but when the Delphi code calls Windows API functions that are either not supported or return unexpected values and they aren't handled properly, weird things can happen. Sorry I don't have a better answer but yeah, you'll need to talk to the programmers.
  10. Lajos Juhász

    Accessing protected symbols

    A warning Canvas.TextWidth is valid only during painting, otherwise it's not guaranteed that the canvas has the correct font assigned. To be sure you can use https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Graphics.TCanvas.RequiredState.
  11. esegece

    ANN: sgcWebSockets Rad Studio 12

    Hi, There is a simple demo that shows how connect to discord api and send a simple http request, is in the trial folder: Demos\01.WebSocket_Quick_Start\02.WebSocket_Clients_APIs You only need the boot token from discord and you can start to send requests to the bot. The discord API is not as easy to use as Telegram. Basically is a mix of WebSocket protocol to get notifications and HTTP requests to send commands, following the Discord api will be enough to implement the required functionality. If you've any doubts you can use the public forum from esegece to get support. You can read the basics of the implemented Discord API using the following link: https://www.esegece.com/help/sgcWebSockets/#t=Components%2FAPIs%2FAPI%2FAPI_Discord.htm Kind Regards, Sergio
  12. dummzeuch

    Accessing protected symbols

    That's for historical reasons. And with the "new" strict keyword even this can be prevented. If you only want to access the Canvas property you can change your TGetCanvas class to this: type TGetCanvas = Class(TCustomControl) published property Canvas end; This is used by all the classes that derive from TCustomControl to publish protected Canvas property, so it will always work.
  13. Lars Fosdal

    Pos, SplitString

    @corneliusdavid I replaced shortest with most readable years ago. 😛
  14. That was easier than I thougth: As of revision #4112 the formatter now actually does support multi line string literals. And only those unit tests that already failed still fail. Of course that does not mean that I have not broken anything else. You are welcome to build your own dll and test it.
  15. I am used to named parameters in Swift (which you have to explicitly write), so once you get used to the fact there there is more information in code, you learn to easily ignore it when you don't need it, but when you do need it is extremely helpful when you are going through code you are not familiar with or your own old code. Yes, you could also hover over the method to see the names and types, but that significantly slows down reading the code. I even find it helpful for the code I know well. I guess my brain likes the extra information being served on a plate.
  16. Darian Miller

    Delphi 12 is available

    For myself, if I use that new feature it will only be used spargingly because, as usual, new language features break tooling. Here are a few QP issues added on multi-line strings: RSP-43420 multiline string literal class const breaks syncing between IDE form designer and editor RSP-43408 Multiline string literal containing reserved word breaks down navigation RSP-43380 Multiline string literals breaks code formatter Given that the inline vars feature was added 5 years ago and the IDE tooling still doesn't fully support it... you really have to wonder when the tooling will properly handle multi-line strings.
×