Jump to content

Dave Novo

Members
  • Content Count

    139
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Dave Novo

  1. LSP simply does not work well yet in any sort of complex scenario. I wrote to EMB support about certain things not working with LSP mode and worked in Classic mode and they wrote: Although several issues related to the LSP server were included in the Sydney 10.4.2 update, several additional issues remain but are slated to be addressed in a future release or update. Examples of open defects affecting LSP: New LSP does not recognize newly build classes. https://quality.embarcadero.com/browse/RSP-31922 LSP not recognising subtype alias https://quality.embarcadero.com/browse/RSP-33546 LSP doesnt show errors https://quality.embarcadero.com/browse/RSP-33060 The Code Insight using LSP work only for small "hello world" applications. https://quality.embarcadero.com/browse/RSP-33403 Here are a few details which may affect Code Insight/Find Declaration: 1) It only works effectively on the first project in a project group, so if you have a project group with several projects, it is best to open just one project at a time. 2) When you see [Calculating...] it means that the LSP server is working and indexing, it's best to click elsewhere and then try again. 3) if you see an error 'cannot find file XXXXX' even though you are in the file in the IDE, it means the file cannot be found in the index database, so the LSP server still needs time to index it.
  2. We have been using Delphi and VMWare Workstation for a decade at least. We see no difference between performance in the VM or host computer. When performing timing tests of our applications, we see no difference between timing of single threaded applications between running the timing inside the VM and on the native hardware. For multi-threaded code, we have found running on the host machine faster compared to within the vm.
  3. Dave Novo

    Show a FMX form inside a dll from a VCL application

    I believe Remobjects Hydra can help you with this. If you go to https://hydra.remobjects.com/hydra/tour.aspx, you can see there is a section "Combining VCL and Firemonkey" .... Hydra provides a solution for this problem by allowing developers to integrate FireMonkey UI seamlessly with their existing VCL applications, or conversely add existing VCL user interfaces into new FireMonkey apps. ...
  4. Hello, I am trying to compile our project in Delphi 10.4.2 for the first time, and the code insight does not work. Ctrl+space or ctrl+shift+space do nothing. If I switch the Code Insight Manager back to Delphi (Classic Code Insight) it works again. I thought the Language Server Protocol was supposed to be better. Is there something I need to do in order to activate it?
  5. Dave Novo

    compiling DCU without creating EXE

    per this post, it seems that many of the optimizations from IDEFixPack were ported to Delphi 10.4.2, but not the compileOnly (which is perfect for us BTW). https://blogs.embarcadero.com/delphi-10-4-2-compiler-speed-improvements/
  6. Dave Novo

    compiling DCU without creating EXE

    @jbg - thanks for the tip. We are using Seattle for now, but in the process of upgrading to Delphi 10.4. So this will be useful for a bit. Is there somewhere in the project options you can specify extra command line parameters?
  7. Dave Novo

    compiling DCU without creating EXE

    @Fr0sT.Brutal The compiler is not 64 bit. The compiler is a 32 bit application that generates 64 bit code. In my initial post I described the problem with the EXE.
  8. Dave Novo

    compiling DCU without creating EXE

    @Fr0sT.Brutal - our project is 2.5M LOC approx. The 32 bit compiler gets up to 3GB but does usually complete without running out of memory. But the 64 bit compiler consistently ran out of memory. What you have described is exactly what we have done. to make it work. But we do not need all the EXE from the subprojects.
  9. Dave Novo

    compiling DCU without creating EXE

    Thanks for the tips. The command line compiler could work. The only issue I forsee is how to get all the hints/warnings etc. if it is done as part of a pre-build batch action
  10. Hello, The "open unit" (CTRL+F12) and "use units" is a key feature of MMX we use all the time and love it. We recently had to switch to use project groups because the delphi compiler was running out of memory. All of a sudden, the "use unit" was not finding some units any more, even though the option was set to "Search in files from project group". It seems that if I switch from project to project, it can find units within that project. The problem is that if I happen to be in another project at a time, it does not find the unit. Clicking on the little blue information symbol, it seems it might only find units that are explicitly referenced in the project files. Is there a way that these dialogs can use the "project search path" and "browsing path" from all projects in the project group. Or can I specify the path in another way.
  11. Dave Novo

    "Use/Open Unit" and Project Groups

    Yes, different projects within the group have different paths.
  12. Dave Novo

    compiling DCU without creating EXE

    @Vandrovnik - it seems to give an error right away and not compile anything
  13. Dave Novo

    compiling DCU without creating EXE

    Some googling came up with a few times this question has been asked https://stackoverflow.com/questions/33936269/how-to-build-a-delphi-project-without-generating-exe https://community.embarcadero.com/ru/component/easydiscuss/how-can-i-compile-a-project-dproj-file-bypassing-the-linker-without-generate-the-exe-file with no good answer yet. We started off creating a BPL, but it still takes time to link and create the BPL that we do not need.
  14. Dave Novo

    compiling DCU without creating EXE

    @TigerLilly - that was a very clever suggestion! It works to a degree, in that it creates the dcus. But if you select Compile all for the project group, it stops at that syntax error and does not compile the other projects. So I would have to manually trigger the compile for the other project as well. Maybe I could automate that somehow.
  15. Hello, For the "open module containing type" dialog, is there a way to specify which paths we want it to scan for the type. It seems it is only using types it found for the current project, instead of all the types in the different project groups.
  16. You can use the built in Regex tools in delphi and use the Regex from the following link https://stackoverflow.com/questions/30847/regex-to-validate-uris maybe 3 lines of code...
  17. Dave Novo

    Generic Interface implementation

    Maybe its time to revisit that with Gerrit? Does he still care anymore. The code is many years old now, and he is obviously off doing successful things with his mindmap software.
  18. Dave Novo

    Generic Interface implementation

    @Uwe Raabe - is there any way we can help in this regard. I just upgraded to the latest MMX and generic support is basically non-existent. I cannot even copy a generic class to the clipboard to paste to another unit. If click on the class in the the MMX window and select 'Cut' it deletes the class. Then if I paste to another unit it says "Nothing found to insert". If I click on a generic class in the MMX window, the code just jumps to the top of the unit. We love MMX here, any chance of open sourcing so others can help improve it?
  19. Hello, I am using Delphi Seattle. I am wondering if something like this is possible. I cannot figure out how query if the object supports T at the base level. TMyClass=class public function MyFunc<T:Interface>:T; end TMyDescendent=class(TMyClass,ISomeInterface) public function ReturnMyInt:ISomeInterface; end; function TMyDescendent.ReturnMyInt:ISomeInterface begin result:=MyFunc<ISomeInterface>; end function TMyClass.MyFunc<T>:T begin // do some stuff here Supports(self,T,result);// does not compile result:=self as T;// does not compile end; of course, I can always chane MyFunc to math the Supports signature (i.e. pass in IID and out Obj) but I was wondering if there was a way to do this with generics
  20. awesome. Thank you so much!
  21. Did you ever have a look at the old faststrings library? It was for ansi strings only, but they had a lot of good ideas. Plus, if you happen to be using ansi strings only for your application (or at least part of it) it is very fast.
  22. Dave Novo

    Developer Express gave up on FMX

    @John Kouraklis - I think EMB is caught between a rock and a hard place. By every indication I can see (# of questions on stack overflow for FMX vs VCL for example) VCL developers vastly outnumber FMX developers. But EMB is not going to grow promoting VCL. They need some niche that differentiates them from C# and all the other more popular windows platforms. So X-platform is a carrot that they wave to convince people to try Delphi. It is likely good for creating a phone app that has minimal UI requirements, but the desktop FMX components I have seen so far are underpowered compared to the VCL versions. I would love to use FMX to make our desktop app properly x-platform, but after 10 years of FMX several of the key 3rd party vendors still dont have FMX versions, so its difficult to migrate. The blog post also commented that they did not even get the interest level that they had hoped for. Which is not surprising. Not sure how many people started new FMX apps that required devEx grids in the 3 months that the devEx grid was out, and 3 months is certainly too short to migrate an existing VCL app that needed devEx grids. We were certainly aware it was there for example, but migration to FMX requires a lot of moving parts, and testing the grid was not yet on the radar.
  23. I am using Delphi Seattle and have a project group with two projects inside. One is a console app, one is a vcl app. For my debug settings I have all the proper things set to generate debug info etc etc. If I have the project settings set to NOT use MSBuild, everything works perfectly. The problem is that Delphi does not release the memory from the build process. After the first EXE compiles, memory goes to 1.6 GB. After the second compiles, it goes to 2.9 GB. It never releases the memory back to windows. It sometimes runs out of memory during the compiles, other times not. So I thought to use the out of process build and check off "Use MSBuild to externally compile". Everything compiles file, except I can no longer debug. When I put a breakpoint on a line, it turns green when the program launches, as if there is no debugging information. Its driving me bananas. This is for a win32 windows compile. If I try this in a blank VCL application with just a form and a button and a line of code in the button click, I can break on the button, but it jumps to the CPU window and not to the source when it breaks. This is even when I put the path to the source in the Debugger->Source Path for the project. This went away when I included remote debugging symbols. So I added that to my project and still could not debug. Does anyone have any tips for getting msBuild to work. I do have "include remote debugging symbols" turned on in the both whether or not MSBuild is selected.
  24. The following code compiles fine in Delphi Seattle var m:TMemoryStream; r:TRect; begin m:=TMemoryStream.Create; m.Write(@r,sizeof(r)); m.Free; but fails in Sydney 10.4.2 on the line m.Write(@r,sizeof(r)); with a "Variable Required" error. Looking at the Delphi Help at http://docwiki.embarcadero.com/RADStudio/Sydney/en/E2036_Variable_required_(Delphi) it seems that this should not be happening, but before I report it as a bug, does anyone have any insight?
  25. @David Heffernan - thanks. I did not appreciate the significance of WriteBuffer. Strange that there is WriteData, with lots of useful overloads, but no error checking. And WriteBuffer with error checking and just a few overloads.
×