Jump to content

Wagner Landgraf

  • Content Count

  • Joined

  • Last visited

Community Reputation

7 Neutral

1 Follower

Recent Profile Visitors

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

  1. Wagner Landgraf

    Your RAD Studio 10.4 Sydney issues

    There you go: https://en.delphipraxis.net/topic/2887-you-rad-studio-104-sydney-appreciated-features-and-bug-fixes/
  2. Share here what you liked the most about 10.4 Sydney, be it new features or bug fixes you were waiting for. For issues and complains, use this topic: https://en.delphipraxis.net/topic/2885-your-rad-studio-104-sydney-issues/
  3. Wagner Landgraf

    Your RAD Studio 10.4 Sydney issues

    Will there also be a topic for 10.4 Sydney appreciated new features and bugs fixed?
  4. Wagner Landgraf

    RTTI info for TBytes using runtime packages

    Indeed. Thanks all for your help!
  5. Wagner Landgraf

    RTTI info for TBytes using runtime packages

    Yes, I'm saying that I had it working considering both type info were equal. Same situation as this. The code in point here is JSON serialization. User pass one generic TValue (or an object with lots of properties) and I check the type of the TValue (or property) and serialize it accordingly. So I check if a type is TBytes and serialize it as base64-encoded. As far as I know, this works find with an app using runtime packages and TBytes, just in this application it doesn't. I guess. So as I said, instead of checking if the value being serialized has the same type info as TBytes, I would have to check if the type name is "TArray<System.byte>" or maybe check if it's an array of type byte. It's a valid solution, although still makes me uncomfortable that such issues might happen with other types.
  6. Wagner Landgraf

    RTTI info for TBytes using runtime packages

    Thanks @Stefan Glienke. That makes sense, even though I'm (almost) sure I had this working in other applications built with runtime (i.e., having TBytes being recognized as the same type from two different packages). The difference here is that this is an application from a customer and is a huge one - it's an ERP composed of hundreds of packages. If that's the case, I suppose there is no workaround using Delphi builtin types, and I would have to create my own type in my library. Or check for the type name instead of type info (which would be slower). In summary, a kludge...
  7. Wagner Landgraf

    RTTI info for TBytes using runtime packages

    @David Heffernan, thanks, I'm aware of that. The key here is that I don't know what else I'm supposed to do tomake sure that both modules are linking to rtl, as I checked everything I know of (listed above). @Remy Lebeau, I don't see any option "Enable with runtime packages" for packages. I believe it's implicit? I have added "rtl" to the package requires list, and also to the packages needed by the application. I believe this is enough, but obviously something else is missing.
  8. Wagner Landgraf

    RTTI info for TBytes using runtime packages

    Thanks Remy. How to link dynamically? Isn't it exactly what "Build with runtime packages" for? I suppose if "rtl" package is required by both Package1 and Pacakge2, and if rtl240.bpl is not present, an error would be raised when the application tries to load the package.
  9. Hi all, I'm having a hard type with RTTI info using runtime packages. It looks only related to TBytes type, but I'm not sure. In summary, I do a test like this: if TypeInfo1 = TypeInfo2 then Both TypeInfo1 and TypeInfo2 are PTypeInfo values. TypeInfo2 is retrieved from a TBytes variable declared in Unit1 which is included in Package1. TypeInfo2 is retrieved from a TBytes variable declared in Unit2 which is included in Package2. The test above returns false. I know this situation is typical and requires some checks to be sure it works. But I've been through all that I know, which are: 1. Make sure your application (exe) is compiled with "runtime packages" option checked. 2. Make sure Package1 and Package2 are included in the list of runtime packages of the application. 3. Make sure the type being tested is declared in a common package which is required (shared) by both Package1 and Package2. Since the type here is TBytes, there is no need for a shared/common package, and both Package1 and Package2 simply require rtl, which I believe is enough. Am I missing something obvious here? Does anyone have any hint which I might be looking for? This is Delphi 10.1. Berlin. Thanks in advance.
  10. Wagner Landgraf

    TDataset with non-contiguos fetch-on-demand

    Retrieving data is not my issue. Data will come via Aurelius so it already has a paging mechanism where I can retrieve any page of data. My issue is how to make the dataset work with this (the internal buffer mechanism, filtering, etc.).
  11. Wagner Landgraf

    TDataset with non-contiguos fetch-on-demand

    Thank you. It looks indeed complex, and unfortunately mixed all the way through the whole FireDac source code. But part of complexity is the data retrieval mechanism, which I already have.
  12. Wagner Landgraf

    TDataset with non-contiguos fetch-on-demand

    I wonder if it's possible to have a TDataset that performs fetch-on-demand, but fetching non-contiguous records? For example, when view data in a TDBGrid, user could use TDataset.Last and only the last records would be fetched. In this way the first and last records are fetched, but not the intermediate ones. I'm not talking about the mechanism for fetching the data itself, but the dataset structure. 1. Does it support such mechanism? 2. Have anyone tried it, or implemented it? 3. Do you have any idea on how complex it is? Current my dataset does paged fetching, but when user uses TDataset.Last, it fetches moves the dataset forward fetching all records just to get to the last one.
  13. Wagner Landgraf

    Generic class

    Did you close this report now it's all clarified?
  14. Wagner Landgraf

    With haters unite

    It is, it's called inline variables... 😉
  15. Wagner Landgraf

    Blogged : Introducing DPM - a Package Manager for Delphi

    So, if the package cache can be global, then you can share the library with the 100 projects, right?