1
0
mirror of synced 2024-12-22 17:23:07 +01:00

Added: VirtualTree utilities

Added: Miscellaneous functions
Fixed: minor comment adjustements
This commit is contained in:
Mark van Renswoude 2004-06-07 19:17:31 +00:00
parent a743497b12
commit f02bcc6ffe
7 changed files with 202 additions and 55 deletions

View File

@ -8,7 +8,7 @@
:: ::
:: Last changed: $Date$ :: Last changed: $Date$
:: Revision: $Rev$ :: Revision: $Rev$
:: Author: $LastChangedBy$ :: Author: $Author$
:$ :$
:$ :$
@ -161,6 +161,7 @@ type
property Version: TX2AppVersion read FVersion; property Version: TX2AppVersion read FVersion;
end; end;
//:$ Returns a singleton App object
function App(): TX2App; function App(): TX2App;
implementation implementation

View File

@ -10,7 +10,7 @@
:: ::
:: Last changed: $Date$ :: Last changed: $Date$
:: Revision: $Rev$ :: Revision: $Rev$
:: Author: $LastChangedBy$ :: Author: $Author$
:$ :$
:$ :$

107
X2UtMisc.pas Normal file
View File

@ -0,0 +1,107 @@
{
:: X2UtMisc is a collection of functions not fitting into any of the other
:: categories.
::
:: Subversion repository available at:
:: $URL$
::
:: Last changed: $Date$
:: Revision: $Rev$
:: Author: $Author$
:$
:$
:$ X2Utils is released under the zlib/libpng OSI-approved license.
:$ For more information: http://www.opensource.org/
:$ /n/n
:$ /n/n
:$ Copyright (c) 2003 X2Software
:$ /n/n
:$ This software is provided 'as-is', without any express or implied warranty.
:$ In no event will the authors be held liable for any damages arising from
:$ the use of this software.
:$ /n/n
:$ Permission is granted to anyone to use this software for any purpose,
:$ including commercial applications, and to alter it and redistribute it
:$ freely, subject to the following restrictions:
:$ /n/n
:$ 1. The origin of this software must not be misrepresented; you must not
:$ claim that you wrote the original software. If you use this software in a
:$ product, an acknowledgment in the product documentation would be
:$ appreciated but is not required.
:$ /n/n
:$ 2. Altered source versions must be plainly marked as such, and must not be
:$ misrepresented as being the original software.
:$ /n/n
:$ 3. This notice may not be removed or altered from any source distribution.
}
unit X2UtMisc;
interface
//:$ Returns IfTrue or IfFalse depending on the Value
function iif(const AValue: Boolean; const AIfTrue, AIfFalse: Integer): Integer; overload;
//:$ Returns IfTrue or IfFalse depending on the Value
function iif(const AValue: Boolean; const AIfTrue, AIfFalse: String): String; overload;
//:$ Compares two integers
//:: Returns 0 if the values are equal, 1 if Value1 is greater than Value2 and
//:: -1 when Value1 is less than Value2.
function CompareInt(const AValue1, AValue2: Integer): Integer; overload;
//:$ Compares two integers
//:: Returns 0 if the values are equal, 1 if Value1 is greater than Value2 and
//:: -1 when Value1 is less than Value2.
function CompareInt(const AValue1, AValue2: Cardinal): Integer; overload;
//:$ Compares two integers
//:: Returns 0 if the values are equal, 1 if Value1 is greater than Value2 and
//:: -1 when Value1 is less than Value2.
function CompareInt(const AValue1, AValue2: Int64): Integer; overload;
implementation
function iif(const AValue: Boolean; const AIfTrue, AIfFalse: Integer): Integer;
begin
if AValue then
Result := AIfTrue
else
Result := AIfFalse;
end;
function iif(const AValue: Boolean; const AIfTrue, AIfFalse: String): String;
begin
if AValue then
Result := AIfTrue
else
Result := AIfFalse;
end;
function CompareInt(const AValue1, AValue2: Integer): Integer;
begin
Result := 0;
if AValue1 > AValue2 then
Result := 1
else if AValue1 < AValue2 then
Result := -1;
end;
function CompareInt(const AValue1, AValue2: Cardinal): Integer;
begin
Result := 0;
if AValue1 > AValue2 then
Result := 1
else if AValue1 < AValue2 then
Result := -1;
end;
function CompareInt(const AValue1, AValue2: Int64): Integer;
begin
Result := 0;
if AValue1 > AValue2 then
Result := 1
else if AValue1 < AValue2 then
Result := -1;
end;
end.

