Leaderboard
Popular Content
Showing content with the highest reputation on 02/19/25 in Posts
-
SSL certificate of this site is expired ...
-
ICS V9.4 has been released at: https://wiki.overbyte.eu/wiki/index.php/ICS_Download ICS is a free internet component library for Delphi 7, 2006 to 2010, XE to XE8, 10, 10.1, 10.2, 10.3, 10.4, 11 and 12 and C++ Builder 10.4, 11 and 12. ICS supports VCL and FMX, Win32 and Win64 targets. The distribution zip includes the latest OpenSSL 3.0.16, 3.2.4, 3.3.3 and 3.4.1 for Win32 and Win64. Changes in ICS V9.4 include: 1 - Completed the ICS Application Monitoring system added in V9.3, designed to locally and remotely monitor ICS servers and applications, and to locally restart applications on demand or if they crash. It comprises a small TIcsAppMonCli client monitoring component that is added to ICS applications, usually Windows Servers, but also client applications. This client component communicates with a TIcsAppMonSrv server component, usually running as a Windows Service on the same server so it is able to restart applications, but can also support clients on a LAN. The monitoring server has web and Websocket servers, allowing remote browsers to view the state of all applications being monitored by the server with a continually updated web page. There is also ICS Application Monitor - Remote Manager application that provides remote monitoring of multiple ICS Application Monitor servers using Json web and Websocket requests on a single screen. 2 - The SMTP client component fixes a bug introduced in V9.3 which could corrupt the Content-Transfer-Encoding header line. 3 - In TWSocket, fixed a potential problem using multiple threads where a new connection opened very quickly (ie localhost) and then stalled due to an unexpected connection state. Made DataToString Unicode compatible, only used for diagnostic dump logs. 4 - In the HTTP client, fixed a check for an overflowing buffer when receiving very long headers that could cause failure detecting headers end. Made several URL validation functions public: GetProtocolPort, IsSSLProtocol, IsKnownProtocol and IsKnownProtocolURL. 5 - When creating PKCS12/PFX certificates, change the 3DES cipher to AES256 if the legacy provider is not loaded. 6 - In the TIcsFtpMulti component, skip download of zero length file by creating an empty file, previously this got SSL handshake error. Don't report directories as being downloadable, they are not. If extended passive mode allowed, send EPSV ALL at start so firewalls and NAT routers can handle sessions more efficiently. Added CheckBadUnicode property defaults to false, so that checks for bad Unicode to Ansi conversions with ? are skipped, allowing more complex paths without errors. 7 - The FTP server FEAT request now returns EPRT and EPSV which have been supported for IPv6 for years, but were not advertised for IPv4. 8 - The OverbyteIcsSnippets sample adds two new simple REST snippets to Get/Post Parameters that send them to an ICS server, and the server echoes back those params so you can check what was actually sent. 9 - When loading the OpenSSL DLLs, no longer check they are digitally signed for Windows XP, 2003, Vista and 2008, they don't recognise SHA-256 code signing, never tested since no longer have those old versions available. 10 - The TRestParams method AddItemSO to add a SuperObject now has an Escape parameter defaulting to True, so non-ASCII characters are escaped by default. 11 - The Proxy component TProxyTarget now has a SocketFamily property so target connections can be restricted to TSocketFamily values. Added property SrvTotSess count of server session connections for logging. 12 - In the HTTP Application Web Server, fixed a memory leak with multiple virtual PUT and POST documents. 13 - The OverbyteIcsJoseTst sample 'Sign/Verify Data' tests now support hashes other than SHA-256, selected from the Key and Signing Hash Algorithm drop down list. Also, a private key matching that selection is created automatically, including X25519. 14 - There is a new unit OverbyteIcsWinUtils that contains Windows API functions, built from selected Magenta Systems libraries, with functions needed to build and control Windows Service applications, accessing the Windows registry, Windows firewall, Windows tasks, hardware, and with simple encryption for passwords. Most of these functions are used by the TIcsAppMonSrv server component and IcsAppMon sample, but should have much wider use for Windows Service server applications in particular, like allowing firewall access. It's planned to move most other Windows specific function here for ICS V10. 15 - In the ICMP component, fixed a problem setting property PingMsg to the text to ping. 16 - In the TIcsIpStrmLog component, added method ListenStates which for logprotUdpServer and logprotTcpServer returns a multiline string listing the IP, port, SSL and state of all socket listeners. The CurSockets property now reflects actual TCP Server clients. 17 - In the TIcsMailQueue component, don't keep retrying email that is too short to send with no body or with no sender headers. Added more error handling if the SMTP component fails to build the EML spool file. 18 - In OverbyteIcsUtils, finished the cleanup of old Base64 functions by adding new IcsBase64 functions using TBytes internally to replace old Base64 functions that used AnsiChars, with no overloaded versions for simplicity. Old Base64 versions retained as deprecated for user applications, please update to the IcsBase versions. Added IcsTBytesCompare to compare two TBytes. Added IcsOutputDebugStr for Posix and Windows. Added IcsDateToAStr and IcsDateTimeToAStr with alpha month (Jan/Feb). 19 - The ICS C++ packages for C++ 10.4 and later have been updated with the correct paths for the three supported platforms, and all build and install correctly for Win32. Win64 should also build, but not Win64x Modern which needs fixes in a future release of C++ 12. The release notes for V9.4 are at https://wiki.overbyte.eu/wiki/index.php/ICS_V9.4 All ICS active samples are available as prebuilt executables, to allow ease of testing without needing to install ICS and build them all. There are four separate zip files split into clients, servers, tools and miscellaneous samples which can be downloaded from https://wiki.overbyte.eu/wiki/index.php/ICS_Samples Angus
-
Hi there I started my own Delphi YouTube channel and I want to create more content. Therefore, I came up with this idea. Let me know... O:-)
-
ICS V9.4 announced
Angus Robertson replied to Angus Robertson's topic in ICS - Internet Component Suite
Clearly some minor recent change in OverbyteIcsWinsock.pas has upset Delphi 2010, but seemingly not older or newer compilers. But our support of ancient compilers is limited, it is more important to support newer compilers. So please look back at the last ICS version you installed in D2010, see what has changed since, and fix it. Angus -
Default() and subrange types
Lajos Juhász replied to Der schöne Günther's topic in RTL and Delphi Object Pascal
It is not (yet) addressed in Delphi 12.2 it still defaults to 0 instead of 1. -
Hi everyone, more than twenty-one years ago, I started the German-language part of this forum and could not even begin to imagine what it would become. Thanks to the tireless support of many moderators as well as your thirst for knowledge and willingness to answer other people's questions, it has become a pillar of the virtual Delphi community - even far beyond the German-speaking world. Since 2018, this English-language part of the forum has also been available, with considerable support from Lars. With an online presence of this size comes the obligation to take proper care of it. I have always been very happy to do this, but over twenty-one years is a very long time and life and its priorities change. I can't help but realize that my daily/weekly time has become less available and the time has come for me to hand over the management of the forum to someone else. Thankfully, Thomas B. ("TBx") has agreed to take over the Delphi-PRAXiS and continue it in good hands - together with Lars, of course. You know Thomas as a longtime moderator of this forum and now he will take over my previous role. I myself will of course remain part of the Delphi community - not least because I continue to work a lot with Delphi in my job. I will also remain a part of this forum. Thank you all for over 21 great years!
-
Here's my logger I had suspected some issue with timer restarting I wrapped the timer event to disable the timer when in the event seemed to help and removed a show event on the logging form seemed to have fixed. The following sleep states are available on this system: //Pats win 11 pro Standby (S0 Low Power Idle) Network Connected Hibernate Fast Startup The following sleep states are not available on this system: Standby (S1) The system firmware does not support this standby state. This standby state is disabled when S0 low power idle is supported. Standby (S2) The system firmware does not support this standby state. This standby state is disabled when S0 low power idle is supported. Standby (S3) This standby state is disabled when S0 low power idle is supported. Hybrid Sleep Standby (S3) is not available. The hypervisor does not support this standby state. //Events app1 sidebar memoShowMessages h18.834 ZeroIndex 985940 Comp 199704 18.835 TSideBar on top//1 18.838 Shell_TrayWnd on top // closing logged on App1 18.858 Windows.UI.Core.CoreWindow on top//opening App1 18.861 LockScreenControllerProxyWindow on top 18.861 Shell_TrayWnd on top 18.864 TSideBar on top //events Second running App sidebar memoShowMessages 18.826 TSideBar on top 18.827 CabinetWClass on top 18.829 Shell_TrayWnd on top 18.834 on top 18.834 TSideBar on top //1 18.838 Shell_TrayWnd on top// closing logged on App2 18.858 on top 18.859 Windows.UI.Core.CoreWindow on top//opening logged on App2 18.861 LockScreenControllerProxyWindow on top 18.861 Shell_TrayWnd on top 18.864 TSideBar on top // made with this coding var TopWinControl: HWND; procedure TSideBar.TaskTimerTimer(Sender: TObject); const MAX_VALUE = 255; var pcClassName: Array [0 .. MAX_VALUE] Of Char; aClassName: string; Hnd: HWND; begin TaskTimer.Enabled := False; Hnd := GetForegroundWindow; // shows apps being used. if Hnd <> TopWinControl then begin TopWinControl := Hnd; GetClassName(Hnd, pcClassName, MAX_VALUE); aClassName := Trim(pcClassName); label1.Caption := aClassName; memoShowMessages.Lines.add(format('%2.3f %s on top', [Time * 24, aClassName]));//Screen.Forms[0].Name]); end; // show now can change bringtofront getfocus best not use here //boo 100xs Jumper.Show; // not needed and perhaps fighting the debugger TaskTimer.Enabled := True; end; Needs to be 64 bit.
-
A TTimer HWND shouldn't change, but any VCL UI control can recreate for any number of reasons. Can't rule anything out at this point. So do it manually. Create a temporary button or something that you can trigger at will to log the current HWNDs, then invoke a standby+wakeup, then trigger the log again and compare the results.
-
There is 0.01% chance of that happening. There are still many parts of today's IDE similar to Delphi 1 from 30 years ago and even Borland Pascal before that. Some of the same hot keys and many of the sub-windows in the IDE. There are often additions and incremental changes and subtle (and not so subtle) ways of interacting but there's just too much that would need to be re-tested if they made a huge interface change. The Welcome Page has been where the bulk of the "pull the rug out from under you" changes have taken place and that's not a critical part of the daily programming task.
-
I like the IDE the way it is. I hope they did not change it to something completely different. For example, I like the way you can scroll via cursor up/down keys and not have the caret pinned to the end of the line.
-
Bummer. I've just checked both my desktop (which is a *ehem* 15 years old home build) and my laptop which is the top Lenovo X1 model, 2 years old, and neither of them support S0. This means that I unfortunately can't help debug the problem. If anyone else wants to have a go at it, the command to check for S0 support is powercfg /a. Note though that if Modern Standby isn't already enabled then it requires a complete OS reinstall to enable it. Yup, you read that right. Nice one, Microsoft.
-
https://register.gotowebinar.com/register/5710587862509447008 This is the link for "what's coming in 12.3"
-
New Book Delphi Quality-Driven Development
corneliusdavid replied to Dalija Prasnikar's topic in Tips / Blogs / Tutorials / Videos
Got it! Can't wait to dive into it and trust it'll be as good as your other books. Some of the chapter titles look like they'll provide good arguments to support the best practices I'm trying to promote to my team. Thanks, Dalija! -
Anyone who would have such info would be under an NDA not to discuss it until Embarcadero announced it publicly first.
-
It depends on what you plan to do. TatukGIS DK is a very good GIS library. We use it since 20 years. It offers a great map viewer component and the enterprise edition covers all common spatial formats. It's not expensive compared to ESRI products, but it's not cheap either. If you just have some spatial data in a PostgreSQL/PostGIS database you can build your own SQL statements quite easy. Geometries are represented as WKT which is quite straight forward to understand. But of course it means programming work on your side. Regards Christian
-
How to work with Spatial Database with Delphi
Erwin Mouthaan replied to wuwuxin's topic in Databases
Take look at TatukGIS DK. Enterprise package contains extensions for advanced spatial databases like PostGIS. Postgress seems to be supported. -
(FYI) Delphi can't optimize out unneeded inheritance
dummzeuch replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
Telling (the right) people about Delphi and how good it is (or rather: was), was something that has not been done since the very beginning. Not even Borland managed that. They advertised in Development magazines (and later websites), but not where those people who make decisions about the money to buy development tools (the C*Os of companies) would read about it. So when a developer asked his boss for the money to buy Delphi related tools, they had to tell him what it is (and who Borland, later Embarcadero is) and what the value would be for the money, because they had never heard these names. It's even worse nowadays: We see Embarcadero endlessly blubbing on about how great their tools are to developers, but not going into specifics. That's the way you talk to the C*Os of companies, not to developers. But the C*O people do not read these posts because they just don't visit embarcadero.com and the Delphi blogs. So so they still haven't heard these names when it comes to investment decisions. And the developers don't read them because they don't get any interesting information from them.