The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,830 other subscribers

Archive for the ‘Delphi’ Category

Updating Actions (Don’t Do This) – Dave’s Development Blog

Posted by jpluimers on 2020/05/13

I remember fixing a high CPU toggling the Enabled property in an OnUpdate even handler on a TCustomAction descendant quite some time ago, but wasn’t completely sure of the exact cause.

My fix was to only set it once every clock tick (about every 20 milliseconds).

The best fix would have been not to toggle at all: just calculate the right result, then only set the Enabled property once: [WayBack] Updating Actions (Don’t Do This) – Dave’s Development Blog

–jeroen

Posted in Delphi, Development, Software Development | 2 Comments »

“cushion treemap” delphi – Google Search

Posted by jpluimers on 2020/05/06

For my link archive below a few links from “cushion treemap” delphi – Google Search.

The reason: I like Sequoiaview a lot, but it has a few issues (of which I wrote in SequoiaView Homepage) and lacks a few things too.

WinDirStat is nice, but could be a lot cleaner. Both lack one feature I’d love to have: light-weight automatic updating on NTFS volumes.

Everything does the latter, but does not do graphical output as it is focused on being a blindingly fast indexing and searching tool (I like it a lot so there is even a category on my blog for it: Everything by VoidTools).

It would be cool if both could be hooked together, which would require a cushion treemap in Delphi and an API to access the Everything database.

So here are links that might help with the first:

–jeroen

 

 

Posted in Delphi, Development, Everything by VoidTools, Power User, Software Development, Windows | Leave a Comment »

Rewritten version (free for non-commercial; small price for commercial use) GitHub – pleriche/FastMM5: FastMM is a fast replacement memory manager for Embarcadero Delphi applications that scales well across multiple threads and CPU cores, is not prone to memory fragmentation, and supports shared memory without the use of external .DLL files.

Posted by jpluimers on 2020/05/05

It has been mentioned a few times already, but for my link archive: [WayBack] GitHub – pleriche/FastMM5: FastMM is a fast replacement memory manager for Embarcadero Delphi applications that scales well across multiple threads and CPU cores, is not prone to memory fragmentation, and supports shared memory without the use of external .DLL files.

From the [WayBack] README.md:

Version 5 is a complete rewrite of FastMM. It is designed from the ground up to simultaneously keep the strengths and address the shortcomings of version 4.992:

  • Multithreaded scaling across multiple CPU cores is massively improved, without memory usage blowout. It can be configured to scale close to linearly for any number of CPU cores.
  • In the Fastcode memory manager benchmark tool FastMM 5 scores 15% higher than FastMM 4.992 on the single threaded benchmarks, and 30% higher on the multithreaded benchmarks. (I7-8700K CPU, EnableMMX and AssumeMultithreaded options enabled.)
  • It is fully configurable runtime. There is no need to change conditional defines and recompile to change options. (It is however backward compatible with many of the version 4 conditional defines.)
  • Debug mode uses the same debug support library as version 4 (FastMM_FullDebugMode.dll) by default, but custom stack trace routines are also supported. Call FastMM_EnterDebugMode to switch to debug mode (“FullDebugMode”) and call FastMM_ExitDebugMode to return to performance mode. Calls may be nested, in which case debug mode will be exited after the last FastMM_ExitDebugMode call.
  • Supports 8, 16, 32 or 64 byte alignment of all blocks. Call FastMM_EnterMinimumAddressAlignment to request a minimum block alignment, and FastMM_ExitMinimumAddressAlignment to rescind a prior request. Calls may be nested, in which case the coarsest alignment request will be in effect.
  • All event notifications (errors, memory leak messages, etc.) may be routed to the debugger (via OutputDebugString), a log file, the screen or any combination of the three. Messages are built using templates containing mail-merge tokens. Templates may be changed runtime to facilitate different layouts and/or translation into any language. Templates fully support Unicode, and the log file may be configured to be written in UTF-8 or UTF-16 format, with or without a BOM.
  • It may be configured runtime to favour speed, memory usage efficiency or a blend of the two via the FastMM_SetOptimizationStrategy call.

Read the rest of this entry »

Posted in Delphi, Development, FastMM, Software Development | 6 Comments »

GitHub – pyscripter/pyscripter: Pyscripter is a feature-rich but lightweight Python IDE

Posted by jpluimers on 2020/04/28

Just in case I ever need to develop Python scripts on Windows (nowadays it’s mostly on Linux/BSD based systems):[WayBack] GitHub – pyscripter/pyscripter: Pyscripter is a feature-rich but lightweight Python IDE.

If you like that, you can (also) help with this project: [WayBack] PyScripter localization Translate PyScripter into your own language.