View File

@ -8,7 +8,7 @@
:: ::
:: Last changed: $Date$ :: Last changed: $Date$
:: Revision: $Rev$ :: Revision: $Rev$
:: Author: $LastChangedBy$ :: Author: $Author$
:$ :$
:$ :$
@ -43,9 +43,7 @@ uses
Windows; Windows;
type type
{ //:$ Enumeration of the recognized Operating System versions
:$ Enumerates the recognized Operating System versions
}
TX2OSVersion =(osUnknown, osWin95, osWin98, osWinME, osWinNT3, osWinNT4, TX2OSVersion =(osUnknown, osWin95, osWin98, osWinME, osWinNT3, osWinNT4,
osWin2K, osWinXP, osWin2003); osWin2K, osWinXP, osWin2003);

View File

@ -7,7 +7,7 @@
:: ::
:: Last changed: $Date$ :: Last changed: $Date$
:: Revision: $Rev$ :: Revision: $Rev$
:: Author: $LastChangedBy$ :: Author: $Author$
:$ :$
:$ :$
@ -53,64 +53,45 @@ type
procedure OnInstance(const ACmdLine: String); procedure OnInstance(const ACmdLine: String);
end; end;
{ //:$ Checks for a previous instance of the application
:$ Checks for a previous instance of the application //:: Returns False if a previous instance was found, True if this is the
//:: first registered instance. ApplicationID must be unique to prevent
:: Returns False if a previous instance was found, True if this is the //:: application conflicts, usage of a generated GUID is recommended.
:: first registered instance. ApplicationID must be unique to prevent //:! Set ANotify to False if you're using SingleInstance in a console
:: application conflicts, usage of a generated GUID is recommended. //:! application without a message loop.
:! Set ANotify to False if you're using SingleInstance in a console
:! application without a message loop.
}
function SingleInstance(const AApplicationID: String; function SingleInstance(const AApplicationID: String;
const ANotify: Boolean = True): Boolean; const ANotify: Boolean = True): Boolean;
{ //:$ Registers the instance for notifications
:$ Registers the instance for notifications //:: If an application wants to be notified of new instances it must
//:: implement the IX2InstanceNotifier and register the interface using
:: If an application wants to be notified of new instances it must //:: this function.
:: implement the IX2InstanceNotifier and register the interface using
:: this function.
}
procedure RegisterInstance(const ANotifier: IX2InstanceNotifier); procedure RegisterInstance(const ANotifier: IX2InstanceNotifier);
{ //:$ Unregisters a previously registered instance
:$ Unregisters a previously registered instance
}
procedure UnregisterInstance(const ANotifier: IX2InstanceNotifier); procedure UnregisterInstance(const ANotifier: IX2InstanceNotifier);
{ //:$ Works like System.ParamCount, but uses the specified string instead
:$ Works like System.ParamCount, but uses the specified string instead //:$ of the actual command line
:$ of the actual command line
}
function ParamCountEx(const ACmdLine: String): Integer; function ParamCountEx(const ACmdLine: String): Integer;
{ //:$ Works like System.ParamStr, but uses the specified string instead
:$ Works like System.ParamStr, but uses the specified string instead //:$ of the actual command line
:$ of the actual command line
}
function ParamStrEx(const ACmdLine: String; AIndex: Integer): String; function ParamStrEx(const ACmdLine: String; AIndex: Integer): String;
{ //:$ Works like SysUtils.FindCmdLineSwitch, but uses the specified string
:$ Works like SysUtils.FindCmdLineSwitch, but uses the specified string //:$ instead of the actual command line
:$ instead of the actual command line
}
function FindCmdLineSwitchEx(const ACmdLine, ASwitch: String; function FindCmdLineSwitchEx(const ACmdLine, ASwitch: String;
const AChars: TSysCharSet; const AChars: TSysCharSet;
const AIgnoreCase: Boolean): Boolean; overload; const AIgnoreCase: Boolean): Boolean; overload;
{ //:$ Works like SysUtils.FindCmdLineSwitch, but uses the specified string
:$ Works like SysUtils.FindCmdLineSwitch, but uses the specified string //:$ instead of the actual command line
:$ instead of the actual command line
}
function FindCmdLineSwitchEx(const ACmdLine, ASwitch: String): Boolean; overload; function FindCmdLineSwitchEx(const ACmdLine, ASwitch: String): Boolean; overload;
{ //:$ Works like SysUtils.FindCmdLineSwitch, but uses the specified string
:$ Works like SysUtils.FindCmdLineSwitch, but uses the specified string //:$ instead of the actual command line
:$ instead of the actual command line
}
function FindCmdLineSwitchEx(const ACmdLine, ASwitch: String; function FindCmdLineSwitchEx(const ACmdLine, ASwitch: String;
const AIgnoreCase: Boolean): Boolean; overload; const AIgnoreCase: Boolean): Boolean; overload;

