Leaderboard
Popular Content
Showing content with the highest reputation on 02/09/21 in all areas
-
Object Pascal Handbook - Delphi 10.4 Sydney Edition - Marco Cantù (2020) - 571pg
Lars Fosdal replied to a topic in Tips / Blogs / Tutorials / Videos
@Marco Cantu I wish I as a subscriber could download it without having to reenter information already in your systems. -
Inherited on Properties and co.
Uwe Raabe replied to Attila Kovacs's topic in RTL and Delphi Object Pascal
FData is private, but the helper sets inherited Data, which is public. -
How to set version number for all the projects in a project group
Fr0sT.Brutal replied to Soji's topic in Delphi IDE and APIs
+1 for manual handling of RC resource. RAD's embedded one sucks anyway.- 11 replies
-
- build version
- configuration manager
-
(and 3 more)
Tagged with:
-
How to set version number for all the projects in a project group
Uwe Raabe replied to Soji's topic in Delphi IDE and APIs
Actually it is: https://github.com/DelphiPraxis/DDevExtensions/releases/tag/v2.87- 11 replies
-
- build version
- configuration manager
-
(and 3 more)
Tagged with:
-
How to set version number for all the projects in a project group
Lajos Juhász replied to Soji's topic in Delphi IDE and APIs
You mean- 11 replies
-
- build version
- configuration manager
-
(and 3 more)
Tagged with:
-
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
-
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
-
Integer overflow in tStringList.SaveToFile
Jud replied to Jud's topic in RTL and Delphi Object Pascal
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. -
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 ?
-
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
-
Casting pointer to TBytes
Remy Lebeau replied to Jacek Laskowski's topic in RTL and Delphi Object Pascal
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. -
Casting pointer to TBytes
Lars Fosdal replied to Jacek Laskowski's topic in RTL and Delphi Object Pascal
Nothing beats pointers to arrays for InterOp - even today. -
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.
-
Inherited on Properties and co.
Alexander Elagin replied to Attila Kovacs's topic in RTL and Delphi Object Pascal
In fact, this was a pretty common trick when implementing ccustom lists before generics. -
How to set version number for all the projects in a project group
Rob Truby replied to Soji's topic in Delphi IDE and APIs
Thanks Uwe!- 11 replies
-
- build version
- configuration manager
-
(and 3 more)
Tagged with:
-
How to set version number for all the projects in a project group
Rob Truby replied to Soji's topic in Delphi IDE and APIs
Depending on your Delphi version you can use DDevExtensions. Unfortunately it's not available for 10.4.- 11 replies
-
- build version
- configuration manager
-
(and 3 more)
Tagged with:
-
Inherited on Properties and co.
Attila Kovacs replied to Attila Kovacs's topic in RTL and Delphi Object Pascal
Thx. The gas prices. 😉 -
Inherited on Properties and co.
Anders Melander replied to Attila Kovacs's topic in RTL and Delphi Object Pascal
Delphi 1 -
How to determine the subjective brightness of my screen?
Der schöne Günther replied to Der schöne Günther's topic in Algorithms, Data Structures and Class Design
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. -
I just voted.
-
I got bitten by an interface!
David Heffernan replied to Clément's topic in Algorithms, Data Structures and Class Design
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. -
Embarcadero Toaster - Notification Window Caption in Win10
Der schöne Günther replied to Shavkat PANDA's topic in VCL
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 -
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