home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Multimed / Multimed.zip / mp3osr05.zip / src / macroztv.pas < prev    next >
Pascal/Delphi Source File  |  1999-12-25  |  2KB  |  80 lines

  1. unit MacrozTV;
  2.  
  3. interface
  4.  
  5. uses
  6.   Objects, Macroz, Wizard
  7.   {$IFDEF virtualpascal} {$IFDEF os2}, Use32 {$ENDIF} {$ENDIF}
  8.   ;
  9.  
  10. type
  11.   PMacrosCollection = ^TMacrosCollection;
  12.   TMacrosCollection = object(TCollection)
  13.     procedure FreeItem(Item: Pointer); virtual;
  14.   end;
  15.  
  16.   PMacrosEngine = ^TMacrosEngine;
  17.   TMacrosEngine = object(TMacros)
  18.     Container: PMacrosCollection;
  19.     procedure AddAdditionalMacros; virtual;
  20.     procedure ContainerInit; virtual;
  21.     function ContainerSize: LongInt; virtual;
  22.     function ContainerAt(Index: LongInt): PMacro; virtual;
  23.     procedure ContainerInsert(Macro: PMacro); virtual;
  24.     procedure ContainerFree(Macro: PMacro); virtual;
  25.     procedure ContainerDone; virtual;
  26.   end;
  27.  
  28. implementation
  29.  
  30. procedure TMacrosCollection.FreeItem(Item: Pointer);
  31. begin
  32.   Dispose(PMacro(Item), Done);
  33. end;
  34.  
  35. procedure TMacrosEngine.AddAdditionalMacros;
  36. var
  37.   Day, Month, Year, Hour, Min, Sec: System.Word;
  38. begin
  39.   IWannaTime(Hour, Min, Sec);
  40.   IWannaDate(Day, Month, Year);
  41.   AddMacro('@curhour', LeftPadCh(Long2Str(Hour), '0', 2), mcUser);
  42.   AddMacro('@curmin', LeftPadCh(Long2Str(Min), '0', 2), mcUser);
  43.   AddMacro('@cursec', LeftPadCh(Long2Str(Sec), '0', 2), mcUser);
  44.   AddMacro('@curday', LeftPadCh(Long2Str(Day), '0', 2), mcUser);
  45.   AddMacro('@curmonth', LeftPadCh(Long2Str(Month), '0', 2), mcUser);
  46.   AddMacro('@curyear', LeftPadCh(Long2Str(Year), '0', 2), mcUser);
  47. end;
  48.  
  49. procedure TMacrosEngine.ContainerInit;
  50. begin
  51.   Container := New(PMacrosCollection, Init(32, 32));
  52. end;
  53.  
  54. function TMacrosEngine.ContainerSize: LongInt;
  55. begin
  56.   ContainerSize := Container^.Count;
  57. end;
  58.  
  59. function TMacrosEngine.ContainerAt(Index: LongInt): PMacro;
  60. begin
  61.   ContainerAt := Container^.At(Index - 1);
  62. end;
  63.  
  64. procedure TMacrosEngine.ContainerInsert(Macro: PMacro);
  65. begin
  66.   Container^.Insert(Macro);
  67. end;
  68.  
  69. procedure TMacrosEngine.ContainerFree(Macro: PMacro);
  70. begin
  71.   Container^.Free(Macro);
  72. end;
  73.  
  74. procedure TMacrosEngine.ContainerDone;
  75. begin
  76.   Dispose(Container, Done);
  77. end;
  78.  
  79. end.
  80.