Jump to content

Wagner Landgraf

  • Content Count

  • Joined

  • Last visited

Community Reputation

13 Good

1 Follower

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Wagner Landgraf

    simple cloud storage options

    You can check myCloudData (https://www.myclouddata.net) from TMS Software.
  2. In the case of TMS Aurelius Nullable type, specifically, there are helper methods for you to use that do the job for you. It's TMappingExplorer.GetMemberValue and SetMemberValue. Here is some info: https://support.tmssoftware.com/t/how-to-get-a-property-by-its-name/7777/2 But in general, you do what @Attila Kovacs mentioned: get the whole record, modify its fields via RTTI, and then set the record back to the field/property. That's what Aurelius does.
  3. Wagner Landgraf

    How create a website whit Delhpi

    Excellent! I'm always pleased with people that see the positive side of things.
  4. Wagner Landgraf

    How create a website whit Delhpi

    Frontend: TMS Web Core (https://tmssoftware.com/web) Backend: TMS XData (https://tmssoftware.com/biz)
  5. Wagner Landgraf

    auto-generated REST APIs?

    I will not get into an architectural discussion or in a feature discussion, it's out of the scope of the topic. It's a tool that anyone can use if they want. It's not SQL SELECT, there is no injection, it's more secure. Yes, you can do complex authorization mechanisms. Finally, that is not "XData", but one of XData tools. If user wants, he can simply choose not to use it, and do a 15-tiered application without any client-side logic. I'm just answering the OP question.
  6. Wagner Landgraf

    Delphi and Parallels for Mac

    No luck here. Big Sur, Parallels 16.1.1, using external trackpad (or MacBook trackpad, doesn't matter), changed mouse and keyboard settings to auto-detect, or gaming, or no gaming, everything is always the same.
  7. Wagner Landgraf

    Delphi and Parallels for Mac

    Hi, is there anyone here using Delphi with Mac using Parallels virtual machines? I've recently migrated from VMWare to Parallels - and very happy for it, it's noticeable faster. However, I'm having a small but annoying issue that didn't happen in VMWare: whenever I try to scroll the source code using the mouse scroll (trackpad, in this case), it goes too fast. It's interesting to note that when scrolling up, it works fine. When scrolling down, it goes too fast. That only happens in this virtual machine, only with Parallels, and only with Delphi - no other Windows applications behave like that. I have also know another person who uses it like that, and he has the exactly same problem. From some Parallels forum posts, it looks like it happens to other as well. Thus, I believe this happens to everyone using Delphi with Parallels, and I believe given the number of Delphi users here, some DelphiPraxis forum members might also be in the same situation. So I wonder, does it happen to you as well? If yes, have you found a workaround, or have you just accepted it as a fact of life? Some references: https://forum.parallels.com/threads/smooth-scrolling.346361/ https://forum.parallels.com/threads/trackpad-scrolling-is-too-fast-and-frequently-uncontrollable.346338/page-2 https://stackoverflow.com/questions/59163058/how-to-make-delphis-ide-scroll-correctly
  8. Wagner Landgraf

    auto-generated REST APIs?

    TMS XData does that. These three videos show it in details: https://www.youtube.com/watch?v=AZs9e2DNXdI https://www.youtube.com/watch?v=e31Co9Fv3YY https://www.youtube.com/watch?v=QvgS8pjpfkk This has nothing to do with executing arbitrary SQL statements. It's regular REST endpoints. Regarding being 1:1 with underlying db system, in my opinion it depends. As someone mentioned here, you might need an "inner" use in which this is not a problem. Or, you might use it for simple entities like a list of countries or something like that. So for example use it for simple or non-critical entities, and then implement DTOs and specific business logic for more complex or critical business operations. Like anything, it's just a nice tool which is available. Use if it's helpful for you.
  9. Wagner Landgraf

    DPM Package Manager - Progress update

    Hi Vincent, That's excellent. I just could not find enough time to keep contributing as I'd wish, but I'm still interested in your project. Design-time packages is a must for me though, since almost all my libraries install design-time tools in the IDE. Looking forward to how DPM will solve it.
  10. Wagner Landgraf

    Records, Generics and RTTI meets FireDAC

    Until you start using it. You are actually adding one right now.
  11. Wagner Landgraf

    TestInsight released

    Great, now tests are uniquely identified! Thank you, I guess I'm on the right path. Congrats for the great tool.
  12. Wagner Landgraf

    TestInsight released

    Ok. Reading the code I think TI is just not prepared for it. In many places you consider the test name to be ClassName + TestName, as in: function GetFullQualifiedName(const test: ITest): string; begin Result := (test as TObject).ClassName + '.' + test.Name; end; Also, TTestInsightListener.StartSuite and EndSuite are not implemented, and I believe that's what would allow a tree-like structure in the IDE plugin. I also don't know how the plugin handles the information sent to it, but from what is available in TTestInsightResult and no StartSuite/EndSuite information I believe it's not trivial to show the results reflecting the original tree structure. Thanks for your help!
  13. Wagner Landgraf

    TestInsight released

    I tried it again, I must be doing something wrong. This is what I get when I run it for the first time. Some warnings: And then remaining tests passed. The tests that are not replicated and grouped by database: And the tests that are supposed to be replicated and grouped by database: If I click "group by type" it doesn't help much: Finally, I must say that all tests were run in the first place. Note that what I do is to run the application with Ctrl+Shift+F9.
  14. Wagner Landgraf

    TestInsight released

    The tests are organized more or less this way (never mind some unfriendly names): As you can see, there are several setups (NativeSQLite, FireDacMSSQL, etc.). For each of then, there is a test suite named "TTestBasicCriteria" for example, with several test methods. This is all setup dynamically by a code like this, which gathers all registered "Aurelius tests" and then create the proper DUnit tests based on it: // Wrap all registered tests into a single test setup for initial set up and final tear down } for Setup in AureliusDBSetups do begin testconfig := TTestConfig.Create(Setup); DBTest := CreateSuiteFromConfig(testConfig, Setup.Name); RegisterTest(DBTest); if Setup.RemoteDB then begin testConfig := TRemoteDBTestConfig.Create(Setup); DBTest := CreateSuiteFromConfig(testConfig, Setup.Name + ' - Remote'); RegisterTest(DBTest); end; if Setup.GenericDB then begin testConfig := TGenericDBTestConfig.Create(Setup); DBTest := CreateSuiteFromConfig(testConfig, Setup.Name + ' - Generic'); RegisterTest(DBTest); end; end; You can also see some of the test cases are not replicated among all databases, because it doesn't make sense - like TTestMemoryDataset, for example.
  15. Wagner Landgraf

    TestInsight released

    Of course no one is forcing me! 🙂 It's just it's a nice tool with several benefits that I'd love to use. I will see what I will do. My case is different, I also use test inheritance when applicable but as I said, in my case I have hundreds of tests, spread over different TTestCase objects because it makes sense - logical grouping, different setup and teardown mechanisms, etc. Then all of those tests are grouped by decorators to work with different "Setups" - different databases, for example. So they are actually the same test, even double clicking won't solve because they will all point to the same source code.