Saturday, December 25, 2010

Gp* Holiday Update

As always, all units are available on the Google Code.

DSiWin32 1.60

  • When compiled with D2007 or newer, unit FileCtrl is not included.
  • Call UniqueString before calling CreateProcessW.
  • [Tommi Prami] Added types missing in Delphi 7.
  • Added function DSiDisableStandby that will try to disable standby and hibernate on Windows XP SP 2 and newer.
  • Define TStartupInfoW in Delphi 7 and earlier.
  • DSiAddApplicationToFirewallExceptionList[Advanced|XP] got a new parameter
    TDSiFwResolveConflict (default rcDuplicate) where the caller can specify
    behaviour if the rule with the same name already exists.
    [rcDuplicate = add new rule with the same name, rcOverwrite = remove all rules
    with the same name and then add the new rule, rcSkip = leave existing rules
    intact and don't add the new rule]
  • Implemented DSiFindApplicationInFirewallExceptionList[Advanced|XP].
  • Bug fix in DSiAddApplicationToFirewallExceptionListAdvanced: setting rule.ServiceName to '' caused fwPolicy2.Rules.Add(rule) to raise exception.

GpForm 1.06a

Contains TForm descendant that implements simple logging to TListBox and some other useful extensions. First public release.

GpHttp 1.01

Simple synchronous HTTP GET and POST using ICS and OmniThreadLibrary. First public release.

GpHugeF 6.03

  • 32-bit version of TGpHugeFileStream.Seek returns EGpHugeFileStream exception with help context hcHFInvalidSeekMode if seek offset doesn't fit in 32 bits.

GpLists 1.48a

  • Added method RemoveObject and enumerator WalkKV to the TStrings helper.
  • Fixed TGp[Integer|Int64]List sorting (broken since 1.44 release).
  • [Jens] Capacity was not set to the ideal value in TGp[Integer|Int64]List.Append.
  • [Istvan] Reintroduced Insert methods for Counted Integer and Int64 lists that accept a count parameter.
  • Added overloaded version of EnsureObject.

GpLockFreeQueue 1.01c

Dynamically allocated, O(1) enqueue and dequeue, threadsafe, microlocking queue. Code taken from the OmniThreadLibrary project. First public release.

GpRandomGen 1.01

64-bit random generator with very long period.

C language version was written by Jim Butler, and was based on a
FORTRAN program posted by David LaSalle of Florida State University.

Adapted for Delphi by Anton Zhuchkov in February, 2002.

GpSharedMemory 4.12a

  • Units ExtCtrls and Forms are referenced only on pre-2007 Delphis (for compatibility).

GpStreams 1.33

  • ReadTag functions always uses strings with explicit "wideness".
  • Added method WritelnAnsi.
  • Implemented stream wrapper CreateJoinedStream.
  • KeepStreamPosition implements Restore function.

GpStringHash 1.09

String hash, table and dictionary. Supports Ansi and Unicode strings. First public release.

GpStuff 1.25

  • Asgn overload taking Ansi/Wide strings.
  • Implemented function DebugBreak.
  • Implemented function DisableHandler.
    with DisableHandler(@@cbDisableInterface.OnClick) do begin
      cbDisableInterface.Checked := newValue;
  • Added IFF overload with AnsiString parameters (Unicode Delphi only).

GpTextFile 4.03

  • Unicode files recognize /000A/000D/, /000D/, and /000A/ line delimiters.
  • Unicode files respect ldCR, ldLF, ldCRLF, and ldLFCR AcceptedDelimiter values.
  • GpTextStream 1.09

    • Reversed Unicode streams were improperly read from.

    GpVersion 2.07

    • Added DPROJ version reader/writer.

    Happy Holidays!


    1. Anonymous22:43 is dead :(

    2. Anonymous15:58

      how about a demo showing the use of all GP units? Thanks for this awesome work.

    3. @Anonymous: No way. I don't have that much time at my hand ...