Leaderboard
Popular Content
Showing content with the highest reputation on 09/10/24 in all areas
-
That's not the correct place to contact. Now, when you have an active update subscription - besides always having access to the latest Delphi releases which is important nowadays - getting registration bumps is pretty straight forward and resolved quickly through support. When your active update subscription is expired, which it is in your case according to your initial post, you would have to contact your reseller (If you got your license through that in your home country) or Embarcadero sales directly to get the license bumped. They might offer you a renewal or new license depending on your status, but it isn't a requirement, you can decline the offer and just request a license bump. https://www.embarcadero.com/company/contact-sales As it is a perpetual license, you can keep continuing using that version. You can manually check your registration limit yourself if you need to reinstall in the future. I wrote a guide here: https://docs.code-kungfu.com/books/licensing-and-registration/page/how-to-check-your-registration-limit Hope it helps.
-
What are you using AI code-gen tools for that's working well?
Brandon Staggs replied to David Schwartz's topic in General Help
I've found that using Copilot with prompts like "Write Delphi code that does X on MacOS" is the fastest way to figure out what API to use and what units to import. The code may not compile but it doesn't need to -- such things typically take a lot longer to learn when wading through Apple Developer docs or trying to find it in Stack Overflow. Also questions like "What is the equivalent MacOS code to do what X does on Windows" and stuff like that, actually work pretty well to get me on the right track with minimal Googling or looking through SO. -
*facepalm*
-
Delphi bug reports or feature requests to "vote"/comment for (important, fatal etc)/
Dave Nottage replied to Tommi Prami's topic in Delphi IDE and APIs
I'm unable to access this one. -
@David Schwartz Command line tool is now available: https://github.com/synopse/mORMot2/tree/master/src/tools/mopenapi (this is a good showcase how cross-platform and cross-compiler command line switches parsing could be done with mORMot) I will release a Win32 binary somewhere in the next days. Thanks for the feedback!
-
Gaining access to private class vars of an implementation class
Dalija Prasnikar replied to Eric Grange's topic in RTL and Delphi Object Pascal
The problem is that Embarcadero provides base framework classes that satisfy very narrow usage and are not properly open for extension. Sometimes you need to change literally one line, to get the needed behavior, but there is no way to do that properly. So you need to resort to hacking into those classes. Protected opens up the class for needed extensions and still protects casual users from using implementation details and does not break encapsulation. Yes, if the implementation changes, you may need to update your code to match the changes, but you would need to do that regardless. Private is major PITA. -
You are facing the wrong direction in asking this question. You can only get the answer to "what belongs in our MVP" by asking prospective users of your software. In fact, you need to ask Subject Matter Experts (SMEs) in that domain who have a deep understanding of how your prospective users work and what kinds of functions and services they need to do their jobs better than what's already available. For a Corporate-level CRM package, you're going to be fighting a huge investment in their current solution, and a TON of resistance to change. You can minimize the latter by making your solution as compatible with whatever turnkey solution they might be using. But most of them are customized, and the companies pay a LOT of money in maintenance fees to keep them moving forward. First, you'd have to duplicate what they've already got, then you'd have to figure out what their 3-5 year backlog of change requests is and implement the most significant of them, then get that into the hands of their Corporate IT people so far ahead of what their expectations of the current platform are that it's enough for them to go to their CIO and say, "We need to jump ship and go with this other product!" at which point they're likely to be fired. Facebook did not start out as a better MySpace. But it wasn't long before they put MySpade out of business. You need to find a small specific niche and start building something that's simple yet unique that solves a glaring problem, as laid out by an SME in that niche. Make it available cheaply or free and then listen to your customers and build new features they're looking for, but in a more abstract way. If you're lucky, in 10 years you'll have something that one of the elephants in the field will want to buy you out for 9 figures. But asking a bunch of people who are SMEs for writing software in Dephi about what they think should go into an MVP targeted at Corporate Sales, Marketing, Support, and Management is not going to get you anywhere. Reach out to SMEs in THAT domain, and the first thing you should ask is, "What's it going to take to get a typical Corporation to adopt a new and unproven CRM product? You're not going to like their answer.
-
Did you know that the following will automatically work with TDictionary: type TMyKey = record public class operator Equal(const A, B: TMyKey): Boolean; function GetHashCode: Integer; end; Without the need to write custom equality comparer. At least in Delphi 12 it works. And System.TypeIfo unit contains GetRecCompareAddrs function, which is used in default equality comparer implementation. I realized it only recently, and see no docs/info on the internet.
-
Sorry, that was the least biased answer, to such an wildly general and fully open question
-
Let me Google that for you... https://en.wikipedia.org/wiki/MsQuic https://github.com/microsoft/msquic/blob/main/docs/FAQ.md Enabling HTTP/3 support on Windows Server 2022 Troubleshooting HTTP/3 in http.sys
-
Gaining access to private class vars of an implementation class
Eric Grange replied to Eric Grange's topic in RTL and Delphi Object Pascal
Encapsulation can be frustrating, but exposing everything means you're making promises. People's code will gain dependencies to everything that can be accessed or overridden. Which means you won't be able to change much (or fix) without breaking user code. Opening too much means code will sediment and become untouchable... In the case of the DX11 driver, it's obvious it was locked in the implementation section because whoever was working on it wasn't satisfied with it. Likely because he/she did not have time to tidy it up. It's essentially DX9 code with a light rewrite to DX11. I was able to hack it, but it was brittle. I'm now starting down the path of reimplementing it, which in the long term will open more possibilities (and hoping Delphi 12.2 doesn't wreak havoc on TContext3D, haha) -
What are you using AI code-gen tools for that's working well?
Lars Fosdal replied to David Schwartz's topic in General Help
I mostly use CoPilot to extract the stuff I need from massive amounts of documentation. I sometimes use it to summarize key info from a large text. I currently don't use it much for programming, but I would like to use it for explaining "what does this do", or for getting suggestions to improve code. -
What are you using AI code-gen tools for that's working well?
Dave Nottage replied to David Schwartz's topic in General Help
Absolutely. Depending on which engines you use, it can recognise this if you "call it out" - why it doesn't realise this from the start is a mystery. I'm having loads of success discovering how to do things that I would otherwise have little or no clue about. Asking the right questions (including follow-up questions), and being able to recognise flaws in the answers, is the key. -
What are you using AI code-gen tools for that's working well?
corneliusdavid replied to David Schwartz's topic in General Help
Last December, I blogged about how ChatGPT helped me write a DLL to call a SOAP web service where the header packet was already created (I had always used the wizard-created class and had a brain block). More recently, I've been using Claude to jump-start projects. For example, I needed to write a small WebBroker app but hadn't done that in a while and just needed a quick reminder of the structure. I was about to look up an old project when I decided to ask Claude and it built a simple example. AI isn't doing my work for me but it's increasing my productivity by either reminding me of techniques or helping me get something going quicker. It's sort of like a writer who sits down to type the next novel but just needs a shove of inspiration to get it started. -
Delphi bug reports or feature requests to "vote"/comment for (important, fatal etc)/
Dalija Prasnikar replied to Tommi Prami's topic in Delphi IDE and APIs
No. Please don't post existing bug reports to the new tracker as they already exist in the internal tracking system and doing so duplicates the issues and only creates more unnecessary work. Also ne tracking system does not support voting. There are zero benefits for anyone involved.