[Back to OOP SWAG index] [Back to Main SWAG index] [Original]
{
For you TV programmers out there, here is a neat little
TValidator object for you - it verifies that the DIRECTORY
entered in a TInputLine is valid and currently exists.
}
Unit DirValid;
INTERFACE
Uses
Objects,
Validate;
Type
PDirValidator = ^TDirValidator;
TDirValidator = OBJECT(TValidator)
constructor Init;
procedure Error; virtual;
function IsValid(const S : string) : boolean; virtual;
end;
IMPLEMENTATION
Uses
Dos,
MsgBox;
Function ExistDir(d : string) : boolean;
VAR
S : SearchRec;
BEGIN
{$I-}
FindFirst(d, Directory, S);
{$I+}
if DOSError = 0 then
BEGIN
if Directory = (S.attr and Directory) then
ExistDir := TRUE
ELSE
ExistDir := FALSE;
END
ELSE
ExistDir := FALSE;
END;
constructor TDirValidator.Init;
begin
inherited Init;
end;
procedure TDirValidator.Error;
begin
MessageBox('Directory does not exist!', nil, mfError + mfOKButton);
end;
function TDirValidator.IsValid(const S : string) : boolean;
var
d : string;
begin
if s='' then {always return TRUE when entry string is empty}
begin
IsValid := TRUE;
EXIT;
end;
d := s;
if s[Length(d)] = '\' then
Delete(d, Length(d), 1); {allows flexibility - TV & TP expect
paths to NOT terminate in a \ }
if ExistDir(d) then
IsValid := TRUE {directory exists}
else
IsValid := FALSE; {directory does not exist}
end;
end.
[Back to OOP SWAG index] [Back to Main SWAG index] [Original]