Prechádzať zdrojové kódy

* Added tcollection stream read tests

git-svn-id: branches/cleanroom@10370 -
michael 17 rokov pred
rodič
commit
a689357cc2
3 zmenil súbory, kde vykonal 512 pridanie a 152 odobranie
  1. 237 1
      rtl/tests/tccompstreaming.pp
  2. 252 21
      rtl/tests/testclasses.lpi
  3. 23 130
      rtl/tests/tstrutils.lpi

+ 237 - 1
rtl/tests/tccompstreaming.pp

@@ -3,7 +3,7 @@ Unit tccompstreaming;
 interface
 
 Uses
-  SysUtils,Classes,tcstreaming;
+  SysUtils,Classes,tcstreaming,fpcunit, testregistry;
 
 Type 
   TTestComponentStream = Class(TTestStreaming)
@@ -51,6 +51,61 @@ Type
     Procedure TestTMethodComponent;
     Procedure TestTMethodComponent2;
   end;
+  { TMyItem }
+
+  TMyItem = Class(TCollectionItem)
+  private
+    FNR: Integer;
+    FStr: String;
+  Public
+    Procedure Assign(Source : TPersistent); override;
+  Published
+    Property Nr : Integer Read FNR Write FNR;
+    Property Str: String Read FStr Write FStr;
+  end;
+
+  { TMyColl }
+
+  TMyColl = Class(TCollection)
+  private
+    function GetIt(index : Integer): TMyItem;
+    procedure SetIt(index : Integer; const AValue: TMyItem);
+  Public
+    Property It[index : Integer] : TMyItem Read GetIt Write SetIt; default;
+  end;
+
+  { TCollComp }
+
+  TCollComp = Class(TComponent)
+  private
+    FMyColl: TMyColl;
+    procedure SetMyColl(const AValue: TMyColl);
+  Public
+    Constructor Create(AOwner : TComponent); override;
+    Destructor Destroy; override;
+    Function ToStream : TStream;
+    Procedure FromStream(AStream : TStream);
+  Published
+    Property MyColl : TMyColl Read FMyColl Write SetMyColl;
+  end;
+
+
+  { TTestCollectionStream }
+
+  TTestCollectionStream = Class(TTestCase)
+
+  private
+    procedure CompareColl(CA, CB: TMyCOll);
+    function CreateColl(Anr: Integer): TCollComp;
+    function EmptyComp: TCollComp;
+    procedure TestNr(ACount: Integer);
+  Published
+    procedure Test1;
+    procedure Test2;
+    procedure Test3;
+    procedure TestClear;
+    procedure TestEmpty;
+  end;
 
 Implementation
 
@@ -1070,4 +1125,185 @@ begin
     end;
 end;
 
