home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / PJ8_3.ZIP / UDIR.PAS < prev    next >
Pascal/Delphi Source File  |  1990-02-15  |  2KB  |  64 lines

  1. (* udir.pas -- (c) 1990 by Tom Swan *)
  2.  
  3. unit udir;
  4. interface
  5. uses dos, ulist, uselect;
  6.  
  7. type
  8.  
  9.    fileNameStr = string[12];     { e.g. '*.PAS' or 'MYFILE.TXT' }
  10.  
  11.    fileItemPtr = ^fileItem;
  12.    fileItem = object( selectableItem )
  13.       constructor init( sr : searchRec );
  14.    end; { fileItem }
  15.  
  16.    directory = object( selectionList )
  17.       sr : searchRec;   { From the DOS unit }
  18.       wildCard : fileNameStr;
  19.       constructor init( wc : fileNameStr; x1, y1, x2, y2 : word );
  20.       procedure resetDirectory; virtual;
  21.       procedure putWildCard( wc : fileNameStr );
  22.    end; { directory }
  23.  
  24. implementation
  25.  
  26. { ----- Initialize fileItem object. }
  27. constructor fileItem.init( sr : searchRec );
  28. var
  29.    junk : dirStr;       { Required by fSplit(); ignored }
  30.    fileName : nameStr;  { File name without extension }
  31.    fileExt : extStr;    { File name extension with leading '.' }
  32. begin
  33.    fSplit( sr.name, junk, fileName, fileExt ); { Parse file name }
  34.    selectableItem.init( fileName + fileExt, TRUE ) { Init ancestor }
  35. end; { fileItem.init }
  36.  
  37. { ----- Initialize directory object. }
  38. constructor directory.init( wc : fileNameStr; x1, y1, x2, y2 : word );
  39. begin
  40.    selectionList.init( x1, y1, x2, y2 );
  41.    putWildCard( wc )   { Assign wild card and read directory }
  42. end; { directory.init }
  43.  
  44. { ----- Reread current directory. }
  45. procedure directory.resetDirectory;
  46. begin
  47.    disposeList;   { Dispose an existing directory list }
  48.    findFirst( wildCard, 0, sr );
  49.    while dosError = 0 do
  50.    begin
  51.       insertItem( new( fileItemPtr, init( sr ) ) );
  52.       findNext( sr )
  53.    end
  54. end; { directory.resetDirectory }
  55.  
  56. { ----- Change wild card specification. }
  57. procedure directory.putWildCard( wc : fileNameStr );
  58. begin
  59.    wildCard := wc;
  60.    resetDirectory
  61. end; { directory.putWildCard }
  62.  
  63. end. { udir }
  64.