home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 October
/
Chip_2001-10_cd1.bin
/
zkuste
/
delphi
/
kolekce
/
d56
/
TDSOFT.ZIP
/
TDEnvironmentStrings.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
2001-08-09
|
2KB
|
89 lines
unit TDEnvironmentStrings;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TTDEnvironmentStrings = class(TComponent)
private
{ Private declarations }
FEnvList: TStringList;
protected
{ Protected declarations }
public
{ Public declarations }
function RefreshVariables: Boolean;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function GetVariable(const VarName: string): string;
procedure GetVariablesList(VarList: TStrings);
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('TDSoft', [TTDEnvironmentStrings]);
end;
{ TTDEnvironmentStrings }
constructor TTDEnvironmentStrings.Create(AOwner: TComponent);
begin
inherited;
FEnvList:=TStringList.Create;
if not RefreshVariables then
raise Exception.Create('Cannot retrieve Environment Strings!');
end;
destructor TTDEnvironmentStrings.Destroy;
begin
inherited;
{$IFDEF VER130}
FreeAndNil(FEnvList);
{$ELSE}
FEnvList.Free;
FEnvList:=nil;
{$ENDIF}
end;
function TTDEnvironmentStrings.GetVariable(const VarName: string): string;
begin
Result:=FEnvList.Values[VarName];
end;
procedure TTDEnvironmentStrings.GetVariablesList(VarList: TStrings);
begin
VarList.Assign(FEnvList);
end;
function TTDEnvironmentStrings.RefreshVariables: Boolean;
var
X,P:PChar;
begin
Result:=True;
try
X:=GetEnvironmentStrings;
try
P:=X;
while P^<>#0 do
begin
FEnvList.Add(StrPas(P));
P:=P + Length(StrPas(P))+1;
end;
finally
FreeEnvironmentStrings(X);
end;
except
Result:=False;
end;
end;
end.