+{ TMyColl }
+
+function TMyColl.GetIt(index : Integer): TMyItem;
+begin
+  Result:=Items[Index] as TMyItem;
+end;
+
+procedure TMyColl.SetIt(index : Integer; const AValue: TMyItem);
+begin
+  Items[Index]:=AValue;
+end;
+
+{ TCollComp }
+
+procedure TCollComp.SetMyColl(const AValue: TMyColl);
+begin
+  if (FMyColl=AValue) then
+    exit;
+  FMyColl.Assign(AValue);
+end;
+
+constructor TCollComp.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  FMyColl:=TMyCOll.Create(TMyItem);
+end;
+
+destructor TCollComp.Destroy;
+begin
+  FreeAndNil(FMyColl);
+  inherited Destroy;
+end;
+
+function TCollComp.ToStream: TStream;
+begin
+  Result:=TMemoryStream.Create;
+  Result.WriteComponent(Self);
+  Result.Position:=0;
+end;
+
+procedure TCollComp.FromStream(AStream: TStream);
+begin
+  AStream.ReadComponent(Self);
+  Astream.Free;
+end;
+
+procedure TMyItem.Assign(Source: TPersistent);
+
+Var
+  I : TMyItem;
+
+begin
+  If (Source is TMyItem) then
+    begin
+    I:=Source as TMyItem;
+    FNR:=I.NR;
+    FStr:=I.Str;
+    end
+  else
+    inherited Assign(Source);
+end;
+
+Procedure TTestCollectionStream.CompareColl(CA,CB : TMyCOll);
+
+Var
+  I : Integer;
+
+begin
+  AssertEquals('Counts differ: %d %d',CA.Count,CB.Count);
+  For I:=0 to CA.Count-1 do
+    begin
+    AssertEquals(Format('Nr property of element %d equals',[I]),CA[i].Nr,CB[i].Nr);
+    AssertEquals(Format('Str property of element %d equals',[I]),CA[i].Str,CB[i].Str);
+    end;
+end;
+
+Function TTestCollectionStream.EmptyComp : TCollComp;
+
+begin
+  Result:=TCollComp.Create(Nil);
+end;
+
+Function TTestCollectionStream.CreateColl(Anr : Integer) : TCollComp;
+
+Var
+  I : Integer;
+  T : TMyItem;
+
+begin
+  Result:=EmptyComp;
+  Result.Name:='C'+IntToStr(Anr);
+  For I:=0 to ANr-1 do
+    begin
+    T:=Result.MyColl.Add as TMyItem;
+    T.Nr:=0;
+    T.Str:=IntToStr(I+1);
+    end;
+end;
+
+Procedure TTestCollectionStream.TestEmpty;
+
+Var
+ CA,CB : TCollComp;
+
+begin
+  CA:=CreateColl(0);
+  try
+    CB:=EmptyComp;
+    Try
+      CB.FromStream(CA.ToStream);
+      CompareColl(CA.MyColl,CB.MyColl);
+    Finally
+      CB.Free;
+    end;
+  Finally
+    CA.Free;
+  end;
+end;
+
+Procedure TTestCollectionStream.TestNr(ACount : Integer);
+
+Var
+ CA,CB : TCollComp;
+
+begin
+  CA:=CreateColl(ACount);
+  try
+    CB:=EmptyComp;
+    Try
+      CB.FromStream(CA.ToStream);
+      CompareColl(CA.MyColl,CB.MyColl);
+    Finally
+      CB.Free;
+    end;
+  Finally
+    CA.Free;
+  end;
+end;
+
+Procedure TTestCollectionStream.TestClear;
+
+Var
+ CA,CB : TCollComp;
+
+begin
+  CA:=CreateColl(3);
+  try
+    CB:=CreateColl(1);
+    CB.Name:='';
+    Try
+      // CB collection should be cleared before loading.
+      CB.FromStream(CA.ToStream);
+      CompareColl(CA.MyColl,CB.MyColl);
+    Finally
+      CB.Free;
+    end;
+  Finally
+    CA.Free;
+  end;
+end;
+
+Procedure TTestCollectionStream.Test1;
+
+begin
+  TestNr(1);
+end;
+
+Procedure TTestCollectionStream.Test2;
+
+begin
+  TestNr(2);
+end;
+
+Procedure TTestCollectionStream.Test3;
+
+begin
+  TestNr(3);
+end;
+
+begin
+  RegisterTests([TTestComponentStream,TTestCollectionStream]);
 end.

+ 252 - 21
rtl/tests/testclasses.lpi

@@ -1,21 +1,20 @@
 <?xml version="1.0"?>
 <CONFIG>
   <ProjectOptions>
-    <PathDelim Value="\"/>
+    <PathDelim Value="/"/>
     <Version Value="6"/>
     <General>
-      <SessionStorage Value="InIDEConfig"/>
       <MainUnit Value="0"/>
-      <IconPath Value=".\"/>
+      <IconPath Value="./"/>
       <TargetFileExt Value=""/>
       <Title Value="Test classes"/>
+      <ActiveEditorIndexAtStart Value="6"/>
     </General>
     <VersionInfo>
       <ProjectVersion Value=""/>
     </VersionInfo>
     <PublishOptions>
       <Version Value="2"/>
-      <DestinationDirectory Value="$(TestDir)\publishedproject\"/>
       <IgnoreBinaries Value="False"/>
       <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
       <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
@@ -23,8 +22,8 @@
     <RunParams>
       <local>
         <FormatVersion Value="1"/>
-        <CommandLineParams Value="--format=plain --suite=TTestTStringList"/>
-        <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
+        <CommandLineParams Value="--format=plain --suite=TTestResolveReference"/>
+        <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
       </local>
     </RunParams>
     <RequiredPackages Count="2">
