Jump to content

Andrea Raimondi

  • Content Count

  • Joined

  • Last visited

Community Reputation

8 Neutral

Recent Profile Visitors

325 profile views
  1. It appears that, so far, I don't have many 😄 Chilkat is DLL based (which is a big no-no for me) and /n is just way too expensive. Tms does not support it as far as I can see. I might need to roll my own.
  2. The problem I have with that company is that everything costs waaaaaay too much. I am a single developer and for now I am just exploring options.
  3. Hi, For now it's just curiousity, but I might need it soon-ish.
  4. Andrea Raimondi

    GUI automation tool for Firemonkey apps ?

    Hi! What, exactly, are you looking to test? A lot can be accomplished, for example, by unit testing even for the UI using mock objects. A
  5. Andrea Raimondi

    Platform switch expert

    Hello! Anyone knows of an expert that, given a project group, will automatically toggle all projects to Win32/64 according to what was previously using(i.e, switch to x64 if currently x32 and viceversa).
  6. Andrea Raimondi


    My assumption here (which means I may be wrong) is to discourage you from doing precisely what you're trying to do, i,e. change it at design time. With that said, it's a decision that sits quite well with me for the simple reason that it allows me to enable things as I go along, so that at any given point I can, for example, showcase things while still giving off that "unfinished" feel that is so important if you're dealing with upper management/customers/etc.
  7. LiveBinding looks very cool at the beginning... until you try something more meaningful 😄 I mean, Maurizio Del Magno's IORM solution seems to provide a neat MVVM implementation, but I am also in the camp "I don't really like the MVVM approach" as it's usually defined (i.e. chock full of RTTI etc.). I'd rather the compiler enforce things than having exceptions at runtime. But MVVM per se isn't a bad idea: you can do it pretty much the same way ASP.NET core does which isn't bad at all. The basic idea is this: Say that you have a TUser class with all of its properties (Name, UserStatus, etc.): this is your model. Then you have a TLoggedUser class with only the relevant information for the logged user (i.e. a Token, the UserStatus, etc.) and this is one of your ViewModels. You can have as many ViewModels as you need based on one single model. What happens then is that you only deal with ViewModels everywhere else than where you need to deal with the model (which is usually not user-facing). That approach I like and I think is sensible. TMS Aurelius allows you to do something like this by using a MultiModel setup.
  8. I don't know if I qualify as an "expert", but I find that as my knowledge grows I also come up with new solutions that work much better for the intended (and sometimes changing!) goals. For example, recently, I have come up with a solution to reuse as much UI code as possible between FMX and VCL. While it still requires you to use different components (for the two libraries are much too different) there is still a lot you can do to minimise impact. Thus, I would say that as I gain experience, I find new ways to address new or existing problems which work much better for the goals at hand. This also means I find myself refactoring a lot more than I otherwise would.
  9. Andrea Raimondi

    pre-generic dictionary class

    Yo! Use an interface and then create two different implementing classes, one for DXE+ with a TDictionary and another one using some minimal custom list. Then you compile it accordingly.
  10. Try setting "Capacity" to a proper value. What I usually do is to load things in a TList<T> (or other such, for instance TObjectList<T>) then pass it over to an array with .ToArray . By setting Capacity, you should be able to improve the memory size. I know because I used this very technique in the high-speed parsing of thousands of lines per text file in a situation where you may have hundreds or thousands of them per day (the format was weird and I can't really delve into the details, NDA). But it absolutely works. If the design allows it, you could even recycle the TList<T> with a clear so that you don't have to allocate many of them.
  11. Use nested, private classes and expose the whole thing via proper methods.
  12. Andrea Raimondi

    ListView Multiple Columns overlapping text

    You need to detect the real DPI and then expand the widths etc. Look into MultiMon and ShellScaling units.
  13. Andrea Raimondi

    TDataset with non-contiguos fetch-on-demand

    Hi! My guess is that the problem here is that you are trying to force the dataset to do something it wasn't designed for. What you could do is to put a restriction that your users should *also* be using the TMS stuff for record streaming, then you could add some methods such that the server does this and transmits the data to your dataset. Alternatively, you could create a separate query requesting MAX(ID) and using the exact same where and order by and then another one doing a select where the ID is the MAX(ID) you got and finally add this to your current dataset's data. Either way you end up with a mess to maintain though :)
  14. Andrea Raimondi

    RTTI usage and edge cases :) Can't use GetType on T

    Yeah, makes sense what you're saying, I'll have a look at this, First thing though I want to make it work 🙂
  15. Andrea Raimondi


    The download URL is a network disk. Seriously, that's not how you're supposed to do it. Especially not a Baidu disk, but even the others would be problematic. I mentioned GDrive and wasn't pleased with that either. Contact info: none of which leads to the domain. Now, why is that important? Quite simply, because - as non Chinese - we have no way to tell which of those methods will be "private" or at least as private as you can be in China. Someone may need help for a commercial application and there has to be a reasonable expectation of privacy, which just isn't there when the Government can access all and any communications easily. The 163.com one is nearly certainly hosted on Chinese servers, which is troubling privacy-wise, especially for those of us in Europe for the reasons mentioned above. I will concede that it's been around for pretty much as long as the internet in China because the numbers in URLs in China have special marketing meaning (for example 888.com was a thing). As for the fact you're laughing at the suggestion, as I said, we have a supposedly "leader of the free world" who is embroiled in a Russia-defined scandal. At this point, I am just not ready to discount anything. I can't even download the thing because I don't have a VM to put it on for analysis. If it were on GitHub, for example, I could safely browse the source code and have a poke around, but as it is, I can't.