Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 03/21/25 in Posts

  1. NexusDB components are now available in the new 64 bit IDE 👍 v4.7514 adds - 64 bit Designtime Support - Replication (Beta) Find the best Delphi Database at NexusDB
  2. Indeed there are: Set TControl.RaiseOnNonMainThreadUsage := True This will raise an EInvalidOperation when CheckNonMainThreadUsage is called for a control. This is automatically done inside CreateWnd.
  3. Can I participate with a program written 25 years ago? https://github.com/MarcoDelphiBooks/MasteringDelphi5/tree/master/WebBonus/22/MINES
  4. For years LSP has been broken on our very large code base. The main problem being "Find Declaration" is non-functional. We also experience problems when switching between Win64 and MacOS build targets; usually doing so without cleaning the project results in the IDE crashing or the compiler crashing or both. I complained about this earlier today in this post: Today, I was stepping through code in our MacOS build when I noticed that the IDE was taking me to the wrong source file. That clued me into what was going on. This project has about 40 local copies of Delphi source files to fix various bugs and add some needed access to private fields, etc. (Trust me, we hate to do this, we don't want to do this, but when the FMX code base assumes only one thread will ever want to use bitmaps and stuff like that, we have no choice). Of course these local copies appear first in the search path. This naturally necessitates that the other source files are rebuilt, and they are listed in the search path, lower down. The compiler works perfectly fine; our modifications are built without issue. But the IDE and LSP hate this. While stepping through code, it took me to the original FMX.COntrols.pas file, not the local copy that is being compiled into the build. No amount of tweaking the search path or browsing path helped. This got me thinking that this could be related to code navigation issues. So I went into the Rad Studio installation folder and renamed all of the source files for which we have a local copy, so that it would be impossible for the IDE or LSP Server to reach them. And like magic, every single problem I have been having with code navigation suddenly went away. Even switching between MacOS and Win64 build targets and compiling became a seamless operation. So, it appears clear that the LSP Server and IDE do not take the same clues as the compiler or linker or whatever when it comes to search paths. And chaos ensues, due probably to incompatible interfaces that exist between unmodified fmx classes and our local forks. Now I could be overstating the effectiveness of this fix, but I spent an hour doing things I know break the IDE and they all worked. The problem is now I have gone nuclear on the Delphi source folders and no other projects can use them. What I would like to do is have a different copy of the BDS /source/ folder that is used for this project. But we already know a wholesale copy into the search path won't fix it, because those files are already there. We need the IDE to treat a different folder as canonical for $BDS/source. I already use the -r command line switch for the IDE to isolate this project into its own registry hive, but I could not find a way to override the BDS variable (nor do I think that is the right solution). This brings me to my question -- going to Tools/Options and trying to override the BDS environment variable creates an error since it is "built-in." My current solution is clunky -- maintain two source copies of the BDS source folder, one with all the files and one with files removed that we have local copies of -- and switch between the two depending on what project I am working on. But is there a way to tell the IDE and LSP Server to use a different source folder? (Probably not, because if so, it would already be working based on the project settings, LOL!) If I can get time I may try to make a small project that reproduces one of these problems, but this is a million+ line project and it could have to do with a combination of factors, not just the fact that we have local copies of stuff like FMX.Controls with incompatible interfaces.
  5. Brandon Staggs

    How I fixed LSP (sorta) and a question

    Of course. If someone wants to pay me my going rate, I'd stop everything and create one. As it stands, I hope to find time to work on creating one. The million+ lines of code that don't belong to me can't just be posted in attlasian's system.
  6. Dave Nottage

    Delphi, MacOS and dmg file

    Personally, I create .pkg files - using the create installer function of Mosco.
  7. I've seen a few people discussing their development and posting screenshots in the Skia4Delphi telegram group.
  8. eivindbakkestuen

    function declarations without ; at the end

    Best guess, with a bug report, Emb will fix the pascal unit, but not change the compiler. But it needs to be logged first, no need to ask anybody 🙂
  9. Remy Lebeau

    Tool for finding non-literal format strings

    Or, more simply, just detect a function call involving an "array of const" argument preceded by a string argument, and then warn if the string argument is not a literal.
  10. FYI, you can create and use a VCL TBitmap in a worker thread, you just have to lock the bitmap's Canvas to prevent the main thread from releasing the bitmap's GDI resources. The new TControl.RaiseOnNonMainThreadUsage property was introduced in 11.0 Alexandria: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/What's_New#Threading_safety_improvement However, it is currently only being used by the VCL when a TWinControl's window is created, not when it is accessed. Fortunately, there is a new TControl.CheckNonMainThreadUsage() method that is public, so you can call it for your own purposes before you access a UI control's members.
  11. Lars Fosdal

    function declarations without ; at the end

    I see the same in the D12.3 source, but no errors show in the IDE. I copied the source to another unit and compiled it and it doesn't care about semi-colons for external function declarations - not even for those with the delayed keyword. Bug or feature? I don't know, but it certainly is not consistent with the rest of the language.
  12. Brandon Staggs

    Delphi 12.3 is available

    Edit: as was pointed out by someone else, this non-native speaker may not mean what I mean by "new architecture." But here's what I was referring to: 42 minute mark. Listen carefully where he says there will be a "new architecture" in the next major release.
  13. ToddFrankson

    Delphi 12.3 is available

    Me Either.
  14. dummzeuch

    Delphi 12.3 is available

    Other companies (e.g. Steema (TeeChart)) have offered me remote assistance via TeamViewer (their choice, not mine) with a compilation / installation problem. Embarcadero could do something similar at least for customers with subscription and "Platinum support" to track down this annoying problem. We do not have Platinum support, but if we had and could reproduce this problem reliably, I would insist on something like this. Embarcadero is always bragging that they have some large enterprise customers. Customers like this should be able to pressure them to get their act together.
  15. OP: Unambiguous question about the behavior of X A: Here's some code that does something similar but doesn't answer your question. OP: Okay but what about my question about the behavior of X A: Here's some data that also doesn't answer the question. OP: Thanks but... B: Have you tried <something else> instead? OP: *flips desk* 🙂 Apart from that, https://www.scientificamerican.com/article/time-s-passage-is-probably-an-illusion/ But seriously, ignore the help. It's obviously not up to date. The behavior of Now is never going to change to match the help because that would break a lot of code and nobody needs it to have 1 second resolution. Even in Delphi 1 (which implemented Now as Date (and Time via the DOS INT 21h, function 2Ch (which had 10 mS resolution))) the resolution was better than 1 second. I too would go for TStopWatch - even if you don't need the precision.
  16. Sure - you may be the only entry so it could be an easy $500! LOL
×