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

  1. unit ifpiir_classes;
  2.  
  3. {$I ifps3_def.inc}
  4. interface
  5. uses
  6.   ifps3, ifps3common, ifps3utl, ifpiclassruntime;
  7. {
  8.   Will register files from:
  9.     Classes (exception TPersistent and TComponent)
  10.  
  11.   Register STD first
  12.  
  13. }
  14.  
  15. procedure RIRegisterTStrings(cl: TIFPSRuntimeClassImporter);
  16. procedure RIRegisterTStringList(cl: TIFPSRuntimeClassImporter);
  17. procedure RIRegisterTBITS(Cl: TIFPSRuntimeClassImporter);
  18. procedure RIRegisterTSTREAM(Cl: TIFPSRuntimeClassImporter);
  19. procedure RIRegisterTHANDLESTREAM(Cl: TIFPSRuntimeClassImporter);
  20. procedure RIRegisterTFILESTREAM(Cl: TIFPSRuntimeClassImporter);
  21. procedure RIRegisterTCUSTOMMEMORYSTREAM(Cl: TIFPSRuntimeClassImporter);
  22. procedure RIRegisterTMEMORYSTREAM(Cl: TIFPSRuntimeClassImporter);
  23. procedure RIRegisterTRESOURCESTREAM(Cl: TIFPSRuntimeClassImporter);
  24. procedure RIRegisterTPARSER(Cl: TIFPSRuntimeClassImporter);
  25.  
  26.  
  27. procedure RIRegister_Classes(Cl: TIFPSRuntimeClassImporter);
  28.  
  29. implementation
  30. uses
  31.   Classes;
  32.  
  33. procedure TStringsCountR(Self: TStrings; var T: Longint); begin T := Self.Count; end;
  34.  
  35. procedure TStringsTextR(Self: TStrings; var T: string); begin T := Self.Text; end;
  36. procedure TStringsTextW(Self: TStrings; T: string); begin Self.Text:= T; end;
  37.  
  38. procedure TStringsCommaTextR(Self: TStrings; var T: string); begin T := Self.CommaText; end;
  39. procedure TStringsCommaTextW(Self: TStrings; T: string); begin Self.CommaText:= T; end;
  40.  
  41. procedure TStringsStringsR(Self: TStrings; var T: string; I: Longint);
  42. begin
  43. T := Self.Strings[I];
  44. end;
  45. procedure TStringsStringsW(Self: TStrings; const T: string; I: Longint);
  46. begin
  47.   Self.Strings[I]:= T;
  48. end;
  49.  
  50. procedure TStringsNamesR(Self: TStrings; var T: string; I: Longint);
  51. begin
  52. T := Self.Names[I];
  53. end;
  54. procedure TStringsValuesR(Self: TStrings; var T: string; const I: string);
  55. begin
  56. T := Self.Values[I];
  57. end;
  58. procedure TStringsValuesW(Self: TStrings; Const T, I: String);
  59. begin
  60.   Self.Values[I]:= T;
  61. end;
  62.  
  63.  
  64. procedure RIRegisterTStrings(cl: TIFPSRuntimeClassImporter); // requires TPersistent
  65. begin
  66.   with Cl.Add(TStrings) do
  67.   begin
  68.     RegisterVirtualMethod(@TStrings.Add, 'ADD');
  69.     RegisterMethod(@TStrings.Append, 'APPEND');
  70.     RegisterVirtualMethod(@TStrings.AddStrings, 'ADDSTRINGS');
  71.     RegisterVirtualAbstractMethod(TStringList, @TStringList.Clear, 'CLEAR');
  72.     RegisterVirtualAbstractMethod(TStringList, @TStringList.Delete, 'DELETE');
  73.     RegisterVirtualMethod(@TStrings.IndexOf, 'INDEXOF');
  74.     RegisterVirtualAbstractMethod(TStringList, @TStringList.Insert, 'INSERT');
  75.     RegisterPropertyHelper(@TStringsCountR, nil, 'COUNT');
  76.     RegisterPropertyHelper(@TStringsTextR, @TStringsTextW, 'TEXT');
  77.     RegisterPropertyHelper(@TStringsCommaTextR, @TStringsCommatextW, 'COMMATEXT');
  78.     RegisterVirtualMethod(@TStrings.LoadFromFile, 'LOADFROMFILE');
  79.     RegisterVirtualMethod(@TStrings.SaveToFile, 'SAVETOFILE');
  80.     RegisterPropertyHelper(@TStringsStringsR, @TStringsStringsW, 'STRINGS');
  81.  
  82.     {$IFNDEF MINIVCL}
  83.     RegisterMethod(@TStrings.BeginUpdate, 'BEGINUPDATE');
  84.     RegisterMethod(@TStrings.EndUpdate, 'ENDUPDATE');
  85.     RegisterMethod(@TStrings.Equals,  'EQUALS');
  86.     RegisterVirtualMethod(@TStrings.Exchange, 'EXCHANGE');
  87.     RegisterMethod(@TStrings.IndexOfName, 'INDEXOFNAME');
  88.     RegisterVirtualMethod(@TStrings.LoadFromStream, 'LOADFROMSTREAM');
  89.     RegisterVirtualMethod(@TStrings.Move, 'MOVE');
  90.     RegisterVirtualMethod(@TStrings.SaveToStream, 'SAVETOSTREAM');
  91.     RegisterVirtualMethod(@TStrings.SetText, 'SETTEXT');
  92.     RegisterPropertyHelper(@TStringsNamesR, nil, 'NAMES');
  93.     RegisterPropertyHelper(@TStringsValuesR, @TStringsValuesW, 'VALUES');
  94.     RegisterVirtualMethod(@TSTRINGS.ADDOBJECT, 'ADDOBJECT');
  95.     RegisterVirtualMethod(@TSTRINGS.GETTEXT, 'GETTEXT');
  96.     RegisterMethod(@TSTRINGS.INDEXOFOBJECT, 'INDEXOFOBJECT');
  97.     RegisterMethod(@TSTRINGS.INSERTOBJECT, 'INSERTOBJECT');
  98.     {$ENDIF}
  99.   end;
  100. end;
  101.  
  102. procedure TSTRINGLISTDUPLICATES_R(Self: TSTRINGLIST; var T: TDUPLICATES); begin T := Self.DUPLICATES; end;
  103. procedure TSTRINGLISTDUPLICATES_W(Self: TSTRINGLIST; const T: TDUPLICATES); begin Self.DUPLICATES := T; end;
  104. procedure TSTRINGLISTSORTED_R(Self: TSTRINGLIST; var T: BOOLEAN); begin T := Self.SORTED; end;
  105. procedure TSTRINGLISTSORTED_W(Self: TSTRINGLIST; const T: BOOLEAN); begin Self.SORTED := T; end;
  106. procedure TSTRINGLISTONCHANGE_R(Self: TSTRINGLIST; var T: TNOTIFYEVENT);
  107. begin
  108. T := Self.ONCHANGE; end;
  109. procedure TSTRINGLISTONCHANGE_W(Self: TSTRINGLIST; const T: TNOTIFYEVENT);
  110. begin
  111. Self.ONCHANGE := T; end;
  112. procedure TSTRINGLISTONCHANGING_R(Self: TSTRINGLIST; var T: TNOTIFYEVENT); begin T := Self.ONCHANGING; end;
  113. procedure TSTRINGLISTONCHANGING_W(Self: TSTRINGLIST; const T: TNOTIFYEVENT); begin Self.ONCHANGING := T; end;
  114. procedure RIRegisterTSTRINGLIST(Cl: TIFPSRuntimeClassImporter);
  115. begin
  116.   with Cl.Add(TSTRINGLIST) do
  117.   begin
  118.     RegisterVirtualMethod(@TSTRINGLIST.FIND, 'FIND');
  119.     RegisterVirtualMethod(@TSTRINGLIST.SORT, 'SORT');
  120.     RegisterPropertyHelper(@TSTRINGLISTDUPLICATES_R, @TSTRINGLISTDUPLICATES_W, 'DUPLICATES');
  121.     RegisterPropertyHelper(@TSTRINGLISTSORTED_R, @TSTRINGLISTSORTED_W, 'SORTED');
  122.     RegisterEventPropertyHelper(@TSTRINGLISTONCHANGE_R, @TSTRINGLISTONCHANGE_W, 'ONCHANGE');
  123.     RegisterEventPropertyHelper(@TSTRINGLISTONCHANGING_R, @TSTRINGLISTONCHANGING_W, 'ONCHANGING');
  124.   end;
  125. end;
  126. procedure TBITSBITS_R(Self: TBITS; T: BOOLEAN; t1: INTEGER); begin Self.BITS[t1] := T; end;
  127. procedure TBITSBITS_W(Self: TBITS; var T: BOOLEAN; t1: INTEGER); begin T := Self.Bits[t1]; end;
  128. procedure TBITSSIZE_R(Self: TBITS; T: INTEGER); begin Self.SIZE := T; end;
  129. procedure TBITSSIZE_W(Self: TBITS; var T: INTEGER); begin T := Self.SIZE; end;
  130.  
  131. procedure RIRegisterTBITS(Cl: TIFPSRuntimeClassImporter);
  132. begin
  133.   with Cl.Add(TBITS) do
  134.   begin
  135.     RegisterMethod(@TBITS.OPENBIT, 'OPENBIT');
  136.     RegisterPropertyHelper(@TBITSBITS_R, @TBITSBITS_W, 'BITS');
  137.     RegisterPropertyHelper(@TBITSSIZE_R, @TBITSSIZE_W, 'SIZE');
  138.   end;
  139. end;
  140.  
  141. procedure TSTREAMPOSITION_R(Self: TSTREAM; T: LONGINT); begin Self.POSITION := T; end;
  142. procedure TSTREAMPOSITION_W(Self: TSTREAM; var T: LONGINT); begin T := Self.POSITION; end;
  143. procedure TSTREAMSIZE_R(Self: TSTREAM; var T: LONGINT); begin t := Self.SIZE; end;
  144.  
  145. procedure RIRegisterTSTREAM(Cl: TIFPSRuntimeClassImporter);
  146. begin
  147.   with Cl.Add(TSTREAM) do
  148.   begin
  149.     RegisterVirtualAbstractMethod(TMemoryStream, @TMemoryStream.READ, 'READ');
  150.     RegisterVirtualAbstractMethod(TMemoryStream, @TMemoryStream.WRITE, 'WRITE');
  151.     RegisterVirtualAbstractMethod(TMemoryStream, @TMemoryStream.SEEK, 'SEEK');
  152.     RegisterMethod(@TSTREAM.READBUFFER, 'READBUFFER');
  153.     RegisterMethod(@TSTREAM.WRITEBUFFER, 'WRITEBUFFER');
  154.     RegisterMethod(@TSTREAM.COPYFROM, 'COPYFROM');
  155.     RegisterPropertyHelper(@TSTREAMPOSITION_R, @TSTREAMPOSITION_W, 'POSITION');
  156.     RegisterPropertyHelper(@TSTREAMSIZE_R, nil, 'SIZE');
  157.   end;
  158. end;
  159.  
  160. procedure THANDLESTREAMHANDLE_R(Self: THANDLESTREAM; var T: INTEGER); begin T := Self.HANDLE; end;
  161.  
  162. procedure RIRegisterTHANDLESTREAM(Cl: TIFPSRuntimeClassImporter);
  163. begin
  164.   with Cl.Add(THANDLESTREAM) do
  165.   begin
  166.     RegisterConstructor(@THANDLESTREAM.CREATE, 'CREATE');
  167.     RegisterPropertyHelper(@THANDLESTREAMHANDLE_R, nil, 'HANDLE');
  168.   end;
  169. end;
  170.  
  171.  
  172.  
  173. procedure RIRegisterTFILESTREAM(Cl: TIFPSRuntimeClassImporter);
  174. begin
  175.   with Cl.Add(TFILESTREAM) do
  176.   begin
  177.     RegisterConstructor(@TFILESTREAM.CREATE, 'CREATE');
  178.   end;
  179. end;
  180.  
  181.  
  182.  
  183. procedure RIRegisterTCUSTOMMEMORYSTREAM(Cl: TIFPSRuntimeClassImporter);
  184. begin
  185.   with Cl.Add(TCUSTOMMEMORYSTREAM) do
  186.   begin
  187.     RegisterMethod(@TCUSTOMMEMORYSTREAM.SAVETOSTREAM, 'SAVETOSTREAM');
  188.     RegisterMethod(@TCUSTOMMEMORYSTREAM.SAVETOFILE, 'SAVETOFILE');
  189.   end;
  190. end;
  191.  
  192.  
  193. procedure RIRegisterTMEMORYSTREAM(Cl: TIFPSRuntimeClassImporter);
  194. begin
  195.   with Cl.Add(TMEMORYSTREAM) do
  196.   begin
  197.     RegisterMethod(@TMEMORYSTREAM.CLEAR, 'CLEAR');
  198.     RegisterMethod(@TMEMORYSTREAM.LOADFROMSTREAM, 'LOADFROMSTREAM');
  199.     RegisterMethod(@TMEMORYSTREAM.LOADFROMFILE, 'LOADFROMFILE');
  200.     RegisterMethod(@TMEMORYSTREAM.SETSIZE, 'SETSIZE');
  201.   end;
  202. end;
  203.  
  204.  
  205.  
  206. procedure RIRegisterTRESOURCESTREAM(Cl: TIFPSRuntimeClassImporter);
  207. begin
  208.   with Cl.Add(TRESOURCESTREAM) do
  209.   begin
  210.     RegisterConstructor(@TRESOURCESTREAM.CREATE, 'CREATE');
  211.     RegisterConstructor(@TRESOURCESTREAM.CREATEFROMID, 'CREATEFROMID');
  212.   end;
  213. end;
  214.  
  215.  
  216.  
  217. procedure TPARSERSOURCELINE_R(Self: TPARSER; var T: INTEGER); begin T := Self.SOURCELINE; end;
  218. procedure TPARSERTOKEN_R(Self: TPARSER; var T: CHAR); begin T := Self.TOKEN; end;
  219.  
  220. procedure RIRegisterTPARSER(Cl: TIFPSRuntimeClassImporter);
  221. begin
  222.   with Cl.Add(TPARSER) do
  223.   begin
  224.     RegisterConstructor(@TPARSER.CREATE, 'CREATE');
  225.     RegisterMethod(@TPARSER.CHECKTOKEN, 'CHECKTOKEN');
  226.     RegisterMethod(@TPARSER.CHECKTOKENSYMBOL, 'CHECKTOKENSYMBOL');
  227.     RegisterMethod(@TPARSER.ERROR, 'ERROR');
  228.     RegisterMethod(@TPARSER.ERRORSTR, 'ERRORSTR');
  229.     RegisterMethod(@TPARSER.HEXTOBINARY, 'HEXTOBINARY');
  230.     RegisterMethod(@TPARSER.NEXTTOKEN, 'NEXTTOKEN');
  231.     RegisterMethod(@TPARSER.SOURCEPOS, 'SOURCEPOS');
  232.     RegisterMethod(@TPARSER.TOKENCOMPONENTIDENT, 'TOKENCOMPONENTIDENT');
  233.     RegisterMethod(@TPARSER.TOKENFLOAT, 'TOKENFLOAT');
  234.     RegisterMethod(@TPARSER.TOKENINT, 'TOKENINT');
  235.     RegisterMethod(@TPARSER.TOKENSTRING, 'TOKENSTRING');
  236.     RegisterMethod(@TPARSER.TOKENSYMBOLIS, 'TOKENSYMBOLIS');
  237.     RegisterPropertyHelper(@TPARSERSOURCELINE_R, nil, 'SOURCELINE');
  238.     RegisterPropertyHelper(@TPARSERTOKEN_R, nil, 'TOKEN');
  239.   end;
  240. end;
  241.  
  242. procedure RIRegister_Classes(Cl: TIFPSRuntimeClassImporter);
  243. begin
  244.   {$IFNDEF MINIVCL}
  245.   RIRegisterTSTREAM(Cl);
  246.   {$ENDIF}
  247.   RIRegisterTStrings(cl);
  248.   RIRegisterTStringList(cl);
  249.   {$IFNDEF MINIVCL}
  250.   RIRegisterTBITS(cl);
  251.   RIRegisterTHANDLESTREAM(Cl);
  252.   RIRegisterTMEMORYSTREAM(Cl);
  253.   RIRegisterTFILESTREAM(Cl);
  254.   RIRegisterTCUSTOMMEMORYSTREAM(Cl);
  255.   RIRegisterTRESOURCESTREAM(Cl);
  256.   RIRegisterTPARSER(Cl);
  257.   {$ENDIF}
  258. end;
  259.  
  260. // MiniVCL changes by Martijn Laan (mlaan at wintax _dot_ nl)
  261.  
  262.  
  263. end.
  264.