home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 19 / CD_ASCQ_19_010295.iso / dos / prg / pas / ktools / source / calend.pas < prev    next >
Pascal/Delphi Source File  |  1994-11-12  |  3KB  |  133 lines

  1. Program Calend;
  2. { calendrier }
  3. { K.B. 1994 }
  4.  
  5. {.$DEFINE debug}
  6.  
  7. {$IFDEF debug}
  8.  {$A+,B-,D+,E-,F-,I+,L+,N-,R+,S+,V-,W+,X+}
  9. {$ELSE}
  10.  {$A+,B-,D-,E-,F-,I+,L-,N-,R-,S-,V-,W+,X+}
  11. {$ENDIF}
  12.  
  13. Uses Dos,UMem,UDrivers,OTableau,
  14.      OGenView,OTxtView,OCalend,ODialWin,OHelpWin;
  15.  
  16. Const
  17.  erInit = 100;
  18.  
  19. Type
  20.  TCalendApp=object(TTextApp)
  21.   Constructor Init;
  22.   Procedure InitStatusLine;virtual;
  23.   Procedure HandleEvent(Var Event:TEvent);virtual;
  24.   End;
  25.  
  26. Constructor TCalendApp.Init;
  27. Var W : PCalendWin;
  28. Begin
  29.  TTextApp.Init;
  30.  Titre:='CALENDRIER (K.B. novembre 1994)';
  31.  W:=New(PCalendWin,Init);
  32.  if W^.IsValid
  33.     then begin
  34.           Insert(W);
  35.           W^.Select;
  36.          end
  37.     else begin
  38.           ErrorFlag:=erInit;
  39.           SetCommand(cmQuit);
  40.          end;
  41. End;
  42.  
  43. Procedure TCalendApp.InitStatusLine;
  44. Begin
  45.  TTextApp.InitStatusLine;
  46.  with StatusLine^ do
  47.   begin
  48.    AjouterItem('F1 Aide',F1);
  49.    AjouterItem('AltX Quitter',AltX);
  50.    AjouterItem('? A Propos',ord('?'));
  51.   end;
  52. End;
  53.  
  54. Procedure TCalendApp.HandleEvent(Var Event:TEvent);
  55. Var W:PCalendWin;
  56.     H:PHelpWin;
  57. Begin
  58.  if (Event.What=evCommand) and (Event.Command=cmClose)
  59.     then Event.What:=evNothing;
  60.  if (Event.What=evCommand) and (Event.Command=cmQuit)
  61.     and not IsValid
  62.     then Message('Erreur d''initialisation du calendrier.');
  63.  TTextApp.HandleEvent(Event);
  64.  case Event.What of
  65.   evKeyDown:
  66.     case Event.KeyCode of
  67.      F1:
  68.       begin
  69.        H:=new(PHelpWin,Init(AppPath+'calend.hlp'));
  70.        if H^.IsValid
  71.           then begin
  72.                 Insert(H);
  73.                 H^.Exec;
  74.                 dispose(H,Done);
  75.                end
  76.           else begin
  77.                 Message(H^.GetErrorMsg);
  78.                 dispose(H,done);
  79.                end;
  80.       end;
  81.      ord('?'): Message(chr(13)+
  82.                  '         CALENDRIER 1.0         '+chr(13)+
  83.                  '     Kostrzewa Bruno (1994)     '+chr(13));
  84.      else exit;
  85.     end;
  86.   else exit;
  87.   end;
  88.  Event.What:=evNothing;
  89. End;
  90.  
  91. Procedure Alarme;
  92. Var w1,w2,w3,w4 : Word;
  93.     Table : PStrTab;
  94.     S : String;
  95. Begin
  96.  GetDate(w1,w2,w3,w4);
  97.  Table:=MakeCal(w1);
  98.  S:=Table^.Ligne(NumJour(w3,w2,w1));
  99.  writeln(TabJours[w4],' ',w3,' ',TabMois[w2],' ',w1);
  100.  if S<>''
  101.     then begin
  102.           writeln(S);
  103.           write(#7,#7,#7);
  104.           w4:=GetReadKey;
  105.           dispose(Table,Done);
  106.          end;
  107. End;
  108.  
  109. Var MonApp:TCalendApp;
  110.     b:Byte;
  111. Begin
  112.  {$ifdef debug}
  113.  initmem;
  114.  {$endif}
  115.  if ParamCount>0
  116.     then begin
  117.           if ParamStr(1)<>'/A'
  118.              then writeln('Utiliser le paramètre /A.');
  119.           Alarme;
  120.           halt(0);
  121.          end;
  122.  MonApp.Init;
  123.  b:=MonApp.Exec;
  124.  if b<>1
  125.     then writeln(MonApp.GetErrorMsg);
  126.  MonApp.Done;
  127.  {$ifdef debug}
  128.  diagmem;
  129.  {$endif}
  130. End.
  131.  
  132. {                         Fin du fichier Calend.Pas                         }
  133.