-
Content Count
569 -
Joined
-
Last visited
-
Days Won
11
Everything posted by corneliusdavid
-
Under HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\<Version> ... If you have any part of the BDE installed or used to be installed but not completely cleaned out, there will be a few entries. CodeInsight has some keys with the word Borland in it but that's not part of Delphi proper. I also found a several entries under the BDS Editor key in recent installs of Delphi that look like they deal with the IDE's editor such as a DefaultFileFilter, EditorEmulation, Known Editor Enhancements, and several Source Options keys. Under ToolForm|Mapping, it looks like there are several "new item" entries that have never been renamed from their original entry. Under HKEY_LOCAL_MACHINE\SOFTWARE\Classes, you'll find lots of objects registered that still have the Borland name. Some of these are only to support legacy components, like MIDAS or the BDE but some appear to still be active parts of product, like ToolsAPI and Refactoring. I'm guessing there's just too much tooling and/or third-party support built up around these original registry entries that changing them would break things. So, yes, the Borland name is still a part of Delphi, albeit quite hidden.
-
Good point; I often forget to look at which group the message is in.
-
Calling a Delphi DLL function from a C++ Builder application
corneliusdavid replied to Jean_D's topic in VCL
Either include the ShareMem unit in both Delphi and C++ so both sides understand Delphi's strings, or pass the string as a pointer (e.g. PAnsiChar) from the Delphi unit--which is what the C++ code is expecting.- 3 replies
-
- delphi
- c++ builder
-
(and 3 more)
Tagged with:
-
TButton is a wrapper around a Windows control so doesn't natively support a custom color. To accomplish this, you could use TRzButton (from KSVC) and disable the ThemeAware property, then set its Color property.
-
Delphi 12.1 Amnesty price isn’t what I thought it was…
corneliusdavid replied to Al T's topic in Delphi IDE and APIs
There is--it's called, email back and request to opt out of that unwanted support line. -
Delphi 12.1 Amnesty price isn’t what I thought it was…
corneliusdavid replied to Al T's topic in Delphi IDE and APIs
Check the renewal quote; if there are two lines, one is likely for "Platinum Support" which is totally unnecessary (at least in my opinion). On mine, that support cost adds $500 to the quote. I always respond and have them take that line off as I have NEVER requested it or needed it. That might help to bring the price back down to something reasonable. -
It looks like the only mention of Android support is in the Version 5.0 Release Notes; there are a couple of references to Android which link to source check-ins. I'd follow those and ask the authors. But it still appears so new that there would likely be a lot of bumps to get it deployed. You might consider using Interbase Embedded (IB Mobile), which has a similar structure and is free to distribute on mobile devices for any D12 edition.
-
Devin AI - Is it already happening?
corneliusdavid replied to FreeDelphiPascal's topic in General Help
Hmm... Yes, that is a serious consideration. Eye-opening article. True. Good point. -
GExperts Code Librarian is very handy--I have used that quite a bit.
-
Devin AI - Is it already happening?
corneliusdavid replied to FreeDelphiPascal's topic in General Help
I don't put data into the code repository--nor are there API keys. Those are always kept totally separate and private. THAT is what I consider top secret. True. And I can appreciate that. For the most part, keeping code in a private repository is good enough security for the projects I work on (small business database apps); the databases and API keys are what are always kept out. It may very well be a completely different scenario for others--and for many good reasons as you've stated. This is the part I guess could vary a lot for different developers/companies. Like I mentioned above, I mostly write small-business database desktop apps containing grids, edit forms, reports, and so forth. There's nothing terribly tricky about the code except the way the forms are designed or business rules that are implemented. Even embedded SQL statements won't reveal more than how the tables are structured. Now, if the customer databases or sales history were to get out, that is something that would be very bad. So for me, those are the "top secret" part of my projects. But if an AI were to train on my proprietary code, all it would get was how I implement logging or store configuration settings or create/destroy forms and show error messages and how data is accessed--but no usernames or passwords. I'm not at all arguing that no code should be private or even that trusting private online repositories or AI privacy policies should be fine for everyone--obviously not. But they're good enough for the micro-apps I build. And I was surprised to see the resistance to including AI in the IDE; but now I understand. (And I'd also like to see bugs fixed first, like @Vincent Parrett said.) -
Devin AI - Is it already happening?
corneliusdavid replied to FreeDelphiPascal's topic in General Help
First of all, I don't care if my code is used to help train an AI--in fact, I'd be honored! Second, I don't put top-secret stuff in code--or if I do (like a user-requested back-door) I either encrypt it first or (more often) keep it completely separate in external files not included with the source repository. Third, from what I understand, only publicly available repositories (open source) can be legally used for analysis and AI training. And if you do include sensitive code, GitGaurdian can watch your code and immediately warn if you upload secrets or vulnerabilities that shouldn't be there. There's a lot of different opinions to what I've said here; some people are very concerned about privacy and security (and I commend their concern and read their blogs), others don't know or care. I'm kinda in the middle: wary and take steps to protect obvious holes in my process, but I also don't bog myself down with trying to hide everything in constant fear of some large corporation knowing everything I do. I personally feel there's a lot more advantage in utilizing tools that save me time than there is hiding everything I do for fear it might possibly be used inappropriately. In other words, I have decided to trust policies that state my private code is private. Besides, a vast majority of anything that needs to be kept private is in the database, not the code--and databases are never put on Github, of course. -
Devin AI - Is it already happening?
corneliusdavid replied to FreeDelphiPascal's topic in General Help
I don't understand why this would be a concern. Certainly, any AI built in would just be an interface to utilize your own AI account somewhere, right? Nothing would get automatically uploaded unless you hook it up and start using it. Just like Delphi has integration for git but you don't have to use git inside the IDE unless you tell it to and give it your account information. Am I missing something? -
It was interesting seeing this list and the responses as I've only used the free ChatGPT about a half dozen times--I haven't considered getting into it seriously. But I decided I should look through these tools listed here (didn't know there were so many geared for programming!) and get up to speed since AI is here and being used and talked about everywhere these days--I'm starting to see how this could be quite a time-saver for many things. Today, I was struggling with some untyped string parameters being passed into a function and it was failing to get the values properly after converting this old code from Delphi 5 to Delphi 12. I knew I had to add support for UnicodeCode types but I was struggling with how to get the value from the embedded pointer. I asked ChatGPT and it gave a pretty good answer--and it was correct but it only listed the new Unicode and WideString types. I wanted to be able to support ShortString as well. So, I posed the exact same question to Claude and it gave a nearly identical answer BUT included support for ShortString as well, noting the slightly different syntax (you have to dereference it while you don't with the new modern string types). I asked Claude about the difference and it gave a good answer about the history of string types and why ShortString has to be handled differently. I'm very impressed and am about ready to sign up for Claude! (I like what I'm reading about it's "project" feature as well.) Thanks all for your comments!
-
VCL or CLX? How do I know what type of application I'm designing in Delphi 7. I'm a beginner.
corneliusdavid replied to Miguel Jr's topic in Delphi IDE and APIs
By default, creating a new Windows Application in Delphi 7 uses the VCL framework. That was the default since Delphi 1--and actually is still the primary one on the menu today (unless you change it). So, if you select "Application" and not "CLX Application" from the New menu then you are creating a VCL application: Once the application is created, you can look at the main form of your application. In addition to what @jonnyg said by checking whether it's linked to DFM or XFM resource, you can Ctrl+Click on one of the used units, such as Forms, and look at the comment header, which will tell you explicitly what type of component library is being compiled and linked in: {*******************************************************} { } { Borland Delphi Visual Component Library } { } { Copyright (c) 1995-2002 Borland Software Corporation } { } {*******************************************************} unit Forms; In newer versions of Delphi where VCL is not always assumed, the menu choices to create a project are more clearly specified. For example, in Delphi 11, this is the default New menu: ... and "Multi-Device Application" is using FireMonkey (FMX) as that is the only cross-platform visual library that comes with Delphi these days. -
Well, I feel silly. I just noticed a parameter in DosCommand's NewLine event that indicates whether it's a full line or not. Checking that now gives a cleaner log--no partial lines. So, yeah, DosCommand works great!
-
AutoGetIt uses it to launch batch files. The only problem I've had is that sometimes partial lines are returned as full lines, then the next NewLine event returns the full line. Not sure if this is a problem in DosCommand or some OS-level buffering--never took the time to look deeply into it.
-
That's what I was thinking. DosCommand works great and is pretty easy to use--no need to get into the intricacies of CreateProcess.
-
What is "such a shame"? Perhaps you're just unfamiliar with current best practices? There are many components that use the Images property: TBitBtn TSpeedButton TCategoryPanelGroup TMainMenu TActionList TTabControl TPageControl And many more. Plus, many third-party components use this property as well. It's far more versatile than the old Glyph property. Search for articles and YouTube tutorials--you'll find plenty of information.
-
Where can I find the official version numbers of the embarcadero products?
corneliusdavid replied to Mr. E's topic in General Help
I believe you're right as evidenced by both 12.1 and 11.3: But back in XE series, some patches were referred to as updates: That's pretty nice and comprehensive code! -
Where can I find the official version numbers of the embarcadero products?
corneliusdavid replied to Mr. E's topic in General Help
It sure seems like there should be but I can't find it. I think the Wikipedia page has a pretty good overview of the version history but it's unofficial, of course. I've got a list of several Delphi About screens of several versions of Delphi and your 12.1 build number matches the one I have installed. I've found that "patch" is often interchangeable with "update" when it comes to Delphi version numbers (although "update" seems more official and more often includes features while "patch" is more often used for bug fixes or missing files in the original installation). -
Visit the Indy page on Github and follow the Documentation link on the Wiki: https://github.com/IndySockets/Indy/wiki/Documentation
-
What kind of help are you looking for? Design suggestions? You could reduce the font size so the tab captions fit. You could show the tabs vertically instead of horizontally so you could see the tab text but it would take a lot of screen space. You could display icons instead of text on the tabs and then have a label at the top of the each tab's body area to identify the selected tab. You could detect the form factor and use different techniques on different devices to show more text on larger devices and less on smaller ones, putting the ease-of-use back on the user and their choice of device.
-
Is this a one-time input of historical data or is more data available from the API every day? Perhaps it makes sense to write a completely separate program that operates in the background and just pulls data into a local database on a regular basis and then your user-facing program interacts with the local database?
-
I totally agree. I don't think I have EVER created two forms to work with the same data--seems like tremendous unnecessary duplication of effort plus a maintenance nightmare to remember to have to make changes in two places any time you need to add or change a field or label or some other aspect of the form. And, as mentioned, it's as easy as checking the State property of the associated dataset or a flag variable if you're using non-data-aware controls. This would be the one exception I can imagine and makes sense to tightly control some required fields and help the user fill out the data properly but that's really a different purpose, sort of like creating a report or grid to view records in addition to the form that created them is also a different purpose.
-
From the Delphi Help file on TSQLTable.IndexFieldNames...