79 lines
1.7 KiB
Plaintext
79 lines
1.7 KiB
Plaintext
{*******************************************************}
|
|
{ }
|
|
{ Tocsg.Param }
|
|
{ }
|
|
{ Copyright (C) 2020 kkuzil }
|
|
{ }
|
|
{*******************************************************}
|
|
|
|
unit Tocsg.Param;
|
|
|
|
interface
|
|
|
|
uses
|
|
Tocsg.Obj, System.SysUtils;
|
|
|
|
type
|
|
TTgParam = class(TTgObject)
|
|
private
|
|
nParamCnt_: Integer;
|
|
sModulePath_,
|
|
sModuleName_: String;
|
|
protected
|
|
function GetParamIndex(sParam: String): Integer;
|
|
public
|
|
Constructor Create; override;
|
|
|
|
function ExistsParam(const sParam: String): Boolean;
|
|
function GetParamValue(const sParam: String): String;
|
|
|
|
property ModulePath: String read sModulePath_;
|
|
property ModuleName: String read sModuleName_;
|
|
property Count: Integer read nParamCnt_;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{ TTgParam }
|
|
|
|
Constructor TTgParam.Create;
|
|
begin
|
|
Inherited Create;
|
|
|
|
nParamCnt_ := ParamCount;
|
|
sModulePath_ := ParamStr(0);
|
|
sModuleName_ := ExtractFileName(sModulePath_);
|
|
end;
|
|
|
|
function TTgParam.GetParamIndex(sParam: String): Integer;
|
|
var
|
|
i: Integer;
|
|
begin
|
|
Result := -1;
|
|
|
|
sParam := UpperCase(sParam);
|
|
for i := 1 to nParamCnt_ do
|
|
if UpperCase(ParamStr(i)) = sParam then
|
|
begin
|
|
Result := i;
|
|
exit;
|
|
end;
|
|
end;
|
|
|
|
function TTgParam.ExistsParam(const sParam: String): Boolean;
|
|
begin
|
|
Result := GetParamIndex(sParam) > -1;
|
|
end;
|
|
|
|
function TTgParam.GetParamValue(const sParam: String): String;
|
|
var
|
|
nIdx: Integer;
|
|
begin
|
|
Result := '';
|
|
nIdx := GetParamIndex(sParam);
|
|
if (nIdx >= 1) and (nIdx + 1 <= nParamCnt_) then
|
|
Result := ParamStr(nIdx + 1);
|
|
end;
|
|
|
|
end.
|