@@ -35,79 +34,301 @@
         <PackageName Value="FPCUnitConsoleRunner"/>
       </Item2>
     </RequiredPackages>
-    <Units Count="14">
+    <Units Count="22">
       <Unit0>
         <Filename Value="testclasses.lpr"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="testclasses"/>
+        <UsageCount Value="221"/>
       </Unit0>
       <Unit1>
         <Filename Value="tcfindnested.pp"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="tcfindnested"/>
+        <CursorPos X="13" Y="116"/>
+        <TopLine Value="66"/>
+        <EditorIndex Value="0"/>
+        <UsageCount Value="221"/>
+        <Loaded Value="True"/>
       </Unit1>
       <Unit2>
         <Filename Value="tcstringlist.pp"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="tcstringlist"/>
+        <UsageCount Value="221"/>
+        <SyntaxHighlighter Value="Text"/>
       </Unit2>
       <Unit3>
         <Filename Value="tccollection.pp"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="tccollection"/>
+        <CursorPos X="1" Y="1"/>
+        <TopLine Value="1"/>
+        <EditorIndex Value="3"/>
+        <UsageCount Value="221"/>
+        <Loaded Value="True"/>
       </Unit3>
       <Unit4>
         <Filename Value="tclist.pp"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="tclist"/>
+        <CursorPos X="1" Y="1"/>
+        <TopLine Value="1"/>
+        <EditorIndex Value="4"/>
+        <UsageCount Value="221"/>
+        <Loaded Value="True"/>
       </Unit4>
       <Unit5>
         <Filename Value="tcpersistent.pp"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="tcpersistent"/>
+        <UsageCount Value="221"/>
+        <SyntaxHighlighter Value="Text"/>
       </Unit5>
       <Unit6>
         <Filename Value="tclinkedlist.pp"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="tclinkedlist"/>
+        <CursorPos X="1" Y="237"/>
+        <TopLine Value="187"/>
+        <EditorIndex Value="2"/>
+        <UsageCount Value="221"/>
+        <Loaded Value="True"/>
       </Unit6>
       <Unit7>
+        <Filename Value="../../../../fpc/rtl/objpas/classes/classesh.inc"/>
+        <CursorPos X="15" Y="195"/>
+        <TopLine Value="154"/>
+        <UsageCount Value="80"/>
+      </Unit7>
+      <Unit8>
+        <Filename Value="../../../../fpc/rtl/objpas/classes/collect.inc"/>
+        <CursorPos X="51" Y="319"/>
+        <TopLine Value="293"/>
+        <UsageCount Value="110"/>
+      </Unit8>
+      <Unit9>
         <Filename Value="tccomponent.pp"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="tccomponent"/>
-      </Unit7>
-      <Unit8>
+        <CursorPos X="1" Y="260"/>
+        <TopLine Value="236"/>
+        <UsageCount Value="221"/>
+      </Unit9>
+      <Unit10>
         <Filename Value="tcstreaming.pp"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="tcstreaming"/>
-      </Unit8>
-      <Unit9>
+        <CursorPos X="3" Y="11"/>
+        <TopLine Value="1"/>
+        <EditorIndex Value="6"/>
+        <UsageCount Value="220"/>
+        <Loaded Value="True"/>
+      </Unit10>
+      <Unit11>
+        <Filename Value="tccompstreaming.pas"/>
+        <UnitName Value="tctestcompstreaming"/>
+        <CursorPos X="51" Y="4"/>
+        <TopLine Value="1"/>
+        <UsageCount Value="10"/>
+      </Unit11>
+      <Unit12>
         <Filename Value="testcomps.inc"/>
         <IsPartOfProject Value="True"/>
-      </Unit9>
-      <Unit10>
+        <UsageCount Value="220"/>
+        <SyntaxHighlighter Value="Text"/>
+      </Unit12>
+      <Unit13>
         <Filename Value="tccompstreaming.pp"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="tccompstreaming"/>
-      </Unit10>
-      <Unit11>
+        <CursorPos X="89" Y="1221"/>
+        <TopLine Value="1194"/>
+        <EditorIndex Value="5"/>
+        <UsageCount Value="220"/>
+        <Loaded Value="True"/>
+      </Unit13>
+      <Unit14>
         <Filename Value="tcresref.pp"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="tcresref"/>
