Leaderboard
Popular Content
Showing content with the highest reputation on 09/12/25 in Posts
-
And here we go: An installer for the Beta version of GExperts for Delphi 13: See the blog post.
-
A smart case statement in Delphi?
Dave Millington (personal) replied to PeterPanettone's topic in RTL and Delphi Object Pascal
My apologies for seeming sarcastic. I understand why. I also know it's not intended as sarcasm. Text is hard and it's hard to balance the line of making points. I think it is wonderful when Delphi adds features, quite genuinely, and the post said so. I edited to try to help that understanding, but the original said "congratulations", and that is sincere, and I retained that comment. It's hard reading that kind of reply, Daniel, and I don't know what to make of it. I think the best thing is to apologise because it's clear you are offended: and I am sorry for that. Let me pontificate a bit: I worry about language compatibility. There are multiple Pascals out there: Free Pascal, DWScript, etc etc. Yet Pascal is a small language. If Delphi ever added any other feature Oxygene or Free Pascal or anyone else already has, and chose to do so with different, incompatible syntax, that would be a significant statement. I use Python a lot, it gives me the same "feeling" as Delphi when I use it, I have talked about Python a lot to people with quite some enthusiasm, it has a ternary if, and that ternary if is inverted -- that structure is legit, and Delphi could have used it, and then imagine if we had two versions in Pascal! Far better to copy, when it's already been done -- with code existing for years, it's key to keep the same syntax compatible. Equally, there's so much the language could do. When it moves forward, I hope it does so in ways that copy the path that has been led by others. Perhaps that is the message in the blog post: keep going; there's more, follow. I would certainly prefer it's read that way. Please read again, I hope it's gentler. For this forum... that was not the message. I had intended to directly answer a thread about a language feature with a blog post showing a snippet of the language feature the OP asked for. Message: it is possible, look! I fully respect you don't want other implementations mentioned, and will respect that. -
If you are have a current subscription license, you can now download RAD Studio 13 from MyEmbarcadero. https://my.embarcadero.com/#downloadsPage You can also see What's New on the doc wiki: https://docwiki.embarcadero.com/RADStudio/Florence/en/What's_New
-
I'm away at the moment and can't build an installer, but the current source code compiles with Delphi 13 and works with the 32 bit IDE.
-
We have now created this feature request: https://embt.atlassian.net/servicedesk/customer/portal/1/RSS-4079
-
Does anyone know if madExcept is going to be updated to support this new Delphi version? Latest news on the madshi website is from 2023 and their forums are dead 😞
-
Hi Patrick PREMARTIN, SMARTSEARCH (a key concept in Data Science) should also be used in the PALETTE search box: "combo DB" should find TDBComboBox and TDBLookupComboBox!
-
New Delphi features in Delphi 13
Attila Kovacs replied to David Heffernan's topic in RTL and Delphi Object Pascal
So no code formatting and no refactoring? Heavy. -
I've just put your code into practice and it seems to work very well. Thanks again Dave. The only oddity I noticed, is that if the phone (Android) is set to 24 hour format, and I use the above to show my picker in 12 hour format, the AM/PM toggle doesn't appear in the picker dialog, even though the dialog is in 12 hours format. If the phone is set to 12 hour before showing the dialog, then it does show the AM/PM toggle correctly. Weird! I suspect this is a bug in Android as there aren't any APIs to directly impact the AM/PM option so just noting here in case anyone else needs this functionality. Thanks again Dave
-
New Delphi features in Delphi 13
Attila Kovacs replied to David Heffernan's topic in RTL and Delphi Object Pascal
As with all advancing technology, some things get better and some things must get left behind. Starting with Delphi 12, the modeling features were moved to an optional add-on installation, and in Delphi 13, they're being removed entirely due to technical constraints. https://corneliusconcepts.tech/code-formatting-delphi-13 ROTFL One step forward, ten steps back. -
New Delphi features in Delphi 13
Steve Maughan replied to David Heffernan's topic in RTL and Delphi Object Pascal
I assume Delphi 13 can be installed alongside 12.3. Can someone confirm? If I install and it doesn't work alongside it would be a disaster for me. — Steve -
New Delphi features in Delphi 13
Attila Kovacs replied to David Heffernan's topic in RTL and Delphi Object Pascal
it only took 10 years -
New Delphi features in Delphi 13
Uwe Raabe replied to David Heffernan's topic in RTL and Delphi Object Pascal
Define big. -
As per title. The MultiInstaller in the Install subdirectory has also been updated and now installs P4D in both the 32-bit and 64-bit IDEs. It is the fastest way to install P4D. Just clone the repo and run MultiInstaller. It only takes a few seconds to install in both IDEs and configure the search paths. The provided setup.ini expects the folder to be called P4D. If not, you need to edit the setup.ini file accordingly. The only catch is that in the dialog box you should specify the parent folder of "P4D" (i.e. the folder containing the directory to which you have copied/cloned P4D) and not the P4D folder itself.
-
A smart case statement in Delphi?
Dalija Prasnikar replied to PeterPanettone's topic in RTL and Delphi Object Pascal
Oxygene has plenty of features that would be great to have in Delphi. I wanted to have a case statement with strings for years now. I think it was even reported in the old, old Quality Central. If may look like a simple thing but it makes code more readable. Now when we got if expressions, maybe we wil eventually get case with strings, too. -
A smart case statement in Delphi?
Dave Millington (personal) replied to PeterPanettone's topic in RTL and Delphi Object Pascal
It is of help actually -- I was feeling quite bad. Your post cheered me up. Would you expand "when" to pattern matching? -
There are a stunning 5.4% not using AI at all, hooray, brave men and ladies
-
New Delphi features in Delphi 13
David Heffernan replied to David Heffernan's topic in RTL and Delphi Object Pascal
I was interested in the new AI chatbot that Emba are offering, which was announced in the webinar yesterday. It's at: https://www.embarcadero.com/radaicompanion The concept is that it is an AI bot that has been tweaked to target Emba products, Delphi, C++Builder etc. Anyway, after a recent question on SO I asked: Does the VCL have a TagObject property? The answer was a little disappointing: Yes, the VCL does have a TagObject property. It is available in the FMX.Types.TFmxObject class, which is part of the FireMonkey (FMX) framework, not the VCL. The TagObject property allows you to store any TObject value. I mean it gets there in the second sentence, but starting with Yes is poor. Classic AI people pleaser stuff! I then gave it some more recent SO questions and I have to say it did a good job. I'm quite interested in this concept though, and we've been working on something similar for our product because it's too niche for standard bots to know how to answer tricky questions. -
Could someone make, quite comprehensive, tutorial video of using MMX
Uwe Raabe replied to Tommi Prami's topic in MMX Code Explorer
IIRC, Ian Barker is on for something like that. Not sure about the content and how much is covered. I will talk to him about that next week when meeting in person. -
Could someone make, quite comprehensive, tutorial video of using MMX
havrlisan replied to Tommi Prami's topic in MMX Code Explorer
There's also a fairly rich documentation available online. -
New Delphi features in Delphi 13
Vincent Parrett replied to David Heffernan's topic in RTL and Delphi Object Pascal
Is that a problem? If so, why? Yes - applications should not be installing root certificates into windows - the only scenario where I can see this being needed is when using self signed code signing certificates - which is happening more an more in enterprises for internal applications/scripts - especially ones where internet access is limited. -
New Delphi features in Delphi 13
Stefan Glienke replied to David Heffernan's topic in RTL and Delphi Object Pascal
I haven't found a critical regression in the past 24 hours. -
New Delphi features in Delphi 13
Lars Fosdal replied to David Heffernan's topic in RTL and Delphi Object Pascal
What you really need, really depends on each person. You obviously can't satisfy everone every time. -
udp discovery Delphi Super Fast LAN tethering in IPv4 network using Indy UDP AutoDiscovery IP
Remy Lebeau replied to bravesofts's topic in I made this
I have some issues with your implementation: IPv6 networks are not supported. The client request is needlessly wordy. The client broadcasts to 255.255.255.255 instead of to the subnet's actual broadcast IP. Some routers block traffic to 255.255.255.255 by default. In case the client is run on a machine with multiple networks installed (VPN, etc), there is no option to let the user decide which network to broadcast to. The client is using separate UDP sockets to send the request and read replies. You are forcing the client to receive on a specific listening port. The server is not sending its reply back to the real port that actually sent the request. Most routers will block this traffic if port forwarding is used. On the server side, always reply to the sending port. On the client side, either 1) let TIdUDPClient read replies on its sending port, or 2) let TIdUDPServer send the request on its listening binding. Use one or the other, not both. Doesn't use Indy's TIdStack.GetLocalAddressList() method to discover local networks (at least on Windows, as it may have issues on Android). Since your goal is to allow a TCP client to discover a server, I would opt to get rid of the TIdUDPServer on the client side, and just use TIdUDPClient by itself. Send a request, read a response, done. You don't need to make that process asynchronous with TIdUDPServer in most use cases. Using TIdUDPServer on the client side makes more sense if you want to discover multiple servers and then let the user choose between them, or to leave it open so servers can just broadcast their presence over time. -
A smart case statement in Delphi?
Uwe Raabe replied to PeterPanettone's topic in RTL and Delphi Object Pascal
You don't even have to provide that function as long as the strings matches the enum identifiers: s := 'three'; case TRttiEnumerationType<TMyStrings>.GetValue(s) of zero: writeln('zero'); one: writeln('one'); two: writeln('two'); three: writeln('three'); four: writeln('four'); end; Or if you prefer a more readable approach: type TMyStrings = (zero, one, two, three, four); TMyStringsHelper = record helper for TMyStrings public class function FromString(const AString: string): TMyStrings; static; end; class function TMyStringsHelper.FromString(const AString: string): TMyStrings; begin Result := TRttiEnumerationType.GetValue<TMyStrings>(AString); end; ... var s := 'three'; case TMyStrings.FromString(s) of zero: writeln('zero'); one: writeln('one'); two: writeln('two'); three: writeln('three'); four: writeln('four'); else Writeln('What?'); end;