GpDelphiUnits is a collection of Delphi units by Primož Gabrijelčič. These Delphi Units might help you to do some work quickly and efficiently. This is an open-source project and you can check out the full source code on over GitHub.

What you can get from these units? Here are some of the available units with aims:

DSiWin32

  • Collection of Win32/Win64 wrappers and helper functions.

GpCommandLineParser

  • Attribute-based command line parser.

GpForm

  • A simple form with some enhancements.

GpHttp

  • Asynchronous HTTP GET/POST with ICS and OmniThreadLibrary.

GpHugeF

  • Interface to 64-bit file functions with some added functionality.

GpLists

  • Various TList descendants, TList-compatible, and TList-similar classes.

GpLockFreeQueue

  • The sample implementation of a dynamically allocated, O(1) enqueue and dequeue, threadsafe, micro locking queue.

GpManagedClass

  • Smarter base class. Handles error codes, has a precondition and postcondition checker.

GpStructuredStorage

  • Structured storage (compound file; file system inside a file) implementation.

GpStuff

  • Various stuff with no other place to go.

GpSync

  • Enhanced synchronization primitives.

GpSysHook

  • The main unit for the GpSysHookDLL. Implements system-wide keyboard, mouse, shell, and CBT hooks. Supports multiple listeners, Delphi Units, automatic unhooking on process detach, and only installs the hooks that are needed. Supports notification listeners and filter listeners (should be used with care because SendMessage used for filtering can effectively block the whole system if the listener is not processing messages). Each listener can only listen to one hook because the hook code is sent as a message ID. All internal IDs are generated from the module name so you only have to rename the DLL to make it peacefully coexist with another GpSysHookDLL DLL.

GpTextFile

  • Interface to 8/16-bit text files and streams. Uses the GpHugeF unit for file access.

GpTextStream

  • Stream wrapper class that automatically converts another stream (containing text data) into a Unicode stream. The underlying stream can contain 8-bit text (in any codepage) or 16-bit text (in 16-bit or UTF8 encoding).

GpTimezone

  • Time zone conversion.

GpVCL

  • VCL helper library.

GpVersion

  • Version info accessors and modifiers, version storage, and formatting.

SafeMem

  • GetMem/FreeMem wrapper that checks for block overruns.

SpinLock

  • A scalable atomic lock

Head over and check out the full project source code and documentation here!