View File

@ -6,7 +6,7 @@
:: ::
:: Last changed: $Date$ :: Last changed: $Date$
:: Revision: $Rev$ :: Revision: $Rev$
:: Author: $LastChangedBy$ :: Author: $Author$
:$ :$
:$ :$
@ -37,13 +37,10 @@
unit X2UtStrings; unit X2UtStrings;
interface interface
{ //:$ Formats the specified size
:$ Formats the specified size //:: If KeepBytes is true, the size will be formatted for decimal separators
//:: and 'bytes' will be appended. If KeepBytes is false the best suitable
:: If KeepBytes is true, the size will be formatted for decimal separators //:: unit will be chosen (KB, MB, GB).
:: and 'bytes' will be appended. If KeepBytes is false the best suitable
:: unit will be chosen (KB, MB, GB).
}
function FormatSize(const Bytes: Int64; KeepBytes: Boolean = False): String; function FormatSize(const Bytes: Int64; KeepBytes: Boolean = False): String;
implementation implementation

63
X2UtVirtualTree.pas Normal file
View File

@ -0,0 +1,63 @@
{
:: X2UtVirtualTree provides a set of functions commonly used with
:: TVirtualTree (http://www.delphi-gems.com/).
::
:: Subversion repository available at:
:: $URL$
::
:: Last changed: $Date$
:: Revision: $Rev$
:: Author: $Author$
:$
:$
:$ X2Utils is released under the zlib/libpng OSI-approved license.
:$ For more information: http://www.opensource.org/
:$ /n/n
:$ /n/n
:$ Copyright (c) 2003 X2Software
:$ /n/n
:$ This software is provided 'as-is', without any express or implied warranty.
:$ In no event will the authors be held liable for any damages arising from
:$ the use of this software.
:$ /n/n
:$ Permission is granted to anyone to use this software for any purpose,
:$ including commercial applications, and to alter it and redistribute it
:$ freely, subject to the following restrictions:
:$ /n/n
:$ 1. The origin of this software must not be misrepresented; you must not
:$ claim that you wrote the original software. If you use this software in a
:$ product, an acknowledgment in the product documentation would be
:$ appreciated but is not required.
:$ /n/n
:$ 2. Altered source versions must be plainly marked as such, and must not be
:$ misrepresented as being the original software.
:$ /n/n
:$ 3. This notice may not be removed or altered from any source distribution.
}
unit X2UtVirtualTree;
interface
uses
VirtualTrees;
//:$ Applies the sort order on the specified column
//:: When a column is already sorted, the sort order is reversed.
procedure SortColumn(const AHeader: TVTHeader;
const AColumn: TColumnIndex);
implementation
procedure SortColumn;
begin
with AHeader do
if SortColumn = AColumn then
SortDirection := TSortDirection(1 - Integer(SortDirection))
else begin
SortColumn := AColumn;
SortDirection := sdAscending;
end;
end;
end.