Via: [WayBack] The PyScripter IDE, which is written in Delphi is looking for translators. We have set up a translation project on transifex.com and would be happy if s… – Lübbe Onken – Google+

–jeroen

Posted in Delphi, Development, Python, Scripting, Software Development | Leave a Comment »

Bipartite matching algorithm in Delphi… John Kouraklis – Google+

Posted by jpluimers on 2020/04/23

In the thread is an actual implementation: [WayBack] I am looking for an implementation of Bipartite matching algorithm in Delphi or Pascal. Does anyone have a suggestion? Thanks – John Kouraklis – Google+

As I probably need it one day (:

–jeroen

Posted in Algorithms, Delphi, Development, Software Development | Leave a Comment »

Is there no shortcut in the IDE for Quick Edit?

Posted by jpluimers on 2020/04/21

I hope this feature gets added: [WayBack] Is there no shortcut in the IDE for Quick Edit? – Reinier Sterkenburg – Google+.

The thread evolved into a few posts about failing keyboard handling (including Shift-F10) which has been failing for a long time and known to the development team for almost that time.

Hopefully things like that get fixed one day as well.

–jeroen

Posted in Delphi, Development, Software Development | Leave a Comment »

GitHub – JensBorrisholt/GoogleSpeak: This repository demonstrates how to Use Google for implementing Text to Speech. You’ll find both a Delphi version and a C# version

Posted by jpluimers on 2020/04/15

For my link archive, as I will likely need this one day: [WayBackGitHub – JensBorrisholt/GoogleSpeak: This repository demonstrates how to Use Google for implementing Text to Speech. You’ll find both a Delphi version and a C# version

–jeroen

Posted in .NET, C#, Delphi, Development, Software Development | Leave a Comment »

Bug Finder, A Real Win32 Extensible Passive Debugger – CodeProject

Posted by jpluimers on 2020/04/09

On my research list is [WayBack] GitHub – DareDevil73/bug-finder: Windows passive debugger.  with an article at [WayBack] Bug Finder, A Real Win32 Extensible Passive Debugger – CodeProject:

The Bug Finder is a real Win32 debugger, entirely written in Borland Delphi, which analyzes your application execution flow, so you can:

  1. Catch exceptions on the main executable, external DLLs, primary and working threads.
  2. Produce a detailed stack trace about each exception.
  3. Place a symbolic breakpoint to get, in place of a program debug break, a full stack trace log message (dynamic tracing).
  4. Produce detailed and rotative log files for a batch application behaviour inspection.
  5. Capture output of OutputDebugString API to log file (to provide extra debugging information by yourself directly into your code).
  6. Trace Process, Threads and DLLs activities.

I found documentation at [WayBackDareDevil73 … docs, but the binary dependencies and installer are on SourceForge (where the project was originally located) and CodeProject which cannot be archived so I will look into that when it pops to the top of my research list.

–jeroen

via: [WayBack] Bug Finder by Antonio Petricca (in 2013?) Have any of you tried it? – Lars Fosdal – Google+

Posted in Delphi, Development, Software Development, Windows Development | Leave a Comment »

Delphi: OldCreateOrder in inherited TDataModule might suddenly become True

Posted by jpluimers on 2020/04/08

Interesting observation that might have been in Delphi for more than a decade: [WayBack] Found something strange in Delphi again which I’ve been trying to fix for days until I discovered it’s probably a Delphi issue… – Stefaan Lesage – Google+.

I think the summary is that if you have inherited TDataModule instances, then the descendant will always have OldCreateOrder set to True.

It is reported as RAD StudioRSP-20016 TDatamodule.OldCreateOrder always resets to true on descendants, but it is present in at least Delphi 7, so likely is in the old QC database:

Uwe Raabe:
I can track this error down to Delphi 7 (really)! Cannot check Delphi 6, but Delphi 5 just doesn’t have that property.
The reason lies in TDataModule.ReadState where

FOldCreateOrder := not ModuleIsCPP;
is set.

These might be related:

–jeroen

Posted in Delphi, Development, Software Development | Leave a Comment »

Debugging Delphi applications inside a Windows Docker container – yeiei.net

Posted by jpluimers on 2020/04/07

A docker container that pulls the PA server for Windows and steps how to attach to it and a video showing how to do this: [WayBackDebugging Delphi applications inside a Windows Docker container – yeiei.net

Cool if you do Delphi server side stuff.

Via: [WayBack] Hi delphi friends! If you are planning to use Windows Docker Containers and Delphi, you’ll need to read this: https://yeiei.net/en/debugging-delphi-appl… – Juan Antonio Ruzafa – Google+

–jeroen

Read the rest of this entry »

Posted in Delphi, Development, Software Development | Leave a Comment »