Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

shDelphiUtils

Collection of Delphi utilities

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

shDelphiUtils

This is a collection of Delphi utilities that I have written over approximately 20 years of coding in Delphi. Be warned that the latest version of Delphi that I used to do serious development was Delphi 2007. So most of the code you'll find here is of that era. I upgraded some classes with generics using Delphi XE, but that's about it.

The unit structure aligns with my C# utilities solution. The coding style is the one Borland recommended for Delphi (way back when) with some influences from my C# coding.

Unlike my C# utilities, which are very representative of how I write production code, this repo is more experimental with very little tests and even fewer guarantuees that the code does what it says it does.

Collections

  • TConcurrentQueue: Experimental queue for use with multiple reader- and writer-threads without locking. Uses Interlocked operations for synchronization.
  • TGrowingStringMap: A never-shrinking key value list parsed efficiently from a text-representation of sorted key value pairs
  • TMostRecentUpdateQueue: Experimental Delphi implementation of the Most Recent Update Pattern
  • TSet: Basic set implementation based on TDictionary.
  • TSlimStringMap: A string map that is optimzed for minimal memory footprint at the expense of more frequent memory reallocations
  • TStringKeyValueScanner: Experimental parser for a set of known keys in the text representation of key value pairs
  • TTrie: Experimental Trie implementation with support for a reduced set of possible key elements to minimize space requirements.
  • TTrieDictionary: Experimental IDictionary implementation that combines an array for single character keys with a TTrie for short keys and finally a TDictionary for long keys

Common

  • TRecordBlockMemoryManager: Experimental memory manager that allocates each record from a large block of memory starting over with a new block when the initial block runs out

Media

  • TVolumeMonitor: Monitors the current volume against a given target volume and reports and/or adjusts the current volume to match the target.