Program NewMenu; {$M $4000,0,$2000 } Uses CRT, FastTTT5, DOS, WinTTT5, KeyTTT5, MenuTTT5, MiscTTT5; CONST ErrorMsg : Array[2..18] OF String[20]=('File not found','Path not found', '','Access Denied','Invalid Handle','','Not enough Memory','', 'Invalid environment','Invalid format','','','','','','', 'No more files'); var M : menu_record; Choice, Retcode : integer; Ch : char; F : Text; j,nbr : Byte; TopicArray : Array [1..12] OF String[30]; DoItArray : Array [1..12] OF String[80]; begin ClockX := 65; ClockY := 2; ClockF := lightgray; ClockB := blue; Assign_Idle_Hook(Clock); OffCursor; nbr := 0; Assign(F,'cmmenu.txt'); Reset(F); IF IoResult = 0 THEN BEGIN WHILE NOT EOF(F) DO BEGIN Inc(nbr); Readln(F,TopicArray[nbr]); Readln(F,DoitArray[nbr]); END; Close(F); END ELSE BEGIN TempMessageBox(30,13,red,yellow,2,'Can''t Find CMMENU.TXT'); Halt; END; Choice := 1; Menu_Set(M); With M do begin Heading1 := 'Program Selection'; Heading2 := 'Press Enter to Select'; TotalPicks := nbr; AddPrefix := 1; end; FOR j:=1 TO nbr DO M.Topic[j] := TopicArray[j]; REPEAT Clrscr; WriteCenter(1,black,cyan,Date); WriteCenter(24,yellow,black,'ANL Electron Microscopy Center'); DisplayMenu(M,true,Choice,Retcode); GotoXY(1,20); SwapVectors; IF Choice = 1 THEN BEGIN clrscr; ch := Readkey; END; IF Choice = nbr THEN BEGIN SwapVectors; OnCursor; Exit; END ELSE Exec(DoItArray[Choice],''); SwapVectors; IF choice > 1 THEN IF DosError <> 0 THEN TempMessageBox(30,13,yellow,red,2,ErrorMsg[DosError]); UNTIL Choice=nbr; Reset_StartUp_Mode; Clrscr; end.