home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 November / Chip_2002-11_cd1.bin / zkuste / delphi / kompon / d456 / CAJSCRPT.ZIP / ifps3 / ifpii_classes.pas < prev    next >
Pascal/Delphi Source File  |  2002-07-06  |  10KB  |  241 lines

  1. unit ifpii_classes;
  2.  
  3. {$I ifps3_def.inc}
  4. interface
  5. uses
  6.   ifpscomp, ifps3common, ifps3utl, ifpiclass;
  7.  
  8. {
  9.   Will register files from:
  10.     Classes (exception TPersistent and TComponent)
  11.  
  12.   Register STD first
  13.  
  14. }
  15. procedure SIRegister_Classes_TypesAndConsts(Cl: TIFPSCompileTimeClassesImporter);
  16.  
  17. procedure SIRegisterTStrings(cl: TIFPSCompileTimeClassesImporter);
  18. procedure SIRegisterTStringList(cl: TIFPSCompileTimeClassesImporter);
  19. procedure SIRegisterTBITS(Cl: TIFPSCompileTimeClassesImporter);
  20. procedure SIRegisterTSTREAM(Cl: TIFPSCompileTimeClassesImporter);
  21. procedure SIRegisterTHANDLESTREAM(Cl: TIFPSCompileTimeClassesImporter);
  22. procedure SIRegisterTMEMORYSTREAM(Cl: TIFPSCompileTimeClassesImporter);
  23. procedure SIRegisterTFILESTREAM(Cl: TIFPSCompileTimeClassesImporter);
  24. procedure SIRegisterTCUSTOMMEMORYSTREAM(Cl: TIFPSCompileTimeClassesImporter);
  25. procedure SIRegisterTRESOURCESTREAM(Cl: TIFPSCompileTimeClassesImporter);
  26. procedure SIRegisterTPARSER(Cl: TIFPSCompileTimeClassesImporter);
  27.  
  28. procedure SIRegister_Classes(Cl: TIFPSCompileTimeClassesImporter);
  29.  
  30. implementation
  31. uses
  32.   Classes;
  33.  
  34. procedure SIRegisterTStrings(cl: TIFPSCompileTimeClassesImporter); // requires TPersistent
  35. begin
  36.   with Cl.Add(cl.FindClass('TPersistent'), TStrings) do
  37.   begin
  38.     RegisterMethod('function Add(S: string): Integer;');
  39.     RegisterMethod('procedure Append(S: string);');
  40.     RegisterMethod('procedure AddStrings(Strings: TStrings);');
  41.     RegisterMethod('procedure Clear;');
  42.     RegisterMethod('procedure Delete(Index: Integer);');
  43.     RegisterMethod('function IndexOf(const S: string): Integer; ');
  44.     RegisterMethod('procedure Insert(Index: Integer; S: string); ');
  45.     RegisterProperty('Count', 'Integer', iptR);
  46.     RegisterProperty('Text', 'String', iptrw);
  47.     RegisterProperty('CommaText', 'String', iptrw);
  48.     RegisterMethod('procedure LoadFromFile(FileName: string); ');
  49.     RegisterMethod('procedure SaveToFile(FileName: string); ');
  50.     RegisterProperty('Strings', 'String Integer', iptRW);
  51.  
  52.     {$IFNDEF MINIVCL}
  53.     RegisterMethod('procedure BeginUpdate;');
  54.     RegisterMethod('procedure EndUpdate;');
  55.     RegisterMethod('function Equals(Strings: TStrings): Boolean;');
  56.     RegisterMethod('procedure Exchange(Index1, Index2: Integer);');
  57.     RegisterMethod('function IndexOfName(Name: string): Integer;');
  58.     RegisterMethod('procedure LoadFromStream(Stream: TStream); ');
  59.     RegisterMethod('procedure Move(CurIndex, NewIndex: Integer); ');
  60.     RegisterMethod('procedure SaveToStream(Stream: TStream); ');
  61.     RegisterMethod('procedure SetText(Text: PChar); ');
  62.     RegisterProperty('Names', 'String Integer', iptrw);
  63.     RegisterProperty('Values', 'String String', iptRW);
  64.     RegisterMethod('function ADDOBJECT(S:STRING;AOBJECT:TOBJECT):INTEGER');
  65.     RegisterMethod('procedure APPEND(S:STRING)');
  66.     RegisterMethod('function GETTEXT:PCHAR');
  67.     RegisterMethod('function INDEXOFOBJECT(AOBJECT:TOBJECT):INTEGER');
  68.     RegisterMethod('procedure INSERTOBJECT(INDEX:INTEGER;S:STRING;AOBJECT:TOBJECT)');
  69.     {$ENDIF}
  70.   end;
  71. end;
  72.  
  73. procedure SIRegisterTSTRINGLIST(Cl: TIFPSCompileTimeClassesImporter);
  74. begin
  75.   with Cl.Add(cl.FindClass('TSTRINGS'), TSTRINGLIST) do
  76.   begin
  77.     RegisterMethod('function FIND(S:STRING;var INDEX:INTEGER):BOOLEAN');
  78.     RegisterMethod('procedure SORT');
  79.     RegisterProperty('DUPLICATES', 'TDUPLICATES', iptrw);
  80.     RegisterProperty('SORTED', 'BOOLEAN', iptrw);
  81.     RegisterProperty('ONCHANGE', 'TNOTIFYEVENT', iptrw);
  82.     RegisterProperty('ONCHANGING', 'TNOTIFYEVENT', iptrw);
  83.   end;
  84. end;
  85.  
  86.  
  87.  
  88.  
  89. procedure SIRegisterTBITS(Cl: TIFPSCompileTimeClassesImporter);
  90. begin
  91.   with Cl.Add(cl.FindClass('TObject'), TBITS) do
  92.   begin
  93.     RegisterMethod('function OPENBIT:INTEGER');
  94.     RegisterProperty('BITS:INTEGER', 'BOOLEAN INTEGER', iptrw);
  95.     RegisterProperty('SIZE', 'INTEGER', iptrw);
  96.   end;
  97. end;
  98.  
  99. procedure SIRegisterTSTREAM(Cl: TIFPSCompileTimeClassesImporter);
  100. begin
  101.   with Cl.Add(cl.FindClass('TOBJECT'), TSTREAM) do
  102.   begin
  103.     RegisterMethod('function READ(BUFFER:STRING;COUNT:LONGINT):LONGINT');
  104.     RegisterMethod('function WRITE(BUFFER:STRING;COUNT:LONGINT):LONGINT');
  105.     RegisterMethod('function SEEK(OFFSET:LONGINT;ORIGIN:WORD):LONGINT');
  106.     RegisterMethod('procedure READBUFFER(BUFFER:STRING;COUNT:LONGINT)');
  107.     RegisterMethod('procedure WRITEBUFFER(BUFFER:STRING;COUNT:LONGINT)');
  108.     RegisterMethod('function COPYFROM(SOURCE:TSTREAM;COUNT:LONGINT):LONGINT');
  109.     RegisterProperty('POSITION', 'LONGINT', iptrw);
  110.     RegisterProperty('SIZE', 'LONGINT', iptr);
  111.   end;
  112. end;
  113.  
  114. procedure SIRegisterTHANDLESTREAM(Cl: TIFPSCompileTimeClassesImporter);
  115. begin
  116.   with Cl.Add(cl.FindClass('TSTREAM'), THANDLESTREAM) do
  117.   begin
  118.     RegisterMethod('constructor CREATE(AHANDLE:INTEGER)');
  119.     RegisterProperty('HANDLE', 'INTEGER', iptr);
  120.   end;
  121. end;
  122.  
  123. procedure SIRegisterTMEMORYSTREAM(Cl: TIFPSCompileTimeClassesImporter);
  124. begin
  125.   with Cl.Add(cl.FindClass('TCUSTOMMEMORYSTREAM'), TMEMORYSTREAM) do
  126.   begin
  127.     RegisterMethod('procedure CLEAR');
  128.     RegisterMethod('procedure LOADFROMSTREAM(STREAM:TSTREAM)');
  129.     RegisterMethod('procedure LOADFROMFILE(FILENAME:STRING)');
  130.     RegisterMethod('procedure SETSIZE(NEWSIZE:LONGINT)');
  131.   end;
  132. end;
  133.  
  134. procedure SIRegisterTFILESTREAM(Cl: TIFPSCompileTimeClassesImporter);
  135. begin
  136.   with Cl.Add(cl.FindClass('THANDLESTREAM'), TFILESTREAM) do
  137.   begin
  138.     RegisterMethod('constructor CREATE(FILENAME:STRING;MODE:WORD)');
  139.   end;
  140. end;
  141.  
  142. procedure SIRegisterTCUSTOMMEMORYSTREAM(Cl: TIFPSCompileTimeClassesImporter);
  143. begin
  144.   with Cl.Add(cl.FindClass('TSTREAM'), TCUSTOMMEMORYSTREAM) do
  145.   begin
  146.     RegisterMethod('procedure SAVETOSTREAM(STREAM:TSTREAM)');
  147.     RegisterMethod('procedure SAVETOFILE(FILENAME:STRING)');
  148.   end;
  149. end;
  150.  
  151. procedure SIRegisterTRESOURCESTREAM(Cl: TIFPSCompileTimeClassesImporter);
  152. begin
  153.   with Cl.Add(cl.FindClass('TCUSTOMMEMORYSTREAM'), TRESOURCESTREAM) do
  154.   begin
  155.     RegisterMethod('constructor CREATE(INSTANCE:THANDLE;RESNAME:STRING;RESTYPE:PCHAR)');
  156.     RegisterMethod('constructor CREATEFROMID(INSTANCE:THANDLE;RESID:INTEGER;RESTYPE:PCHAR)');
  157.   end;
  158. end;
  159.  
  160. procedure SIRegisterTPARSER(Cl: TIFPSCompileTimeClassesImporter);
  161. begin
  162.   with Cl.Add(cl.FindClass('TOBJECT'), TPARSER) do
  163.   begin
  164.     RegisterMethod('constructor CREATE(STREAM:TSTREAM)');
  165.     RegisterMethod('procedure CHECKTOKEN(T:CHAR)');
  166.     RegisterMethod('procedure CHECKTOKENSYMBOL(S:STRING)');
  167.     RegisterMethod('procedure ERROR(IDENT:INTEGER)');
  168.     RegisterMethod('procedure ERRORSTR(MESSAGE:STRING)');
  169.     RegisterMethod('procedure HEXTOBINARY(STREAM:TSTREAM)');
  170.     RegisterMethod('function NEXTTOKEN:CHAR');
  171.     RegisterMethod('function SOURCEPOS:LONGINT');
  172.     RegisterMethod('function TOKENCOMPONENTIDENT:STRING');
  173.     RegisterMethod('function TOKENFLOAT:EXTENDED');
  174.     RegisterMethod('function TOKENINT:LONGINT');
  175.     RegisterMethod('function TOKENSTRING:STRING');
  176.     RegisterMethod('function TOKENSYMBOLIS(S:STRING):BOOLEAN');
  177.     RegisterProperty('SOURCELINE', 'INTEGER', iptr);
  178.     RegisterProperty('TOKEN', 'CHAR', iptr);
  179.   end;
  180. end;
  181.  
  182. procedure SIRegister_Classes_TypesAndConsts(Cl: TIFPSCompileTimeClassesImporter);
  183. begin
  184.   Cl.SE.AddConstantN('soFromBeginning', 'Longint')^.Value.Value := TransLongintToStr(0);
  185.   Cl.SE.AddConstantN('soFromCurrent', 'Longint')^.Value.Value := TransLongintToStr(1);
  186.   Cl.SE.AddConstantN('soFromEnd', 'Longint')^.Value.Value := TransLongintToStr(2);
  187.   Cl.SE.AddConstantN('fmCreate', 'Longint')^.Value.Value := TransLongintToStr($FFFF);
  188.   Cl.SE.AddConstantN('toEOF', 'Char')^.Value.Value := #0;
  189.   Cl.SE.AddConstantN('toSymbol', 'Char')^.Value.Value := #1;
  190.   Cl.SE.AddConstantN('toString', 'Char')^.Value.Value := #2;
  191.   Cl.SE.AddConstantN('toInteger', 'Char')^.Value.Value := #3;
  192.   Cl.SE.AddConstantN('toFloat', 'Char')^.Value.Value := #4;
  193.   Cl.SE.AddConstantN('ssShift', 'Byte')^.Value.Value := #1;
  194.   Cl.SE.AddConstantN('ssAlt', 'Byte')^.Value.Value := #2;
  195.   Cl.SE.AddConstantN('ssCtrl', 'Byte')^.Value.Value := #4;
  196.   Cl.SE.AddConstantN('ssLeft', 'Byte')^.Value.Value := #8;
  197.   Cl.SE.AddConstantN('ssRight', 'Byte')^.Value.Value := #16;
  198.   Cl.SE.AddConstantN('ssMiddle', 'Byte')^.Value.Value := #32;
  199.   Cl.SE.AddConstantN('ssDouble', 'Byte')^.Value.Value := #64;
  200.   Cl.SE.AddConstantN('fmOpenRead', 'Longint')^.Value.Value := #0#0#0#0;
  201.   Cl.SE.AddConstantN('fmOpenWrite', 'Longint')^.Value.Value := #1#0#0#0;
  202.   Cl.SE.AddConstantN('fmOpenReadWrite', 'Longint')^.Value.Value := #2#0#0#0;
  203.   Cl.SE.AddConstantN('fmShareCompat', 'Longint')^.Value.Value := #0#0#0#0;
  204.   Cl.SE.AddConstantN('fmShareExclusive', 'Longint')^.Value.Value := #$10#0#0#0;
  205.   Cl.SE.AddConstantN('fmShareDenyWrite', 'Longint')^.Value.Value := #$20#0#0#0;
  206.   Cl.SE.AddConstantN('SecsPerDay', 'Longint')^.Value.Value := TransLongintToStr(86400);
  207.   Cl.SE.AddConstantN('MSecPerDay', 'Longint')^.Value.Value := TransLongintToStr(86400000);
  208.   Cl.SE.AddConstantN('DateDelta', 'Longint')^.Value.Value := TransLongintToStr(693594);
  209.   cl.SE.AddTypeS('TAlignment', '(taLeftJustify, taRightJustify, taCenter)');
  210.   cl.Se.AddTypeS('THelpEvent', 'function (Command: Word; Data: Longint; var CallHelp: Boolean): Boolean');
  211.   Cl.Se.AddTypeS('TGetStrProc', 'procedure(const S: string)');
  212.   cl.se.AddTypeS('TDuplicates', '(dupIgnore, dupAccept, dupError)');
  213.   cl.se.AddTypeS('TOperation', '(opInsert, opRemove)');
  214.  
  215.   cl.se.AddTypeS('TNotifyEvent', 'procedure (Sender: TObject)');
  216. end;
  217.  
  218. procedure SIRegister_Classes(Cl: TIFPSCompileTimeClassesImporter);
  219. begin
  220.   SIRegister_Classes_TypesAndConsts(Cl);
  221.   {$IFNDEF MINIVCL}
  222.   SIRegisterTSTREAM(Cl);
  223.   {$ENDIF}
  224.   SIRegisterTStrings(cl);
  225.   SIRegisterTStringList(cl);
  226.   {$IFNDEF MINIVCL}
  227.   SIRegisterTBITS(cl);
  228.   SIRegisterTHANDLESTREAM(Cl);
  229.   SIRegisterTMEMORYSTREAM(Cl);
  230.   SIRegisterTFILESTREAM(Cl);
  231.   SIRegisterTCUSTOMMEMORYSTREAM(Cl);
  232.   SIRegisterTRESOURCESTREAM(Cl);
  233.   SIRegisterTPARSER(Cl);
  234.   {$ENDIF}
  235. end;
  236.  
  237. // MiniVCL changes by Martijn Laan (mlaan at wintax _dot_ nl)
  238.  
  239.  
  240. end.
  241.