home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / compressed / development / clusterdemo.dms / clusterdemo.adf / Modules.lha / modules / txt / DosSupport.def < prev    next >
Text File  |  1994-05-25  |  20KB  |  587 lines

  1. |##########|
  2. |#MAGIC   #|CLABLMBE
  3. |#PROJECT #|"ImportHelp"
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|xx---x--x---x-x-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|xx-x-x----------
  9. |##########|
  10. DEFINITION MODULE DosSupport;
  11.  
  12. FROM System         IMPORT Regs;
  13. FROM Exceptions     IMPORT RangeViolation;
  14. FROM Resources      IMPORT NotEnoughMemory,ContextPtr;
  15. FROM Lists          IMPORT BiLists,TextLists;
  16. FROM Trees          IMPORT StdTrees;
  17.                     IMPORT Dos;
  18.  
  19. TYPE
  20.   DrivePtr    = POINTER TO Drive;
  21.   DirNodePtr  = POINTER TO DirNode;
  22.   DirTreePtr  = POINTER TO DirTree;
  23.  
  24. DEFINITION MODULE DriveLists = TextLists(DrivePtr);
  25.  
  26. DEFINITION MODULE DirLists   = BiLists(DirNodePtr);
  27.  
  28. DEFINITION MODULE DirTrees   = StdTrees(DirTreePtr);
  29.  
  30. TYPE
  31.   Drive         = DriveLists.TextNode;
  32.   DriveList     = RECORD OF DriveLists.TextList
  33.                     context : ContextPtr;
  34.                   END;
  35.  
  36.   FileData      = RECORD
  37.                     dir    : BOOLEAN;  | Flag, ob Directory
  38.                     name,
  39.                     comment: CLASSPTR TO STRING;
  40.                     flags  : Dos.ProtectionFlagSet;
  41.                     date   : Dos.Date;
  42.                     length : LONGINT;  | länge des Files;
  43.                   END;
  44.   DirData       = RECORD
  45.                     size,
  46.                     fullSize    : LONGINT;
  47.                     entries,
  48.                     fullEntries,
  49.                     dirs,
  50.                     fullDirs    : INTEGER;
  51.                   END;
  52.   DirDataPtr    = POINTER TO DirData;
  53.   DirNode       = RECORD OF DirLists.BiNode;
  54.                     data : FileData;
  55.                   END;
  56.   DirTree       = RECORD OF DirTrees.Leaf;
  57.                     data        : FileData;
  58.                     dirData     : DirDataPtr;
  59.                   END;
  60.   Selection     = (selectFiles,selectDirs);
  61.   DirSelectType = SET OF Selection;
  62.   DirList       = RECORD OF DirLists.BiList
  63.                     context : ContextPtr;
  64.                     entries,
  65.                     dirs    : INTEGER;
  66.                     size    : LONGINT;
  67.                   END;
  68.  
  69.   FileErrors    = (ok,unknownError,objectInUse,objectExists,objectNotFound,
  70.                    objectWrongType,diskNotValidated,writeProtected,
  71.                    renameAcrossDevices,directoryNotEmpty,deviceNotMounted,
  72.                    seekError,diskFull,deleteProtected,readProtected,
  73.                    notADosDisk);
  74.  
  75.   FileTexts   = ARRAY FileErrors OF POINTER TO STRING;
  76.  
  77.  
  78. CONST
  79.   FileErrTexts = FileTexts; | Fehlermeldungen im Klartext
  80.  
  81. (*============== Directory ===================================================*)
  82.  
  83. TYPE
  84.   PutProc  = PROCEDURE(data : FileData);
  85.  
  86. |
  87. |  Funktion   : Untersucht ein Verzeichnis auf die verschiedenen Einträge
  88. |               und ruft für jeden Eintrag für den das Pattern stimmt eine
  89. |               übergebene Prozedur auf, der die Eintragsdaten übergeben
  90. |               werden.
  91. |  Parameter  : put     <- Prozedur, der die Eintragsdaten übergeben werden,
  92. |                          und die mit ihnen machen kann was sie will
  93. |               path    <- Pfad des zu untersuchenden Verzeichnisses
  94. |               pattern <- Pattern, für die Einträge, für die "put"
  95. |                          aufgerufen werden soll
  96. |               type    <- Gibt an, ob Files und/oder Verzeichnisse
  97. |                          bearbeitet werden sollen
  98. |
  99. |tested
  100. PROCEDURE ScanDir(    put        : PutProc;
  101.                   REF path       : STRING;
  102.                   REF pattern    : STRING:="#?";
  103.                       type       := DirSelectType:{selectFiles,selectDirs});
  104.  
  105.  
  106. |
  107. |  Funktion  : Untersucht ein File/Directory und gibt eine einen FileData-
  108. |              Block zurück.
  109. |  Parameter : data        -> Datablock;
  110. |              path       <-  Pfad des Files/Directorys, das untersucht
  111. |                             werden soll
  112. | tested
  113. METHOD Get(VAR data       : FileData;
  114.            REF path       : STRING)
  115.  
  116. |
  117. |  Funktion  : Gibt eine DirList frei.
  118. |  Parameter : list     <- freizugebende Liste.
  119. |
  120. | tested
  121. METHOD Delete(VAR list : DirList);
  122.  
  123.  
  124. |
  125. |  Funktion  : Untersucht ein Directory und gibt eine Liste der Einträge
  126. |              zurück
  127. |  Parameter : list        -> Liste
  128. |              path       <-  Pfad des Directorys, das untersucht werden soll
  129. |              pattern    <-  Dos-Pattern der Einträge, die in die Liste
  130. |                             aufgenommen werden soll
  131. |              type       <-  Nach was gesucht werden soll
  132. |
  133. | tested
  134. METHOD Get(VAR list       : DirList;
  135.            REF path       : STRING;
  136.            REF pattern    : STRING:="#?";
  137.                type       := DirSelectType:{selectDirs,selectFiles};
  138.                context    : ContextPtr := NIL);
  139.  
  140.  
  141. |
  142. |  Funktion  : Gibt einen DirTree frei.
  143. |  Parameter : tree     <- freizugebender Baum.
  144. |
  145.  
  146. METHOD Delete(VAR tree : DirTreePtr);
  147.  
  148. |
  149. |  Funktion  : Untersucht ein Directory und die darin enthaltenen und gibt
  150. |              einen Baum der Einträge zurück.
  151. |  Parameter : tree        -> Baum
  152. |              path       <-  Pfad des Directorys, das untersucht werden soll
  153. |              pattern    <-  Dos-Pattern der Einträge, die in die Liste
  154. |                             aufgenommen werden soll
  155. |              type       <-  Nach was gesucht werden soll
  156. |
  157. | tested
  158. METHOD Get(VAR tree       : DirTreePtr;
  159.            REF path       : STRING;
  160.            REF pattern    : STRING:="#?";
  161.                type       := DirSelectType:{selectDirs,selectFiles};
  162.                context    :  ContextPtr:=NIL);
  163.  
  164. TYPE
  165.   CmpProc = PROCEDURE(REF d1,d2 : FileData):BOOLEAN;
  166.  
  167. PROCEDURE byName(REF d1,d2 : FileData):BOOLEAN; | Sortiert nach Namen
  168.  
  169. PROCEDURE bySize(REF d1,d2 : FileData):BOOLEAN; | Sortiert nach Länge
  170.  
  171. PROCEDURE byDate(REF d1,d2 : FileData):BOOLEAN; | Sortiert nach Datum
  172.  
  173.  
  174. |
  175. |  Funktion  :  Sortiert eine DirList nach obenstehenden Kriterien
  176. |  Parameter :  list <-> Liste die sortiert werden soll.
  177. |               cmp  <-  Vergleichsprozedur, nach der aufsteigend sortiert
  178. |                        werden soll.
  179. | tested
  180. METHOD Sort(VAR list : DirList;cmp : CmpProc);
  181.  
  182.  
  183. |
  184. |  Funktion  :  Sortiert einen DirTree nach obenstehenden Kriterien
  185. |  Parameter :  father <-  Knoten, von dem ab sortiert werden soll
  186. |               cmp    <-  Vergleichsprozedur, nach der aufsteigend sortiert
  187. |                          werden soll.
  188. | tested
  189. METHOD Sort(father : DirTreePtr;cmp : CmpProc := byName);
  190.  
  191.  
  192. |
  193. |  Funktion   : Prüft ob ein File/Verzeichnis, dessen Namen übergeben worden,
  194. |               ist, existiert.
  195. |  Parameter  : name  <- Name des Verzeichnisses
  196. |               retry <- Flag, ob im Falle, das der Name auf einem nicht im
  197. |                        Laufwerk liegenden Volume sich befindet, ein System-
  198. |                        requester erst zum einlegen auffordern soll.
  199. |                     -> TRUE wenn das Verzeichnis/File existiert.
  200. | tested
  201. PROCEDURE Exists(REF name : STRING;retry  : BOOLEAN := FALSE ):BOOLEAN;
  202.  
  203.  
  204. |
  205. |  Funktion   : Prüft ob ein File/Verzeichnis, ein File ist.
  206. |  Parameter  : name <- Name des Files/Verzeichnisses.
  207. |                    -> TRUE wenn es sich um ein File handelt.
  208. |
  209. | tested
  210. PROCEDURE IsFile(REF name : STRING):BOOLEAN;
  211.  
  212. |
  213. |  Funktion   : Füllt eine übergebene Liste mit Einträgen der angeschlossenen
  214. |               Laufwerke (Drive.special = TRUE), sowie der logischen
  215. |               Laufwerke (Drive.special = FALSE).
  216. |  Parameter  : list     <-> Liste die gefüllt werden soll.
  217. |               physical <-  Flag, das angibt ob nur physikalische Laufwerke
  218. |                            in die Liste aufgenommen werden sollen
  219. |
  220. | tested
  221. METHOD Get(VAR list     : DriveList;
  222.                physical : BOOLEAN := TRUE;
  223.                context  : ContextPtr := NIL);
  224.  
  225.  
  226. |
  227. |  Funktion   : Gibt eine gefüllte DriveList wieder frei.
  228. |  Parameter  : list  <- Liste die freigegeben werden soll
  229. |
  230. | tested
  231. METHOD Delete(VAR list : DriveList);
  232.  
  233. GROUP
  234.   DirGrp  = DirTree,DirTreePtr,byName,bySize,byDate,DirNodePtr,DirNode,
  235.             Selection,DirSelectType,Drive,DriveList,DrivePtr,DirList,
  236.             ScanDir,FileData;
  237.  
  238.  
  239. (*============== Path ========================================================*)
  240.  
  241.  
  242. |
  243. |  Funktion   : Zerlegt einen Filename in Pfad,name und Erweiterung
  244. |               (Pfad/Name.Erweiterung)
  245. |  Parameter  : path     <-  Beim Aufruf der gesammte FileNamen
  246. |                        ->  nach Prozedurende der reine Pfad des Files.
  247. |               name      -> Name des Files.
  248. |               extension -> Erweiterung nach "." am Namenende z.B. ".iff"
  249. |
  250. | tested
  251. PROCEDURE SplitName(VAR path,name,extension : STRING);
  252.  
  253.  
  254. |
  255. |  Funktion  : Zerlegt einen String mit kombiniertem Pfad+FileNamen in einen
  256. |              getrennten Pfad und einen FileNamen
  257. |  Parameter : path    <-  Pfad kombiniert
  258. |                      ->  reiner Pfad
  259. |              name    -> abgtrennter Name
  260. |tested
  261. PROCEDURE GetPathName(VAR path IN A0,name IN A1 : STRING);
  262.  
  263. |
  264. |  Funktion  : Gibt den, in einem Pfad enthaltenen Dateinamen, ohne angehängte
  265. |              Erweiterung zurück
  266. |  Parameter : path    <- Pfad
  267. |                      -> Name
  268. |tested
  269. $$OwnHeap:=TRUE
  270. PROCEDURE Name(REF path IN A0 : STRING):STRING;
  271.  
  272. |
  273. |  Funktion  : Gibt den, in einem Pfad enthaltenen Dateinamen, inklusive
  274. |              einer eventuell angehängte Erweiterung zurück.
  275. |  Parameter : path    <- Pfad
  276. |                      -> Name
  277. |tested
  278. $$OwnHeap:=TRUE
  279. PROCEDURE ExtendedName(REF path IN A0 : STRING):STRING;
  280.  
  281. |
  282. |  Funktion  : Gibt den, in einem Pfad enthaltenen reinen Pfad zurück
  283. |  Parameter : fullPath    <- kompletter Pfad, mit Dateinamen
  284. |                          -> reiner Pfad
  285. |tested
  286. $$OwnHeap:=TRUE;
  287. PROCEDURE Path(REF fullPath IN A0 : STRING):STRING;
  288.  
  289. |
  290. |  Funktion  : Gibt die, in einem Namen enthaltene Erweiterung zurück
  291. |  Parameter : name    <- Name
  292. |                      -> Erweiterung
  293. |tested
  294. $$OwnHeap:=TRUE
  295. PROCEDURE Extension(REF name IN A0 : STRING):STRING;
  296.  
  297. |
  298. |  Funktion  : Fügt an einen Pfad ein Unterverzeichnis an
  299. |  Parameter : path    <-  Pfad an den Subdir angefügt werden soll
  300. |                      ->  Pfad mit angehängtem SubDir
  301. |              subDir  <-  Namen des Verzeichnis, das angefügtg werden soll
  302. |  Bemerkung : Beim anfügen wird automatisch ein "/" eingefügt wenn nötig
  303. |
  304. |tested
  305. PROCEDURE GetSubDir(VAR path : STRING;REF subDir : STRING);
  306.  
  307. |
  308. |  Funktion  : Wie GetSubDir, jedoch als Funktion
  309. |
  310. |tested
  311. $$OwnHeap:=TRUE;
  312. PROCEDURE SubDir(REF path,subDir : STRING):STRING;
  313.  
  314.  
  315. |
  316. |  Funktion  : Liefert den Pfad des übergeordneten Directorys
  317. |  Parameter : pfad    <-  Pfad von dem das ParentDirectory ermittelt werden
  318. |                          soll.
  319. |                       -> Pfad des übergeordneten Verzeichnises
  320. |tested
  321. PROCEDURE GetParentDir(VAR path IN A0 : STRING);
  322.  
  323. |
  324. |  Funktion  : Wie GetParentDir, jedoch als Funktion
  325. |
  326. |tested
  327. $$OwnHeap:=TRUE
  328. PROCEDURE ParentDir(REF path IN A0 : STRING):STRING;
  329.  
  330. |
  331. | Funktion  : Setzt aus einem Pfad, einem Namen und einer Erweiterung einen
  332. |             kompletten Pfad zusammen.
  333. | Parameter : path      <-  einzelner Pfad
  334. |                       ->  zusammengesetzter Pfad
  335. |             name      <-  Name
  336. |             extension <-  Erweiterung
  337. |tested
  338. PROCEDURE BuildName(VAR path : STRING;REF name,extension : STRING);
  339.  
  340. |
  341. |  Funktion  : Wie BuildName, jedoch als Funktion
  342. |
  343. |tested
  344. $$OwnHeap:=TRUE
  345. PROCEDURE FName(REF path,name,extension : STRING):STRING;
  346.  
  347.  
  348. |
  349. |  Funktion  : Gibt den kompletten Pfad eines Unterverzeichnises
  350. |  Parameter : smallPath <-  Name des Unterverzeichnises
  351. |              path       -> Kompletter Pfad
  352. |
  353. |tested
  354. PROCEDURE GetFullPath(REF smallPath : STRING;VAR path : STRING);
  355.  
  356. |
  357. |  Funktion  : Wie GetFullPath, jedoch als Funktion
  358. |
  359. |tested
  360. $$OwnHeap:=TRUE
  361. PROCEDURE FullPath(REF smallPath : STRING):STRING;
  362.  
  363. |  Funktion  : Setzt aus den übergebenen Werten einen Pfad zusammen, wie man
  364. |              ihn zum öffnen eines Consol-Fensters benötigt.
  365. |  Parameter : title    <-  Titel des Fensters
  366. |                       ->  zusammengesetzter Pfad
  367. |              leftEdge <-  x Position der linken, oberen Ecke des Fensters
  368. |              topEdge  <-  y Position der linken, oberen Ecke des Fensters
  369. |              width    <-  Breite des Fensters
  370. |              heigth   <-  Höhe des Fensters
  371. |tested
  372. PROCEDURE BuildConsolePath(VAR title : STRING;leftEdge,topEdge,width,height : CARDINAL);
  373.  
  374. |
  375. |  Funktion  : Wie BuilConsolePath, jedoch als Funktion
  376. |
  377. |tested
  378. $$OwnHeap:=TRUE
  379. PROCEDURE ConsolePath(REF title : STRING;leftEdge,topEdge,width,height : CARDINAL):STRING;
  380.  
  381.  
  382.  
  383. GROUP
  384.   PathGrp   = SplitName,GetFullPath,GetPathName,SubDir,GetSubDir,GetParentDir,
  385.               ParentDir,BuildName,FName,FullPath,BuildConsolePath,ConsolePath,
  386.               Path,Name,ExtendedName,Extension;
  387.  
  388.  
  389. (*======================= Global files =======================================*)
  390.  
  391. |
  392. |  Funktion  : Löscht ein File/Verzeichnis.
  393. |  Parameter : name    <- Pfad des Files
  394. |              all     <- Gibt an, ob auch Unterverzeichnisse rekursiv
  395. |                         gelöscht werden sollen.
  396. |
  397. |tested
  398. PROCEDURE Delete(REF name : STRING;all : BOOLEAN := FALSE);
  399.  
  400.  
  401. |
  402. |  Funktion  : Erzeugt ein Verzeichnis.
  403. |  Parameter : name  <- Name des neuen Verzeichnisses
  404. |
  405. |tested
  406. PROCEDURE MakeDir(REF name : STRING);
  407.  
  408. |
  409. |  Funktion  : Benennt ein File um.
  410. |  Parameter : oldName <- Alter Name des Files
  411. |              newName <- Neuer Name des Files
  412. |  Bemerkung : newName muß sich auf dem selben Gerät befinden wie OldPath.
  413. |
  414. |tested
  415. PROCEDURE Rename(REF oldName,
  416.                      newName  : STRING)
  417.  
  418.  
  419. TYPE
  420.   CopyProc    = PROCEDURE(VAR name : STRING;dir : BOOLEAN);
  421.   CheckProc   = PROCEDURE(REF path,name : STRING):BOOLEAN;
  422.  
  423. |
  424. |  Funktion  : Kopiert ein oder mehrere Files oder Verzeichnisse, der Quell-
  425. |              pfad, darf dabei ein Dos-Pattern enthalten z.B. "#?.(def|mod)
  426. |  Parameter : src   <- Quellpfad
  427. |              dest  <- Zielpfad
  428. |              all   <- Flag, das bestimmt, ob bei der Kopie eines
  429. |                       Verzeichnisses, darin liegende Verzeichnisse rekursiv
  430. |                       mitkopiert werden sollen
  431. |              overWrite
  432. |                    <- Prozedur, der der Pfad und der Name des Files über-
  433. |                       geben wird, im Falle das ein File gleichen Namens im
  434. |                       Zielverzeichnis schon enthalten ist. Sie muß einen
  435. |                       BOOLEAN-Wert zurückgeben, ob das File überschrieben
  436. |                       werden soll. Ist existCheck = NIL, werden evemtuell
  437. |                       existierende Files gleichen Namens überschrieben.
  438. |                       Achtung, von "overWrite" darf weder Pfad noch Name
  439. |                       verändert werden.
  440. |              apply <- Prozedur, der der Name des als nächsten zu
  441. |                       kopierenden Files/Verzeichnisses, sowie ein Flag, das
  442. |                       angibt, ob es sich um ein Verzeichnis handelt,
  443. |                       übergeben wird. Verändert "apply" den Namen, wird
  444. |                       beim schreiben des Files dieser neue Namen verwendet
  445. |              clone <- Flag, ob beim Kopieren auch das Datum mitkopiert werden
  446. |                       soll.
  447. |tested
  448. PROCEDURE Copy(src,
  449.                dest         : STRING;
  450.                all          : BOOLEAN   :=FALSE;
  451.                overWrite    : CheckProc :=NIL;
  452.                apply        : CopyProc  :=NIL;
  453.                clone        : BOOLEAN   :=FALSE);
  454.  
  455. |
  456. |  Funktion   : Verschiebt ein File/Verzeichnis in ein anderes Verzeichnis,
  457. |               auch von einem Laufwerk auf ein anderes.
  458. |  Parameter  : src  <- File/Verzeichnis, das verschoben werden soll
  459. |               dest <- Ziel der Operation
  460. |
  461. |tested
  462. PROCEDURE Move(REF src,dest : STRING);
  463.  
  464.  
  465. TYPE
  466.   SearchProc = PROCEDURE(REF path : STRING;data : FileData);
  467.  
  468. |
  469. |  Funktion   : Sucht ein File/Verzeichnis im Verzeichnis "startDir" und
  470. |               dessen Unterverzeichnissen. Wird ein Eintrag mit passendem
  471. |               Namen gefunden, wird eine Prozedur aufgerufen, der der Pfad
  472. |               dieses Eintrags, sowie sein FileData-Block übergeben wird.
  473. |  Parameter :  startDir <- Name des Verzeichnisses, in dem gesucht werden
  474. |                           soll.
  475. |               name     <- Name oder Pattern, nach dem gesucht werden soll
  476. |               react    <- Prozedur, die beim Auffinden des gesuchten Namens
  477. |                           aufgerufen wird.
  478. |
  479. PROCEDURE Search(REF startDir,name : STRING;react : SearchProc);
  480.  
  481.  
  482. TYPE
  483.   WorkProc  = PROCEDURE(REF path,name : STRING;data : FileData);
  484.  
  485. |
  486. |  Funktion  :  Geht eine Verzeichnisstruktur rekursiv durch, und ruft für
  487. |               jeden Eintrag die Prozedur "apply" auf.
  488. |  Parameter :  path      <- Pfad des Verzeichnisses, das bearbeitet werden
  489. |                            soll.
  490. |               pattern   <- Pattern für die Einträge, für die "apply"
  491. |                            aufgerufen werden soll.
  492. |               recursive <- Gibt an, ob auch in dem Verzeichnis liegende
  493. |                            Unterverzeichnisse rekursiv untersucht werden
  494. |                            sollen.
  495. |               apply     <- Prozedur, die für jeden Eintrag aufgerufen wird,
  496. |                            auf den "pattern" paßt. Ihr wird der Name des
  497. |                            Eintrags, sein Pfad sowie dessen FileData-Block
  498. |                            übergeben. Sie darf den Pfad und den Namen nicht
  499. |                            verändern.
  500. |               type      <- Set, ob nur Files, nur Directories oder beide
  501. |                            bearbeitet werden sollen.
  502. |               scanFirst <- Zuerst werden alle in Frage kommenden Einträge
  503. |                            ausgewählt, und danach die Prozedur auf jeden
  504. |                            einzelnen ausgeführt. Sinnvoll, beispielsweise,
  505. |                            falls die Bearbeitungsprozedur etwas an der
  506. |                            Verzeichnisstruktur ändert, oder gar diese löscht.
  507. |
  508. |tested
  509. PROCEDURE WorkOnFiles(REF path,pattern : STRING;
  510.                           apply        : WorkProc;
  511.                           recursive    : BOOLEAN:=FALSE;
  512.                           type         := DirSelectType:{selectDirs,selectFiles};
  513.                           scanFirst    : BOOLEAN:=FALSE);
  514.  
  515. |
  516. |  Funktion  : Setzt Protectionbits für ein File
  517. |  Parameter : name    <- Name des Files
  518. |              flags   <- Neue Protectionbits
  519. |tested
  520. PROCEDURE SetProtect(REF name  : STRING;
  521.                          flags : Dos.ProtectionFlagSet);
  522.  
  523.  
  524. |
  525. |  Funktion  : Ließt Protectionbits eines Files
  526. |  Parameter : name    <- Name des Files
  527. |              flags   -> Flags des Files
  528. |tested
  529. PROCEDURE GetProtect(REF name  : STRING;
  530.                      VAR flags : Dos.ProtectionFlagSet);
  531.  
  532.  
  533. (*=========== Utilities ======================================================*)
  534.  
  535. |
  536. |  Funktion   : Leitet Dos-Requester auf den Screen mit dem angegebenen
  537. |               Fenster um.
  538. |
  539. TYPE
  540.   WindowPtr = DEFERRED POINTER Intuition.WindowPtr;
  541.  
  542. |tested
  543. PROCEDURE GetSystemRequest(REF window : WindowPtr);
  544.  
  545. |
  546. |  Funktion   : Sorgt dafür, daß Dos-Requester wieder auf der Screen
  547. |               erscheinen, die beim Programmbegin eingetragen war.
  548. |tested
  549. PROCEDURE RestoreSystemRequest;
  550.  
  551. |
  552. |  Funktion   : Sorgt dafür, daß im Falle eines vom User korigierbaren Dos-
  553. |               Errors (z.B. Disk is writeProtected) kein Systemrequester
  554. |               erscheint, sondern die Fehlermeldung unmittelbar vom Programm
  555. |               behandelt werden kann.
  556. |tested
  557. PROCEDURE SysReqOff;
  558.  
  559. |
  560. |  Funktion   : Sorgt dafür, daß Dos-Errors wieder normal behndelt werden.
  561. |  Bemerkung  : Rufen Sie SysReqOn nicht auf, wenn Sie davor nocht SysReqOff
  562. |               benutz haben.
  563. |tested
  564. PROCEDURE SysReqOn;
  565.  
  566. |
  567. |  Funktion   : Wandelt eine Dos-Fehlernummer in einen FileError um
  568. |  Parameter  : error <- DosFehlernummer
  569. |
  570. PROCEDURE FileError2(error : LONGINT):FileErrors;
  571.  
  572.  
  573. |
  574. |  Funktion  : Gibt den zuletzt aufgetretenen Dos-Fehler als FileError zurück
  575. |
  576. |tested
  577. (* $E-*)
  578. PROCEDURE FileError():FileErrors;
  579.  
  580. GROUP
  581.   GlobalGrp   = Delete,Rename,Copy,WorkOnFiles,SetProtect,GetProtect,
  582.                 FileError,FileError2,FileErrors,FileErrTexts,Search;
  583.  
  584.   All         = DirGrp,PathGrp,GlobalGrp;
  585.  
  586. END DosSupport.
  587.