-      </Unit11>
-      <Unit12>
+        <CursorPos X="1" Y="1"/>
+        <TopLine Value="1"/>
+        <EditorIndex Value="1"/>
+        <UsageCount Value="220"/>
+        <Loaded Value="True"/>
+      </Unit14>
+      <Unit15>
         <Filename Value="sllist.inc"/>
         <IsPartOfProject Value="True"/>
-      </Unit12>
-      <Unit13>
+        <UsageCount Value="220"/>
+        <SyntaxHighlighter Value="Text"/>
+      </Unit15>
+      <Unit16>
         <Filename Value="resref.inc"/>
         <IsPartOfProject Value="True"/>
-      </Unit13>
+        <CursorPos X="11" Y="28"/>
+        <TopLine Value="1"/>
+        <UsageCount Value="220"/>
+      </Unit16>
+      <Unit17>
+        <Filename Value="../../../../fpc/rtl/objpas/classes/classes.inc"/>
+        <CursorPos X="3" Y="933"/>
+        <TopLine Value="930"/>
+        <UsageCount Value="80"/>
+      </Unit17>
+      <Unit18>
+        <Filename Value="../objpas/classes/reader.inc"/>
+        <CursorPos X="16" Y="1108"/>
+        <TopLine Value="1093"/>
+        <UsageCount Value="80"/>
+      </Unit18>
+      <Unit19>
+        <Filename Value="../../../../fpc/rtl/objpas/classes/lists.inc"/>
+        <CursorPos X="3" Y="1"/>
+        <TopLine Value="1"/>
+        <UsageCount Value="10"/>
+      </Unit19>
+      <Unit20>
+        <Filename Value="../../../../tclist.pas"/>
+        <UnitName Value="tclist"/>
+        <CursorPos X="1" Y="40"/>
+        <TopLine Value="18"/>
+        <UsageCount Value="10"/>
+      </Unit20>
+      <Unit21>
+        <Filename Value="../../../../testcoll.pp"/>
+        <UnitName Value="testcoll"/>
+        <CursorPos X="1" Y="118"/>
+        <TopLine Value="68"/>
+        <UsageCount Value="10"/>
+      </Unit21>
     </Units>
+    <JumpHistory Count="30" HistoryIndex="29">
+      <Position1>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="1283" Column="1" TopLine="1234"/>
+      </Position1>
+      <Position2>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="93" Column="3" TopLine="51"/>
+      </Position2>
+      <Position3>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="1177" Column="1" TopLine="1154"/>
+      </Position3>
+      <Position4>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="121" Column="7" TopLine="72"/>
+      </Position4>
+      <Position5>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="1275" Column="5" TopLine="1236"/>
+      </Position5>
+      <Position6>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="9" Column="38" TopLine="1"/>
+      </Position6>
+      <Position7>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="101" Column="42" TopLine="51"/>
+      </Position7>
+      <Position8>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="95" Column="3" TopLine="93"/>
+      </Position8>
+      <Position9>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="99" Column="50" TopLine="98"/>
+      </Position9>
+      <Position10>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="1206" Column="24" TopLine="1186"/>
+      </Position10>
+      <Position11>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="101" Column="25" TopLine="100"/>
+      </Position11>
+      <Position12>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="102" Column="39" TopLine="101"/>
+      </Position12>
+      <Position13>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="101" Column="25" TopLine="100"/>
+      </Position13>
+      <Position14>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="1288" Column="1" TopLine="1245"/>
+      </Position14>
+      <Position15>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="101" Column="21" TopLine="100"/>
+      </Position15>
+      <Position16>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="1295" Column="1" TopLine="1256"/>
+      </Position16>
+      <Position17>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="1304" Column="38" TopLine="1260"/>
+      </Position17>
+      <Position18>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="96" Column="25" TopLine="70"/>
+      </Position18>
+      <Position19>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="6" Column="39" TopLine="1"/>
+      </Position19>
+      <Position20>
+        <Filename Value="tclinkedlist.pp"/>
+        <Caret Line="209" Column="22" TopLine="176"/>
+      </Position20>
+      <Position21>
+        <Filename Value="tccollection.pp"/>
+        <Caret Line="66" Column="24" TopLine="52"/>
+      </Position21>
+      <Position22>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="1305" Column="12" TopLine="1260"/>
+      </Position22>
+      <Position23>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="51" Column="42" TopLine="1"/>
+      </Position23>
+      <Position24>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="1311" Column="17" TopLine="1261"/>
+      </Position24>
+      <Position25>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="51" Column="3" TopLine="1"/>
+      </Position25>
+      <Position26>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="1209" Column="1" TopLine="1159"/>
+      </Position26>
+      <Position27>
+        <Filename Value="tccollection.pp"/>
+        <Caret Line="499" Column="1" TopLine="449"/>
+      </Position27>
+      <Position28>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="1308" Column="16" TopLine="1259"/>
+      </Position28>
+      <Position29>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="6" Column="53" TopLine="1"/>
+      </Position29>
+      <Position30>
+        <Filename Value="tccompstreaming.pp"/>
+        <Caret Line="1197" Column="22" TopLine="1172"/>
+      </Position30>
+    </JumpHistory>
   </ProjectOptions>
   <CompilerOptions>
     <Version Value="5"/>
