FastMM, a Fast Memory Manager

FastMM is a lightning fast replacement memory manager for Borland Delphi Win32 applications that scales well in multi-threaded applications, is not prone to memory fragmentation, and supports shared memory without the use of external .DLL files.

FastMM3 got a a few minor speed optimizations and a bug affecting DLLs was fixed in both: A DLL would erroneously check for memory leaks on shutdown, even when it was sharing the main application's memory manager.

FastMM4 is done and is currently being fine-tuned and tested internally. In the Fastcode memory manager challenge benchmarks it is currently 6.5% faster than FastMM3 while using less memory. FastMM4 combines all the features of FastMM2 and FastMM3 (and some nice new ones) and will obsolete both older versions when it is released. FastMM4 is faster, uses less memory, it catches attempts to free most invalid pointers, now it's supporting Delphi 5 and 6, DLLs automatically free leaked memory when unloading, supports 3GB user address space under Windows 32-bit (with /3GB switch), supports 4GB user address space under Windows 64-bit, enriched with Enhanced MM sharing options between application and DLLs (Refer to the "Usage" section inside the source file for details on how to enable this).

FastMM version 4.08 introduces a small .dpr project that allows you to build a replacement borlndmm.dll that you may use to replace the memory manager that the Delphi IDE uses. Delphi 7 loads about 10% faster and is noticeably more responsive if this replacement DLL is copied over the DLL in the \Bin folder. Unfortunately there appears to be a bug in Delphi 2005 that prevents this replacement DLL from working under Delphi 2005 (QC#14007), so for Delphi 2005 and newer versions you'll need to patch Delphi 2005 to accomodate memory manager replacement.

FastMM 4.10 adds a new "FullDebugMode" option. What this does are: Add a header and footer to all blocks to catch buffer overruns; Stores a call stack trace on allocate and free to allow you to investigate the cause of an error - only return addresses are displayed at this stage - the display of procedure name and line number detail (when debug info is available) may be implemented at a later stage; Zeroes out all freed memory, so using freed blocks should lead to errors being raised closer to the cause of the problem; Reports attempts to call virtual methods of freed objects (provided the blocks have not already been reused).

In "FullDebugMode" freed blocks are never combined with adjacent free blocks and are never returned to the operating system (so once a block of a certain size has been allocated, that block will exist for the duration of the process). They may be reused however. Factor in the extra processing required to do the stack traces and the memory used to store them and you will rightfully conclude that "FullDebugMode" is slow, uses a lot of memory and tends to fragment badly. It is intended for debugging only!

Errors can now also be logged to a text file through the "LogErrorsToFile" option.

From 4.13 onwards a new DLL is included in the package: FastMM_DebugInfo.dll. This DLL allows FastMM to display unit/line number debug information for stack traces in "FullDebugMode". This requires that debug information be available for the application and libraries. FastMM_DebugInfo.dll uses the JCL library, so either a map file, a .jdbg file or embedded JCL debug data must be available.

Read updates of FastMM through FastMM News Feed (will open in new window), or download FastMM from SourceForge.

DelphiFeeds.com Feeds

TBASSPlayer v.1.92, a Multimedia VCL

TBASSPlayer is a Delphi component, which helps you make stream players easily with the power of BASS Audio Library (bass.dll, basswma.dll, bassmidi.dll, and basscd.dll).
TBASSPlayer supports most functions of BASS audio library. Please read BASS.txt and related document if you want to know more about BASS audio library. You can get them at http://www.un4seen.com.

TBASSPlayer can play the file formats supported by BASS audio library such as
  • stream files (WAV, MP1, MP2, MP3, Ogg Vorbis, AIFF, WMA format)
  • music files (MOD, MO3, IT, XM, S3M, MTM, MOD, UMX format)
  • MIDI files (MID, MIDI, RMI, KAR format)
  • CD Audio tracks.
  • URL stream (files from the internet and Shout/Icecast)
TBASSPlayer supports "BASS add-ons" - plugin modules designed for BASS audio library which enables the playback of additional file formats. TBASSPlayer can play other file formats, which are none-BASS native, not supported by BASS add-ons, using Winamp input plug-ins. You can load upto 8 BASS add-ons and upto 8 Winamp input plug-ins simultaneously for various file format.

TBASSPlayer also supports followings:
  • Winamp visualization plug-ins (supports the latest plug-in such as Milkdrop 2.0e)
  • Winamp DSP plug-ins
  • Tag editor for WMA, MP3 and Ogg Vorbis file
  • 10 Band Equalizer
  • Sound effect (Flanger, Echo, Reverb)
So, you can enjoy the power of numerous Winamp plug-ins with that of BASS audio library.

Product License: Freeware (Source & EXE Demo are included)
File Status: Fully functional
Compatible with: D4 D5 D6 D7

Download TBASSPlayer192.zip from Torry.Net

Fastest Min/Max of Int Array Routine

Use this function to get the Max and Min value from series of data within integer array...
procedure MinMaxArray(const aArray:array of integer; out aMax,aMin:integer);
var
i,mi,ma:integer;
begin
ma := aArray[Low(aArray)];
mi := ma;
for i := Low(aArray) + 1 to High(aArray) do
begin
if (aArray[i] < mi) then mi:=aArray[i];
if (aArray[i] > ma) then ma:=aArray[i];
end;
aMax := ma;
aMin := mi;
end;

If you need more speed, a BASM version could be used as follow...

Useful Delphi Related Links

  • CodeGear
  • the home
  • CodeGear Community
  • CodeGear's developer portal
  • DelphiFeeds
  • all Delphi related blogs at one place
  • About Delphi
  • Your guide to everything you want to know about Delphi related topics
  • Atozed software
  • Home of Delphi's RAD web development tool IntraWeb
  • Torry Delphi pages
  • Award-winning and huge component collection and almost daily updates
  • Delphi Basics
  • learn all about Delphi
  • Delphi Pages
  • Interactive Delphi page with components, news, tips, info
  • Delphi Central
  • Articles and tutorials on Borland Delphi
  • Delphi StartKabel
  • Dutch Delphi portal site
  • DrBob
  • Latest Borland news, Delphi news, C++Builder news
  • Delphi Source
  • More interactive Delphi pages
  • Delphi3000
  • connecting people's Delphi knowledge
  • Hisoft2000
  • Script generator for Innosetup
  • BrotherSoft Downloads
  • Shareware and Freeware downloads and tested, rated and reviewed software submitted by software authors.
  • Euro Download
  • Shareware and Freeware downloads
  • SoftwareShield
  • Software Licensing and Copy Protection SDK for Windows application development

    Search with Google

    Delphi 6 Help Files Update

    Updates all of the major Help system elements, including:
    • Core IDE Help/Tutorials (delphi6.hlp)
    • VCL Reference (del6vcl.hlp)
    • Object Pascal Language Reference (del6op.hlp)
    • Web Objects Reference (del6ilib.hlp)
    • InterBase Express Reference (ibx.hlp)
    • CLX Reference (dlx1clx.hlp)
    • Developer's Guide (del6prog.hlp, del6dbd.hlp, del6dap.hlp, del6cw.hlp, del6com.hlp)
    • What's New Help (del6new.hlp)
    Download Help Updates for: Enterprise Edition, Professional Edition, Personal Edition

    History of Delphi

    Turbo Pascal, later Borland Pascal, was a low-cost compiler. It went through a number of revisions over the years, and was used mainly to produce programs to run on text displays. When the use of graphical user interfaces became viable with Microsoft Windows 3, Delphi, using augmented Borland Pascal as its underlying language, was introduced. Delphi was one of the first of what came to be known as Rapid Application Development (RAD) tools when released in 1995 for the 16-bit Windows 3.1.

    Delphi 2, released a year later, supported 32-bit Windows environments, and a variant using C++ as the underlying language, C++ Builder, followed a few years later.

    The chief architect behind Delphi was Anders Hejlsberg, who had developed Turbo Pascal. He moved to Microsoft in 1996.

    In 2001 a Linux version named Kylix was released. It was criticised as being of low quality and did not sell well, and was abandoned after version 3.

    Delphi 6Attempts to support both Linux and Windows for cross-platform development were made, and a cross-platform version of the VCL known as CLX shipped in 2002 with the release of Delphi 6. The CLX technology effort has faded, and with the failure of Kylix, the CLX was abandoned too.

    Since version 1.0, database development remains one of Delphi's strongest points. The Visual Component Library (VCL) contains a large library of database aware controls, and database access components. The Borland Database Engine was the original database connection layer, and was the only choice in the early versions of Delphi, although it is now seldom used, the latest version still ships with the BDE as an installable option.

    Delphi 7 BoxDelphi 7, released in August 2002, became the standard version used by more Delphi developers than any other single version, and remains still actively used to this date.

    Delphi 7 added support for Windows XP Themes, and added more support for building Web applications. It was also the last version of Delphi which can be used without Activation. It has an optional registration feature, that can be ignored.

    Delphi 8 ScreenshotDelphi 8, released December 2003, was a .NET-only release that allowed developers to compile Delphi Object Pascal code into .NET CIL.

    Delphi 8 significant IDE improvement is that it changed for the first time from the multiple-floating-window-on-desktop style IDE to a look and feel similar to Microsoft's Visual Studio.NET. The new IDEs still have the "Classic Undocked" windows layout available as an option.

    The next version, Delphi 2005 (Delphi 9), included the Win32 and .NET development in a single IDE, reiterating Borland's commitment to Win32 developers. Delphi 2005 includes design-time manipulation of live data from a database. It also includes an improved IDE and added a for ... in statement (like C#'s foreach) to the language. However, it was criticized by some for its bugs; both Delphi 8 and Delphi 2005 had stability problems when shipped, which were only partially resolved in service packs.

    Delphi 2006In late 2005 Delphi 2006 was released and combined development of C# and Delphi.NET, Delphi Win32 and C++ into a single IDE. It was much more stable than Delphi 8 or Delphi 2005 when shipped, and improved even more with the release of service packs and several hotfixes.

    On February 8, 2006 Borland announced that it was looking for a buyer for its IDE and database line of products, which include Delphi, to concentrate on its ALM line. The news met with voluble optimism from the remaining Delphi users.

    On September 6, 2006 The Developer Tools Group (the working name of the not yet spun off company) of Borland Software Corporation released single-language versions of Borland Developer Studio, bringing back the popular Turbo name. The Turbo product set includes Turbo Delphi for Win32, Turbo Delphi for .NET, Turbo C++, and Turbo C#. Each version is available in two editions: Explorer — a free downloadable version — and Professional — a lower - priced (US$899 for new user, US$399 for update) version which opens access to thousands of third-party components. Unlike earlier Personal editions of Delphi, new Explorer editions can be used for commercial development.

    On November 14, 2006 Borland announced that rather than selling the development tools group it would spin it off into an independent subsidiary company named CodeGear.

    Delphi 2007Delphi 2007, the first version by CodeGear, was released on March 16, 2007. The Win32 personality was released first, before the .NET personality of Delphi 2007 was released, as part of the CodeGear RAD Studio 2007 product. New features included support for MS Build and enhancements to the Visual Component Library for Windows Vista. CodeGear also introduced DBX4 as the next version of dbExpress. For the first time Delphi could be downloaded from the Internet and activated with a license key. Internationalized versions of Delphi 2007 shipped simultaneously in English, French, German and Japanese. RAD Studio 2007, which includes .NET and C++Builder development, was released on September 5, 2007.

    The next version, Delphi 2009 (code named Tiburón and unreleased as of 2008-07-22), will add many new features such as completely reworking the VCL and RTL for full Unicode support, adding generics and anonymous methods (for both Win32 native and .Net development).

    Borland sold CodeGear to Embarcadero in 2008. Embarcadero is retaining the CodeGear division created by Borland to identify its tool and database offerings, and Embarcadero has decided to identify its own database tools under the DatabaseGear moniker.

    Source: Wikipedia

    About Delphi

    CodeGear Delphi (formerly known as Borland Delphi) is a software development package currently produced by Embarcadero Technologies (On May 7th 2008 Borland Software Corporation announced that its software development tools division, CodeGear, was to be sold to Embarcadero Technologies for an expected $23 million price and $7 million in CodeGear accounts receivables retained by Borland. The acquisition closed on 30 June 2008 for approximately $24.5 million).

    Delphi is mainly used for the development of desktop and enterprise database applications, but it is a general-purpose software development tool suitable for most software projects.

    Delphi 2007, the eleventh and latest version, supports the Delphi programming language (Object Pascal fork) and C++ for the 32 bit Microsoft Windows platform, and Delphi and C# for the Microsoft .NET platform. Delphi is distributed in various versions with different features and prices: Personal, Professional, Enterprise (formerly Client/Server) and Architect. Borland Kylix is a now discontinued equivalent to Delphi for the Linux platform.

    Delphi and Kylix use the Pascal-based Delphi programming language, and compile Delphi source code into native x86 code or managed .NET code. They include the VCL/CLX (Visual Component Library), support for COM independent interfaces with reference counted class implementations, and support for a large number of third-party components. Interface implementations can be delegated to fields or properties of classes. Message handlers are implemented by tagging a method of a class with the integer constant of the message to handle. A strong emphasis is placed on database connectivity.

    Advantages

    • Suitable for Rapid Application Development (RAD)
    • Based on a well-designed language, high-level and strongly typed, but able to use low-level code for hardware access and performance(McConnell 1993:49)
    • A large community on Usenet and the web (e.g. news://newsgroups.borland.com and Borland's web access to Delphi newsgroups)
    • Can compile to a single executable, simplifying distribution and eliminating DLL version issues
    • Many VCL (Visual Component Library) and third-party components (usually available with full source code) and tools (documentation, debug tools, etc.)
    • Quick optimizing compiler also able to use assembler code
    • Multiple platform native code from the same source code
    • High level of source compatibility between versions
    • Class helpers to bridge functionality available natively in the Delphi RTL
    • The language's object orientation features only class- and interface-based polymorphism
    • Delphi 2005, Delphi 2006 and Delphi 2007 all support advanced refactoring features such as Method Extraction, etc.
    • Metaclasses are first class objects
    • There are dedicated string types (as well as null-terminated strings). Strings can be added by using the '+' sign, rather than using functions.
    • Objects are actually references to the objects (like in Java), which Delphi implicitly dereferences
    • Delphi is strongly type-based.
    • Delphi's compiler is extremely efficient and fast.
    • Early adopter of "Dependency Injection" or "Inversion of Control". The VCL is a sophisticated "re-usable" component model, extensible by the developer.

    Disadvantages

    • Not a cross-platform tool. Only produces code for machines running Microsoft Windows. Kylix, which allowed Delphi code to be ported to Linux relatively easily, was discontinued.
    • A reluctance to break any code has led to some convoluted language design choices, and orthogonality and predictability have suffered.
    • Often mistaken for a database (only) front end designer (given rich database component set).
    • Lack of Unicode support (to be remedied in next version)
    • Lack of Win64 support (on the future version roadmap the 64 bit version is code-named 'Commodore')
    • Lack of generics (to be remedied in next version, tentatively named Delphi 2009)
    Source: Wikipedia