Explorar el Código

* Convert to webproject, demo enumerator for collection and stringlist

michael hace 7 años
padre
commit
4bd0bc76bb

+ 11 - 4
demo/rtl/democollection.lpi

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <CONFIG>
   <ProjectOptions>
-    <Version Value="10"/>
+    <Version Value="11"/>
     <General>
       <Flags>
         <MainUnitHasCreateFormStatements Value="False"/>
@@ -13,6 +13,12 @@
       <UseAppBundle Value="False"/>
       <ResourceType Value="res"/>
     </General>
+    <CustomData Count="4">
+      <Item0 Name="PasJSPort" Value="0"/>
+      <Item1 Name="PasJSURL"/>
+      <Item2 Name="PasJSWebBrowserProject" Value="1"/>
+      <Item3 Name="PJSProjectHTMLFile" Value="democollection.html"/>
+    </CustomData>
     <BuildModes Count="1">
       <Item1 Name="Default" Default="True"/>
     </BuildModes>
@@ -20,9 +26,10 @@
       <Version Value="2"/>
     </PublishOptions>
     <RunParams>
-      <local>
-        <FormatVersion Value="1"/>
-      </local>
+      <FormatVersion Value="2"/>
+      <Modes Count="1">
+        <Mode0 Name="default"/>
+      </Modes>
     </RunParams>
     <RequiredPackages Count="1">
       <Item1>

+ 19 - 2
demo/rtl/democollection.pas

@@ -58,6 +58,23 @@ begin
   Writeln('Fruit collection: ',s);
 end;
 
+Procedure DumpCollection2(C : TMyCollectionItems);
+
+Var
+  S : String;
+  Itm : TCollectionItem;
+
+begin
+  S:='';
+  For Itm in C do
+    begin
+    If S<>'' then
+      S:=S+', ';
+    S:=S+'['+IntToStr(Itm.Index)+'] : '+TMyCollectionItem(Itm).MyName;
+    end;
+  Writeln('Fruit collection: ',s);
+end;
+
 {
   Const
   MyNames : Array [1..10] of string
@@ -102,9 +119,9 @@ begin
   DumpCollection(MyC);
   Writeln('Prefer banana over pear');
   MyC.Exchange(1,2);
-  DumpCollection(MyC);
+  DumpCollection2(MyC);
   Writeln('Indigestion, no more fruit');
   MyC.Clear;
-  DumpCollection(MyC);
+  DumpCollection2(MyC);
 end.
 

+ 13 - 0
demo/rtl/demostringlist.html

@@ -0,0 +1,13 @@
+<html>
+  <head>
+    <title>Stringlist demo</title>
+    <script type="application/javascript" src="demostringlist.js"></script>
+  </head>
+  <body>
+    <div id="pasjsconsole"></div>
+    <script type="application/javascript">
+     rtl.run();
+    </script>
+  </body>
+</html>
+  

+ 81 - 0
demo/rtl/demostringlist.lpi

@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CONFIG>
+  <ProjectOptions>
+    <Version Value="11"/>
+    <General>
+      <Flags>
+        <MainUnitHasCreateFormStatements Value="False"/>
+        <MainUnitHasTitleStatement Value="False"/>
+        <MainUnitHasScaledStatement Value="False"/>
+        <Runnable Value="False"/>
+      </Flags>
+      <SessionStorage Value="InProjectDir"/>
+      <MainUnit Value="0"/>
+      <Title Value="demostringlist"/>
+      <UseAppBundle Value="False"/>
+      <ResourceType Value="res"/>
+    </General>
+    <CustomData Count="4">
+      <Item0 Name="PasJSPort" Value="0"/>
+      <Item1 Name="PasJSURL"/>
+      <Item2 Name="PasJSWebBrowserProject" Value="1"/>
+      <Item3 Name="PJSProjectHTMLFile" Value="demostringlist.html"/>
+    </CustomData>
+    <BuildModes Count="1">
+      <Item1 Name="Default" Default="True"/>
+    </BuildModes>
+    <PublishOptions>
+      <Version Value="2"/>
+    </PublishOptions>
+    <RunParams>
+      <FormatVersion Value="2"/>
+      <Modes Count="0"/>
+    </RunParams>
+    <RequiredPackages Count="1">
+      <Item1>
+        <PackageName Value="pas2js_rtl"/>
+      </Item1>
+    </RequiredPackages>
+    <Units Count="2">
+      <Unit0>
+        <Filename Value="demostringlist.pas"/>
+        <IsPartOfProject Value="True"/>
+      </Unit0>
+      <Unit1>
+        <Filename Value="demostringlist.html"/>
+        <IsPartOfProject Value="True"/>
+      </Unit1>
+    </Units>
+  </ProjectOptions>
+  <CompilerOptions>
+    <Version Value="11"/>
+    <Target>
+      <Filename Value="demostringlist"/>
+    </Target>
+    <SearchPaths>
+      <UnitOutputDirectory Value="js"/>
+    </SearchPaths>
+    <Other>
+      <CompilerPath Value=""/>
+      <ExecuteBefore>
+        <Command Value="&quot;$MakeExe(IDE,pas2js)&quot; -Jirtl.js -Jc -Jminclude -Tbrowser &quot;-Fu$(ProjUnitPath)&quot; $Name($(ProjFile))"/>
+        <ScanForFPCMsgs Value="True"/>
+        <ScanForMakeMsgs Value="True"/>
+      </ExecuteBefore>
+    </Other>
+    <CompileReasons Compile="False" Build="False" Run="False"/>
+  </CompilerOptions>
+  <Debugging>
+    <Exceptions Count="3">
+      <Item1>
+        <Name Value="EAbort"/>
+      </Item1>
+      <Item2>
+        <Name Value="ECodetoolError"/>
+      </Item2>
+      <Item3>
+        <Name Value="EFOpenError"/>
+      </Item3>
+    </Exceptions>
+  </Debugging>
+</CONFIG>

+ 7 - 3
demo/rtl/demostringlist.pas

@@ -1,12 +1,13 @@
 {$mode objfpc}
 {$H+}
-uses sysutils,classes;
+uses browserconsole,sysutils,classes;
 
 Var
   L : TStringList;
   I : Integer;
   //S : TJSString;
-  
+  S : String;
+
 begin
   L:=TStringList.Create;
   for I:=0 to 10 do
@@ -28,5 +29,8 @@ begin
   Writeln('After sort : ',L.CommaText);
   //S:=TJSString.new('abc');
   //Writeln(S.toUpperCase);
+  Writeln('For in loop:');
+  for S in L do
+    Writeln(S);
   
-end.  
+end.