-    <PathDelim Value="\"/>
     <CodeGeneration>
       <Generate Value="Faster"/>
     </CodeGeneration>
@@ -115,4 +336,14 @@
       <CompilerPath Value="$(CompPath)"/>
     </Other>
   </CompilerOptions>
+  <Debugging>
+    <Exceptions Count="2">
+      <Item1>
+        <Name Value="ECodetoolError"/>
+      </Item1>
+      <Item2>
+        <Name Value="EFOpenError"/>
+      </Item2>
+    </Exceptions>
+  </Debugging>
 </CONFIG>

+ 23 - 130
rtl/tests/tstrutils.lpi

@@ -7,7 +7,7 @@
       <MainUnit Value="0"/>
       <IconPath Value="./"/>
       <TargetFileExt Value=""/>
-      <ActiveEditorIndexAtStart Value="2"/>
+      <ActiveEditorIndexAtStart Value="0"/>
     </General>
     <VersionInfo>
       <ProjectVersion Value=""/>
@@ -29,20 +29,20 @@
     </RunParams>
     <RequiredPackages Count="2">
       <Item1>
-        <PackageName Value="FPCUnitConsoleRunner"/>
+        <PackageName Value="FCL"/>
       </Item1>
       <Item2>
-        <PackageName Value="FCL"/>
+        <PackageName Value="FPCUnitConsoleRunner"/>
       </Item2>
     </RequiredPackages>
-    <Units Count="10">
+    <Units Count="11">
       <Unit0>
         <Filename Value="tstrutils.lpr"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="tstrutils"/>
-        <CursorPos X="63" Y="6"/>
+        <CursorPos X="37" Y="6"/>
         <TopLine Value="1"/>
-        <EditorIndex Value="7"/>
+        <EditorIndex Value="6"/>
         <UsageCount Value="44"/>
         <Loaded Value="True"/>
       </Unit0>
@@ -50,8 +50,8 @@
         <Filename Value="tcstrutils.pp"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="tcstrutils"/>
-        <CursorPos X="1" Y="1"/>
-        <TopLine Value="1"/>
+        <CursorPos X="1" Y="163"/>
+        <TopLine Value="148"/>
         <EditorIndex Value="0"/>
         <UsageCount Value="44"/>
         <Loaded Value="True"/>
@@ -62,7 +62,7 @@
         <UnitName Value="tcstringlist"/>
         <CursorPos X="19" Y="47"/>
         <TopLine Value="1"/>
-        <EditorIndex Value="1"/>
+        <EditorIndex Value="2"/>
         <UsageCount Value="44"/>
         <Loaded Value="True"/>
       </Unit2>
@@ -101,9 +101,7 @@
         <Filename Value="../../../../fpc/rtl/objpas/classes/resreference.inc"/>
         <CursorPos X="39" Y="345"/>
         <TopLine Value="311"/>
-        <EditorIndex Value="6"/>
         <UsageCount Value="21"/>
-        <Loaded Value="True"/>
       </Unit7>
       <Unit8>
         <Filename Value="../../../../fpc/rtl/objpas/classes/lists.inc"/>
