Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 02/09/21 in all areas

  1. @Marco Cantu I wish I as a subscriber could download it without having to reenter information already in your systems.
  2. Uwe Raabe

    Inherited on Properties and co.

    FData is private, but the helper sets inherited Data, which is public.
  3. +1 for manual handling of RC resource. RAD's embedded one sucks anyway.
  4. Actually it is: https://github.com/DelphiPraxis/DDevExtensions/releases/tag/v2.87
  5. For all who want to try to get the DDevExtensions Delphi IDE plugin to work with Delphi 10.4 can now clone the DDevExtensions git repository. It contains the project files for Delphi 10.2 and 10.3. I'm not able to help with any Delphi 10.4 issues, so you are on your own. GitHub repository: https://github.com/ahausladen/DDevExtensions
  6. Hi all! We have kept busy in the dungeon during recent months, and are popping up for a moment to draw breath and give you the latest news. In the just released v4.50.25, the following new features have been implemented: - Multithreaded reindexing operations, spreads work across multiple CPU cores to finish faster (Note: feature requires Delphi 10.3 or newer; requires new nxPatchPPL unit to be added to any project containing a TnxServerEngine component (whether C/S server or Embedded) for correct functioning). Our standard nxServer binary comes with this enabled. - New Record Engine Compression Options: Zip (level 1..9), RLE, Lz4 (level 1..9), to help reduce table size (depending on contents) - Enterprise Manager: new Global Font option; application wide control of font and size - Enterprise Manager: CSV Import: ignore key violations option; remove "field=" prefixes option - Professional Edition: Secure Transport Components now supported in C++ Builder regards, The NexusDB Team
  7. Thank you. yes, as far as I can tell, the total number of bytes has to be less than 2^31. There are several places where they have not converted to 64-bit integers where they should. Files are bigger now and memories are bigger now.
  8. Rollo62

    XLS 2 XLSX

    No payed, no OLE, ... Puh its getting hard. I would have suggested to look into (payed) HtmlOffice components as well, but not sure if they can do that you want. Anyway, then maybe UNO + LibreOffice is the last free resort ?
  9. TurboMagic

    Bugs in DEC library

    Sorry, but I have to report a few bugs/regressions which have crept into DEC: These led for the following cipher algorithms failing their unit tests on x64: Blowfish RC6 Q128 In addition there was a bug which prevented compilation on x64 completely. Good news is: these are all fixed and available in development branch on GitHub (see above link). Have a nice evening TurboMagic
  10. Remy Lebeau

    Casting pointer to TBytes

    The only way to do that is to make the memory area MIMIC a real TBytes, by adjusting the size of the GetMem() allocation to include a fake TBytes header whose reference count is set to 1 or higher so the method doesn't try to free the allocated memory internally as it passes around and uses the TBytes. For example: type // these are defined only in the System unit's implementation, so // they need to be defined manually in your code... PDynArrayRec = ^TDynArrayRec; TDynArrayRec = packed record {$IFDEF CPUX64} _Padding: LongInt; // Make 16 byte align for payload.. {$ENDIF} RefCnt: LongInt; Length: NativeInt; end; var MemBlk: Pointer; MyByteArr: PByte; begin //GetMem(MyByteArr, DesiredSize); GetMem(MemBlk, SizeOf(TDynArrayRec) + DesiredSize); try PDynArrayRec(MemBlk).RefCnt := 1; PDynArrayRec(MemBlk).Length := DesiredSize; MyByteArr := PByte(MemBlk) + SizeOf(TDynArrayRec); // fill MyByteArr as needed ... Something(TBytes(MyByteArr)); // ... finally //FreeMem(MyByteArr); FreeMem(MemBlk); end; end; If that is not an option, and changing the method (or calling a different method) is also not possible, then your only remaining options are to either: - copy the GetMem() data to a temp TBytes, and then copy it back afterwards if needed. - change the GetMem() allocation to TBytes to begin with.
  11. Lars Fosdal

    Casting pointer to TBytes

    Nothing beats pointers to arrays for InterOp - even today.
  12. Anders Melander

    Delph ERP Help

    First of all you can't just edit the compiled files in an editor. Forget about that. The BPL and DCP files are generated by the compiler when you compile the source code. Since you're trying to do edit the compiled files I'm assuming you don't have the source for this application or can't recompile it for some reason - or have no clue about what you're doing (that's okay too 🙂). If the queries are built in code, and you can't recompile, then you're pretty much out of luck as you would have to patch in the modifications at the assembler level. However if the queries are implemented in TQuery components, or something like it, and stored in DFM resources, then you can use a resource editor to extract the DFM of the form/datamodule where the query resides, change the SQL and then replace the DFM in the resource.
  13. Alexander Elagin

    Inherited on Properties and co.

    In fact, this was a pretty common trick when implementing ccustom lists before generics.
  14. Depending on your Delphi version you can use DDevExtensions. Unfortunately it's not available for 10.4.
  15. Attila Kovacs

    Inherited on Properties and co.

    Thx. The gas prices. 😉
  16. Anders Melander

    Inherited on Properties and co.

    Delphi 1
  17. Yes, it probably would (except for my desk lamp, which is not a Hue lamp). But as I said, this is just a free time project for personal leisure. And the Hue Sync box probably has other limitations, which I will run into later. I'd like to have full flexibility here. I have no deadline. This is just for fun.
  18. Dalija Prasnikar

    Delphi and the new Apple M1 CPU

    I just voted.
  19. Leaving aside the issues that are commented on by other, instead of if Supports(fBaseFrameClass, ISupportTask) then (fBaseFrame as ISupportTask).CheckTask; surely you need var Task: ISupportTask; ... if Supports(fBaseFrame, ISupportTask, Task) then Task.CheckTask; Two changes: Ask the implementing object rather than the class whether or not the interface is supported. Use the three argument overload of Supports so that you can get the interface while you are querying for it.
  20. Der schöne Günther

    Embarcadero Toaster - Notification Window Caption in Win10

    I don't have a full solution for you. The "Embarcadero.DesktopToasts." plus some hash value at the end is hardcoded into System.Win.Notification.pas You need to take a look at the constructor above and probably class function TNotificationCenterWinRT.CreateShortcut(): Boolean; I would assume (not tested) that you can either Create your own subclass of TNotificationCenterWinRT that does not have this weird behaviour Modify System.Win.Notification.pas Also, you might want to post this at quality.embarcadero.com Altough the last time it was brought up (2016), it was closed as "Cannot reproduce" https://quality.embarcadero.com/browse/RSP-14776
  21. Clément

    Detailed logging (for debugging)

    Hi, Why can't you write your log in levels. For example: MyLog.Info('Entering method X'); Mylog.Debug(1, 'Connecting to database'); MyLog.Debug(2, 'Connected to database = '+FDatabase.ConnectionString ); And the constructor Mylog := TMyLog.Create( 0 ); // No Debug information Mylog := TMyLog.Create( 1 ); // Only Debug 1 Mylog := TMyLog.Create( 2 ); // Debug up to level 2. This way you can activate debug using a INI file. [Settings] Debuglevel = 0; // Or 1 or 2 HTH, Clément
×