Ignore:
Timestamp:
Oct 31, 2010, 3:14:23 PM (14 years ago)
Author:
george
Message:
  • Modified: Thanks to compiler directives and simple macros specialized types was moved to one unit per base generic class. Directive $DEFINE is used to specify generic class template parameters which will be included to code. This approach enable to define more specialized types per unit.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Generics/TemplateGenerics/Demo/Demo.lpi

    r83 r84  
    3535      </Item2>
    3636    </RequiredPackages>
    37     <Units Count="78">
     37    <Units Count="92">
    3838      <Unit0>
    3939        <Filename Value="Demo.lpr"/>
     
    4343        <TopLine Value="1"/>
    4444        <CursorPos X="26" Y="8"/>
    45         <UsageCount Value="56"/>
     45        <UsageCount Value="63"/>
    4646        <DefaultSyntaxHighlighter Value="Delphi"/>
    4747      </Unit0>
     
    5454        <EditorIndex Value="0"/>
    5555        <WindowIndex Value="0"/>
    56         <TopLine Value="1"/>
    57         <CursorPos X="1" Y="12"/>
    58         <UsageCount Value="56"/>
     56        <TopLine Value="342"/>
     57        <CursorPos X="51" Y="360"/>
     58        <UsageCount Value="63"/>
    5959        <Loaded Value="True"/>
    6060        <LoadedDesigner Value="True"/>
     
    201201        <Filename Value="../Specialized/ListDouble.pas"/>
    202202        <UnitName Value="ListDouble"/>
    203         <EditorIndex Value="2"/>
    204         <WindowIndex Value="0"/>
    205         <TopLine Value="1"/>
    206         <CursorPos X="19" Y="13"/>
    207         <UsageCount Value="25"/>
    208         <Loaded Value="True"/>
     203        <WindowIndex Value="0"/>
     204        <TopLine Value="1"/>
     205        <CursorPos X="1" Y="11"/>
     206        <UsageCount Value="25"/>
    209207      </Unit19>
    210208      <Unit20>
    211         <Filename Value="../Specialized/ListInteger.pas"/>
    212         <UnitName Value="ListInteger"/>
    213         <WindowIndex Value="0"/>
    214         <TopLine Value="1"/>
    215         <CursorPos X="25" Y="17"/>
     209        <Filename Value="../Specialized/specializedlist.pas"/>
     210        <UnitName Value="SpecializedList"/>
     211        <WindowIndex Value="0"/>
     212        <TopLine Value="3"/>
     213        <CursorPos X="43" Y="13"/>
    216214        <UsageCount Value="25"/>
    217215      </Unit20>
     
    615613        <IsPartOfProject Value="True"/>
    616614        <UnitName Value="ListObject"/>
    617         <EditorIndex Value="4"/>
    618         <WindowIndex Value="0"/>
    619         <TopLine Value="1"/>
    620         <CursorPos X="30" Y="23"/>
    621         <UsageCount Value="22"/>
     615        <EditorIndex Value="15"/>
     616        <WindowIndex Value="0"/>
     617        <TopLine Value="1"/>
     618        <CursorPos X="15" Y="12"/>
     619        <UsageCount Value="29"/>
    622620        <Loaded Value="True"/>
    623621        <DefaultSyntaxHighlighter Value="Delphi"/>
     
    665663        <Filename Value="../Specialized/StackDouble.pas"/>
    666664        <UnitName Value="StackDouble"/>
    667         <EditorIndex Value="3"/>
    668665        <WindowIndex Value="0"/>
    669666        <TopLine Value="1"/>
    670667        <CursorPos X="1" Y="1"/>
    671         <UsageCount Value="10"/>
    672         <Loaded Value="True"/>
     668        <UsageCount Value="11"/>
    673669      </Unit76>
    674670      <Unit77>
    675671        <Filename Value="../Specialized/DictionaryStringString.pas"/>
    676672        <UnitName Value="DictionaryStringString"/>
     673        <WindowIndex Value="0"/>
     674        <TopLine Value="1"/>
     675        <CursorPos X="2" Y="5"/>
     676        <UsageCount Value="11"/>
     677      </Unit77>
     678      <Unit78>
     679        <Filename Value="../Generic/GenericList.inc"/>
     680        <EditorIndex Value="14"/>
     681        <WindowIndex Value="0"/>
     682        <TopLine Value="43"/>
     683        <CursorPos X="32" Y="65"/>
     684        <UsageCount Value="13"/>
     685        <Loaded Value="True"/>
     686        <DefaultSyntaxHighlighter Value="Delphi"/>
     687      </Unit78>
     688      <Unit79>
     689        <Filename Value="../Specialized/SpecializedList.pas"/>
     690        <UnitName Value="SpecializedList"/>
     691        <EditorIndex Value="1"/>
     692        <WindowIndex Value="0"/>
     693        <TopLine Value="1"/>
     694        <CursorPos X="1" Y="11"/>
     695        <UsageCount Value="13"/>
     696        <Loaded Value="True"/>
     697      </Unit79>
     698      <Unit80>
     699        <Filename Value="../Generic/GenericDictionary.inc"/>
     700        <EditorIndex Value="2"/>
     701        <WindowIndex Value="0"/>
     702        <TopLine Value="1"/>
     703        <CursorPos X="1" Y="10"/>
     704        <UsageCount Value="13"/>
     705        <Loaded Value="True"/>
     706        <DefaultSyntaxHighlighter Value="Delphi"/>
     707      </Unit80>
     708      <Unit81>
     709        <Filename Value="../Generic/GenericObjectList.inc"/>
     710        <EditorIndex Value="4"/>
     711        <WindowIndex Value="0"/>
     712        <TopLine Value="34"/>
     713        <CursorPos X="8" Y="56"/>
     714        <UsageCount Value="13"/>
     715        <Loaded Value="True"/>
     716        <DefaultSyntaxHighlighter Value="Delphi"/>
     717      </Unit81>
     718      <Unit82>
     719        <Filename Value="../Generic/GenericQueue.inc"/>
     720        <EditorIndex Value="7"/>
     721        <WindowIndex Value="0"/>
     722        <TopLine Value="1"/>
     723        <CursorPos X="1" Y="3"/>
     724        <UsageCount Value="13"/>
     725        <Loaded Value="True"/>
     726        <DefaultSyntaxHighlighter Value="Delphi"/>
     727      </Unit82>
     728      <Unit83>
     729        <Filename Value="../Generic/GenericSet.inc"/>
     730        <EditorIndex Value="12"/>
     731        <WindowIndex Value="0"/>
     732        <TopLine Value="1"/>
     733        <CursorPos X="42" Y="11"/>
     734        <UsageCount Value="13"/>
     735        <Loaded Value="True"/>
     736        <DefaultSyntaxHighlighter Value="Delphi"/>
     737      </Unit83>
     738      <Unit84>
     739        <Filename Value="../Generic/GenericStack.inc"/>
     740        <EditorIndex Value="11"/>
     741        <WindowIndex Value="0"/>
     742        <TopLine Value="1"/>
     743        <CursorPos X="1" Y="3"/>
     744        <UsageCount Value="13"/>
     745        <Loaded Value="True"/>
     746        <DefaultSyntaxHighlighter Value="Delphi"/>
     747      </Unit84>
     748      <Unit85>
     749        <Filename Value="../Generic/GenericTree.inc"/>
     750        <EditorIndex Value="13"/>
     751        <WindowIndex Value="0"/>
     752        <TopLine Value="1"/>
     753        <CursorPos X="22" Y="30"/>
     754        <UsageCount Value="13"/>
     755        <Loaded Value="True"/>
     756        <DefaultSyntaxHighlighter Value="Delphi"/>
     757      </Unit85>
     758      <Unit86>
     759        <Filename Value="../Specialized/SpecializedDictionary.pas"/>
     760        <UnitName Value="SpecializedDictionary"/>
     761        <EditorIndex Value="9"/>
     762        <WindowIndex Value="0"/>
     763        <TopLine Value="1"/>
     764        <CursorPos X="1" Y="13"/>
     765        <UsageCount Value="12"/>
     766        <Loaded Value="True"/>
     767      </Unit86>
     768      <Unit87>
     769        <Filename Value="../Specialized/SpecializedStack.pas"/>
     770        <UnitName Value="SpecializedStack"/>
     771        <EditorIndex Value="10"/>
     772        <WindowIndex Value="0"/>
     773        <TopLine Value="1"/>
     774        <CursorPos X="1" Y="13"/>
     775        <UsageCount Value="11"/>
     776        <Loaded Value="True"/>
     777      </Unit87>
     778      <Unit88>
     779        <Filename Value="../Specialized/SpecializedTree.pas"/>
     780        <UnitName Value="SpecializedTree"/>
    677781        <IsVisibleTab Value="True"/>
    678         <EditorIndex Value="1"/>
    679         <WindowIndex Value="0"/>
    680         <TopLine Value="1"/>
    681         <CursorPos X="23" Y="26"/>
    682         <UsageCount Value="10"/>
    683         <Loaded Value="True"/>
    684       </Unit77>
     782        <EditorIndex Value="3"/>
     783        <WindowIndex Value="0"/>
     784        <TopLine Value="1"/>
     785        <CursorPos X="1" Y="11"/>
     786        <UsageCount Value="11"/>
     787        <Loaded Value="True"/>
     788      </Unit88>
     789      <Unit89>
     790        <Filename Value="../Generic/GenericRange.inc"/>
     791        <EditorIndex Value="8"/>
     792        <WindowIndex Value="0"/>
     793        <TopLine Value="1"/>
     794        <CursorPos X="1" Y="44"/>
     795        <UsageCount Value="11"/>
     796        <Loaded Value="True"/>
     797        <DefaultSyntaxHighlighter Value="Delphi"/>
     798      </Unit89>
     799      <Unit90>
     800        <Filename Value="../Specialized/SpecializedQueue.pas"/>
     801        <UnitName Value="SpecializedQueue"/>
     802        <EditorIndex Value="5"/>
     803        <WindowIndex Value="0"/>
     804        <TopLine Value="1"/>
     805        <CursorPos X="1" Y="13"/>
     806        <UsageCount Value="11"/>
     807        <Loaded Value="True"/>
     808      </Unit90>
     809      <Unit91>
     810        <Filename Value="../Specialized/SpecializedSet.pas"/>
     811        <UnitName Value="SpecializedSet"/>
     812        <EditorIndex Value="6"/>
     813        <WindowIndex Value="0"/>
     814        <TopLine Value="1"/>
     815        <CursorPos X="1" Y="13"/>
     816        <UsageCount Value="11"/>
     817        <Loaded Value="True"/>
     818      </Unit91>
    685819    </Units>
    686     <JumpHistory Count="25" HistoryIndex="24">
     820    <JumpHistory Count="30" HistoryIndex="29">
    687821      <Position1>
    688         <Filename Value="UMainForm.pas"/>
    689         <Caret Line="367" Column="1" TopLine="341"/>
     822        <Filename Value="../Specialized/SpecializedDictionary.pas"/>
     823        <Caret Line="22" Column="23" TopLine="1"/>
    690824      </Position1>
    691825      <Position2>
    692         <Filename Value="UMainForm.pas"/>
    693         <Caret Line="368" Column="1" TopLine="341"/>
     826        <Filename Value="../Specialized/SpecializedDictionary.pas"/>
     827        <Caret Line="19" Column="42" TopLine="1"/>
    694828      </Position2>
    695829      <Position3>
    696         <Filename Value="UMainForm.pas"/>
    697         <Caret Line="364" Column="18" TopLine="348"/>
     830        <Filename Value="../Specialized/SpecializedDictionary.pas"/>
     831        <Caret Line="18" Column="24" TopLine="1"/>
    698832      </Position3>
    699833      <Position4>
    700         <Filename Value="UMainForm.pas"/>
    701         <Caret Line="345" Column="5" TopLine="329"/>
     834        <Filename Value="../Specialized/SpecializedDictionary.pas"/>
     835        <Caret Line="19" Column="43" TopLine="1"/>
    702836      </Position4>
    703837      <Position5>
    704         <Filename Value="UMainForm.pas"/>
    705         <Caret Line="346" Column="14" TopLine="329"/>
     838        <Filename Value="../Specialized/SpecializedDictionary.pas"/>
     839        <Caret Line="39" Column="5" TopLine="3"/>
    706840      </Position5>
    707841      <Position6>
    708         <Filename Value="UMainForm.pas"/>
    709         <Caret Line="411" Column="23" TopLine="383"/>
     842        <Filename Value="../Specialized/SpecializedStack.pas"/>
     843        <Caret Line="19" Column="36" TopLine="1"/>
    710844      </Position6>
    711845      <Position7>
    712         <Filename Value="UMainForm.pas"/>
    713         <Caret Line="407" Column="21" TopLine="383"/>
     846        <Filename Value="../Specialized/SpecializedStack.pas"/>
     847        <Caret Line="5" Column="1" TopLine="1"/>
    714848      </Position7>
    715849      <Position8>
    716         <Filename Value="UMainForm.pas"/>
    717         <Caret Line="376" Column="19" TopLine="349"/>
     850        <Filename Value="../Generic/GenericStack.inc"/>
     851        <Caret Line="28" Column="34" TopLine="13"/>
    718852      </Position8>
    719853      <Position9>
    720854        <Filename Value="UMainForm.pas"/>
    721         <Caret Line="373" Column="8" TopLine="349"/>
     855        <Caret Line="9" Column="7" TopLine="1"/>
    722856      </Position9>
    723857      <Position10>
    724858        <Filename Value="UMainForm.pas"/>
    725         <Caret Line="412" Column="1" TopLine="383"/>
     859        <Caret Line="10" Column="20" TopLine="1"/>
    726860      </Position10>
    727861      <Position11>
    728862        <Filename Value="UMainForm.pas"/>
    729         <Caret Line="427" Column="24" TopLine="399"/>
     863        <Caret Line="20" Column="49" TopLine="1"/>
    730864      </Position11>
    731865      <Position12>
    732         <Filename Value="UMainForm.pas"/>
    733         <Caret Line="427" Column="58" TopLine="399"/>
     866        <Filename Value="ListObject.pas"/>
     867        <Caret Line="23" Column="30" TopLine="1"/>
    734868      </Position12>
    735869      <Position13>
    736870        <Filename Value="UMainForm.pas"/>
    737         <Caret Line="367" Column="12" TopLine="350"/>
     871        <Caret Line="22" Column="35" TopLine="1"/>
    738872      </Position13>
    739873      <Position14>
    740874        <Filename Value="UMainForm.pas"/>
    741         <Caret Line="428" Column="7" TopLine="411"/>
     875        <Caret Line="110" Column="12" TopLine="81"/>
    742876      </Position14>
    743877      <Position15>
    744878        <Filename Value="UMainForm.pas"/>
    745         <Caret Line="349" Column="3" TopLine="332"/>
     879        <Caret Line="133" Column="9" TopLine="103"/>
    746880      </Position15>
    747881      <Position16>
    748882        <Filename Value="UMainForm.pas"/>
    749         <Caret Line="428" Column="35" TopLine="411"/>
     883        <Caret Line="162" Column="7" TopLine="136"/>
    750884      </Position16>
    751885      <Position17>
    752886        <Filename Value="UMainForm.pas"/>
    753         <Caret Line="432" Column="47" TopLine="411"/>
     887        <Caret Line="171" Column="1" TopLine="152"/>
    754888      </Position17>
    755889      <Position18>
    756890        <Filename Value="UMainForm.pas"/>
    757         <Caret Line="10" Column="25" TopLine="1"/>
     891        <Caret Line="190" Column="7" TopLine="165"/>
    758892      </Position18>
    759893      <Position19>
    760         <Filename Value="ListObject.pas"/>
    761         <Caret Line="27" Column="1" TopLine="1"/>
     894        <Filename Value="UMainForm.pas"/>
     895        <Caret Line="188" Column="5" TopLine="168"/>
    762896      </Position19>
    763897      <Position20>
    764         <Filename Value="ListObject.pas"/>
    765         <Caret Line="19" Column="29" TopLine="1"/>
     898        <Filename Value="UMainForm.pas"/>
     899        <Caret Line="393" Column="5" TopLine="364"/>
    766900      </Position20>
    767901      <Position21>
    768         <Filename Value="ListObject.pas"/>
    769         <Caret Line="24" Column="6" TopLine="1"/>
     902        <Filename Value="../Specialized/SpecializedQueue.pas"/>
     903        <Caret Line="33" Column="32" TopLine="1"/>
    770904      </Position21>
    771905      <Position22>
    772         <Filename Value="ListObject.pas"/>
    773         <Caret Line="13" Column="24" TopLine="1"/>
     906        <Filename Value="../Specialized/SpecializedQueue.pas"/>
     907        <Caret Line="20" Column="34" TopLine="1"/>
    774908      </Position22>
    775909      <Position23>
    776         <Filename Value="ListObject.pas"/>
    777         <Caret Line="4" Column="1" TopLine="1"/>
     910        <Filename Value="../Specialized/SpecializedDictionary.pas"/>
     911        <Caret Line="22" Column="36" TopLine="1"/>
    778912      </Position23>
    779913      <Position24>
    780         <Filename Value="../Specialized/ListDouble.pas"/>
    781         <Caret Line="21" Column="12" TopLine="1"/>
     914        <Filename Value="UMainForm.pas"/>
     915        <Caret Line="469" Column="3" TopLine="439"/>
    782916      </Position24>
    783917      <Position25>
    784         <Filename Value="../Specialized/DictionaryStringString.pas"/>
    785         <Caret Line="1" Column="1" TopLine="1"/>
     918        <Filename Value="ListObject.pas"/>
     919        <Caret Line="33" Column="39" TopLine="1"/>
    786920      </Position25>
     921      <Position26>
     922        <Filename Value="../Generic/GenericObjectList.inc"/>
     923        <Caret Line="14" Column="55" TopLine="1"/>
     924      </Position26>
     925      <Position27>
     926        <Filename Value="UMainForm.pas"/>
     927        <Caret Line="89" Column="20" TopLine="70"/>
     928      </Position27>
     929      <Position28>
     930        <Filename Value="../Specialized/SpecializedDictionary.pas"/>
     931        <Caret Line="22" Column="36" TopLine="1"/>
     932      </Position28>
     933      <Position29>
     934        <Filename Value="../Generic/GenericTree.inc"/>
     935        <Caret Line="33" Column="25" TopLine="12"/>
     936      </Position29>
     937      <Position30>
     938        <Filename Value="../Specialized/SpecializedTree.pas"/>
     939        <Caret Line="82" Column="5" TopLine="47"/>
     940      </Position30>
    787941    </JumpHistory>
    788942  </ProjectOptions>
Note: See TracChangeset for help on using the changeset viewer.