@@ -118,132 +116,27 @@
         <UnitName Value="Testll"/>
         <CursorPos X="1" Y="1"/>
         <TopLine Value="1"/>
-        <EditorIndex Value="2"/>
         <UsageCount Value="20"/>
-        <Loaded Value="True"/>
       </Unit9>
+      <Unit10>
+        <Filename Value="../../../../testsi.pp"/>
+        <UnitName Value="testsi"/>
+        <CursorPos X="1" Y="12"/>
+        <TopLine Value="1"/>
+        <EditorIndex Value="1"/>
+        <UsageCount Value="10"/>
+        <Loaded Value="True"/>
+      </Unit10>
     </Units>
-    <JumpHistory Count="30" HistoryIndex="29">
+    <JumpHistory Count="2" HistoryIndex="1">
       <Position1>
-        <Filename Value="tclist.pp"/>
-        <Caret Line="183" Column="30" TopLine="157"/>
+        <Filename Value="tcstrutils.pp"/>
+        <Caret Line="164" Column="5" TopLine="109"/>
       </Position1>
       <Position2>
-        <Filename Value="tclist.pp"/>
-        <Caret Line="342" Column="18" TopLine="327"/>
+        <Filename Value="tcstrutils.pp"/>
+        <Caret Line="163" Column="1" TopLine="161"/>
       </Position2>
-      <Position3>
-        <Filename Value="tclist.pp"/>
-        <Caret Line="357" Column="5" TopLine="300"/>
-      </Position3>
-      <Position4>
-        <Filename Value="tclist.pp"/>
-        <Caret Line="354" Column="13" TopLine="333"/>
-      </Position4>
-      <Position5>
-        <Filename Value="tclist.pp"/>
-        <Caret Line="365" Column="1" TopLine="328"/>
-      </Position5>
-      <Position6>
-        <Filename Value="tclist.pp"/>
-        <Caret Line="360" Column="42" TopLine="334"/>
-      </Position6>
-      <Position7>
-        <Filename Value="tclist.pp"/>
-        <Caret Line="357" Column="7" TopLine="335"/>
-      </Position7>
-      <Position8>
-        <Filename Value="tclist.pp"/>
-        <Caret Line="366" Column="20" TopLine="340"/>
-      </Position8>
-      <Position9>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="52" Column="26" TopLine="27"/>
-      </Position9>
-      <Position10>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="58" Column="49" TopLine="31"/>
-      </Position10>
-      <Position11>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="57" Column="3" TopLine="55"/>
-      </Position11>
-      <Position12>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="60" Column="22" TopLine="36"/>
-      </Position12>
-      <Position13>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="327" Column="5" TopLine="270"/>
-      </Position13>
-      <Position14>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="334" Column="1" TopLine="315"/>
-      </Position14>
-      <Position15>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="62" Column="9" TopLine="36"/>
-      </Position15>
-      <Position16>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="332" Column="29" TopLine="301"/>
-      </Position16>
-      <Position17>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="335" Column="46" TopLine="308"/>
-      </Position17>
-      <Position18>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="330" Column="3" TopLine="324"/>
-      </Position18>
-      <Position19>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="335" Column="52" TopLine="309"/>
-      </Position19>
-      <Position20>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="334" Column="1" TopLine="309"/>
-      </Position20>
-      <Position21>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="360" Column="1" TopLine="319"/>
-      </Position21>
-      <Position22>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="26" Column="27" TopLine="25"/>
-      </Position22>
-      <Position23>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="373" Column="5" TopLine="316"/>
-      </Position23>
-      <Position24>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="330" Column="5" TopLine="325"/>
-      </Position24>
-      <Position25>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="420" Column="1" TopLine="399"/>
-      </Position25>
-      <Position26>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="331" Column="5" TopLine="326"/>
-      </Position26>
-      <Position27>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="440" Column="1" TopLine="420"/>
-      </Position27>
-      <Position28>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="26" Column="30" TopLine="25"/>
-      </Position28>
-      <Position29>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="467" Column="1" TopLine="432"/>
-      </Position29>
-      <Position30>
-        <Filename Value="tcstringlist.pp"/>
-        <Caret Line="26" Column="35" TopLine="25"/>
-      </Position30>
     </JumpHistory>
   </ProjectOptions>
   <CompilerOptions>