-
Content Count
792 -
Joined
-
Last visited
-
Days Won
61
Everything posted by Vincent Parrett
-
@pyscripter I didn't, I leveraged the work done by Jan Goyvaerts in TPerlRegex (System.RegularExpressionCore) which leveraged the work of others on PCRE imports (System.RegularExpressionsAPI)
-
This all seems like an over complication for little gain. Perhaps the OP could explain better what he is trying to achieve by this? As @David Heffernan said, this is worse than method overloading, and the need for that could be removed in many cases by allowing named parameter passing. IMHO, most uses of GetTypeKind in generic code is just making up for the lack of constraint types on delphi's generics.
-
Yes, that's what I'm doing, not before each form.. just before the first form (splash screen) is shown. I just don't do it in the dpr, since I need to check the user's config to see which theme is selected first. My dpr literally had 1 line (apart from uses etc) begin TIDEStartup.Run(); end. That does mean however that the Appearance node in the project options doesn't show - so I have to manually add the styles to a resource file - not a big deal though.
-
I do that (well not in the dpr, but before any forms are shown).
-
Styles cause all sorts of flicker problems - I'm pulling my hair out dealing with flicker that was introduced somewhere between XE7 and 10.4 (I'm upgrading from XE7) - really wishing I had never bothered with styles! FWIW, the IDE also has many flicker issues - the whole VCL/styles thing is a mess, but they can't be bothered to fix it because marketing can't put that "on the box"!
-
wuppdi Welcome Page for Delphi 10.4?
Vincent Parrett replied to PeterPanettone's topic in Delphi IDE and APIs
Is the source available somewhere? -
I have GExperts (built from latest svn) and fix insight, seeing shutdown issues since installing fixinsight yesterday. Also seeing the occasional issue with GExperts.. but I'm going to blame the IDE because even without these two plugins, it's buggy as hell!
-
Search Declaration now works flawlessly in 10.4
Vincent Parrett replied to PeterPanettone's topic in Delphi IDE and APIs
Unfortunately Resharper is a resource hog, and really slows down the IDE. I have not used Rider, but have used some of their other IDE's and found them quite strange to work in. We live in hope! -
Search Declaration now works flawlessly in 10.4
Vincent Parrett replied to PeterPanettone's topic in Delphi IDE and APIs
There's no doubt about that. I use VS a lot, and with CodeRush installed and navigating code is leaps and bounds ahead of delphi. -
Search Declaration now works flawlessly in 10.4
Vincent Parrett replied to PeterPanettone's topic in Delphi IDE and APIs
It works most of the time inside a single unit or even a single project. I wouldn't call a project group a special case though, anyone who works on a non trivial project would be using them. -
Search Declaration now works flawlessly in 10.4
Vincent Parrett replied to PeterPanettone's topic in Delphi IDE and APIs
Yes it could, but it would need to parse all the code.. which would reintroduce the overhead that the LSP is supposed to remove (high memory usage). Writing a complete, fast, memory efficient parser for the purposes of navigation is no trivial task. -
Search Declaration now works flawlessly in 10.4
Vincent Parrett replied to PeterPanettone's topic in Delphi IDE and APIs
I've already been over this with embarcadero people privately (look at the date, here's a clue, it's before the release date) and provided lsp logs etc. Ctrl+enter opens the file open dialog. So does right clicking and selecting Open file at cursor. So for me, 10.4 has completely broken code navigation... which makes it painfully slow to work in. To reproduce, create a project group with a package project, and an exe (that uses runtime packages) and references the package project. In a unit in the exe, add a unit from the package in your uses clause, then try ctr+click. My project as 100+ packages and a few exe projects.. it's not easy to work on with broken navigation. -
Search Declaration now works flawlessly in 10.4
Vincent Parrett replied to PeterPanettone's topic in Delphi IDE and APIs
https://quality.embarcadero.com/browse/RSP-28457 - opened on the 8th May.. read into that what you will. -
Search Declaration now works flawlessly in 10.4
Vincent Parrett replied to PeterPanettone's topic in Delphi IDE and APIs
Nope, not true. It completely fails when the identifier or type in is in another (referenced) project in the same project group. Makes working on a large project quite painful. -
Depth First Search vs. Breadth First Search in directories
Vincent Parrett replied to dummzeuch's topic in Algorithms, Data Structures and Class Design
A quick look tells me there are other issues with TDirectory.GetFiles - no support for paths longer than MAX_PATH - which windows 10 1607 or later does support. You do have to enable it both on the system (reg key) and per process (manifest option) https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#enable-long-paths-in-windows-10-version-1607-and-later -
Depth First Search vs. Breadth First Search in directories
Vincent Parrett replied to dummzeuch's topic in Algorithms, Data Structures and Class Design
Thanks for that info! I have been using TDirectory lately, but this thread spiked my interest in looking at how it's implemented.. creating a freeing a TMask for every file/directory is not very efficient. -
Embarcadero entries in the path
Vincent Parrett replied to pyscripter's topic in Delphi IDE and APIs
We see a spike in traffic visiting this post on our site after every delphi release - how-to-fix-your-system-path-after-installing-delphi It's rather sad that it's the second most popular post on our blogs (after the DUnitX introduction post). -
No memory leak, FTask is an interface reference. FreeAndNil should never have been called on it.
-
Depth First Search vs. Breadth First Search in directories
Vincent Parrett replied to dummzeuch's topic in Algorithms, Data Structures and Class Design
TDirectory.GetFiles seems horribly inefficient to me. In most cases it's probably fast enough.. but looking at the code, I can't help think it's use TPath.DoMatchesPattern is wasteful (creating the mask and freeing it each time). -
Or avoid Synchronize and send custom message to the control using PostMessage(control.handle,...) and call invalidate in the message handler.
-
FinalBuilder 8.0.0.2863 Released - with support for Delphi 10.4 Sydney
Vincent Parrett posted a topic in Delphi Third-Party
FinalBuilder is a fully featured automated build tool, which supports Delphi 3 to 10.4, along with C++Builder 4 or later. FinalBuilder makes it simple to automate your entire build process, from compiling your delphi projects to compiling and uploading installers, creating ISO's. There are over 600 built in actions, with support for Git, Mercurial, Perforce, Subversion, TFS and many other version control systems. Unlike xml or batch file based systems, with FinalBuilder you can easily debug your build process, with breakpoints, step over, step into etc. Of course FinalBuilder also integrates with Continua CI - our continuous integration server product, and with other CI servers such as Jenkins. Thousands of Software Developers rely on FinalBuilder to automate the build, test and release process. If you are not using FinalBuilder to automate your builds, you are missing out. Download a fully functional 30 day trial version today. -
ANN HTML Library 4.1 released
Vincent Parrett replied to Alexander Sviridenkov's topic in Delphi Third-Party
Flex and grid would be nice, for sure, but you realise browsers with huge dev teams have taken years to implement and perfect these features.. not a small ask for a component vendor! -
How to remember units and classes, where is what?
Vincent Parrett replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
I find using unit namespaces to be extremely helpful in structuring code e.g VSoft.Core.Utils.String I can look at that unit name and know which project it's in (core) and which folder it's in (Utils). I always prefix my units (in new code, not all older code has been changed yet) with VSoft (company name) - it helps a) avoid conflicts with other libraries b) let's me differentiate between the code I wrote vs a library. I really wish all library vendors would do the same. Utils.pas in 20 different libraries is not helpful! Other than that, I will say code navigation is not one of Rad Studio's strengths.. hopefully with them moving to LSP this will improve in the next few releases. -
That is in a separate repo - https://github.com/VSoftTechnologies/VSoft.WeakReferences
-
No, just as string fields in the record. Yes by value, they are wrapped in a class while in the queue, see TVSMessageWrapper<T>. You don't need to anything fancy, just create a message record type with the fields you want to pass around. We use have been using this library (or variations of if, I refactored it a few years ago) in FinalBuilder for a long time to send messages from the stepping engine to the UI and the logger and I've never seen any issues with message contents etc. There's a sample application (vcl and fmx versions) which shows it passing strings around just fine.