Changeset 107 for Generics


Ignore:
Timestamp:
Jan 1, 2011, 1:34:29 AM (14 years ago)
Author:
george
Message:
Location:
Generics/TemplateGenerics
Files:
2 added
5 edited

Legend:

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

    r91 r107  
    3838      </Item2>
    3939    </RequiredPackages>
    40     <Units Count="95">
     40    <Units Count="56">
    4141      <Unit0>
    4242        <Filename Value="Demo.lpr"/>
     
    4646        <TopLine Value="1"/>
    4747        <CursorPos X="26" Y="8"/>
    48         <UsageCount Value="65"/>
     48        <UsageCount Value="233"/>
    4949        <DefaultSyntaxHighlighter Value="Delphi"/>
    5050      </Unit0>
     
    5757        <EditorIndex Value="0"/>
    5858        <WindowIndex Value="0"/>
    59         <TopLine Value="316"/>
    60         <CursorPos X="21" Y="332"/>
    61         <UsageCount Value="65"/>
     59        <TopLine Value="50"/>
     60        <CursorPos X="12" Y="61"/>
     61        <UsageCount Value="233"/>
    6262        <Loaded Value="True"/>
    6363        <LoadedDesigner Value="True"/>
     
    6565      </Unit1>
    6666      <Unit2>
    67         <Filename Value="../ListInteger.pas"/>
    68         <UnitName Value="ListInteger"/>
    69         <WindowIndex Value="0"/>
    70         <TopLine Value="1"/>
    71         <CursorPos X="24" Y="16"/>
    72         <UsageCount Value="10"/>
     67        <Filename Value="../Specialized/ListDouble.pas"/>
     68        <UnitName Value="ListDouble"/>
     69        <WindowIndex Value="0"/>
     70        <TopLine Value="1"/>
     71        <CursorPos X="1" Y="11"/>
     72        <UsageCount Value="8"/>
    7373      </Unit2>
    7474      <Unit3>
    75         <Filename Value="../ListObject.pas"/>
    76         <UnitName Value="ListObject"/>
    77         <WindowIndex Value="0"/>
    78         <TopLine Value="1"/>
    79         <CursorPos X="16" Y="26"/>
    80         <UsageCount Value="10"/>
     75        <Filename Value="../Specialized/specializedlist.pas"/>
     76        <UnitName Value="SpecializedList"/>
     77        <WindowIndex Value="0"/>
     78        <TopLine Value="3"/>
     79        <CursorPos X="43" Y="13"/>
     80        <UsageCount Value="8"/>
    8181      </Unit3>
    8282      <Unit4>
    83         <Filename Value="../ListPointer.pas"/>
    84         <UnitName Value="ListPointer"/>
    85         <WindowIndex Value="0"/>
    86         <TopLine Value="1"/>
    87         <CursorPos X="16" Y="21"/>
    88         <UsageCount Value="10"/>
     83        <Filename Value="../Specialized/ListObject.pas"/>
     84        <UnitName Value="ListObject"/>
     85        <WindowIndex Value="0"/>
     86        <TopLine Value="33"/>
     87        <CursorPos X="12" Y="56"/>
     88        <UsageCount Value="8"/>
    8989      </Unit4>
    9090      <Unit5>
    91         <Filename Value="../TreeString.pas"/>
    92         <UnitName Value="TreeString"/>
    93         <WindowIndex Value="0"/>
    94         <TopLine Value="1"/>
    95         <CursorPos X="16" Y="24"/>
    96         <UsageCount Value="10"/>
     91        <Filename Value="../Specialized/ListPointer.pas"/>
     92        <UnitName Value="ListPointer"/>
     93        <WindowIndex Value="0"/>
     94        <TopLine Value="1"/>
     95        <CursorPos X="23" Y="21"/>
     96        <UsageCount Value="8"/>
    9797      </Unit5>
    9898      <Unit6>
    99         <Filename Value="../TreeGenericImplementation.tpl"/>
    100         <WindowIndex Value="0"/>
    101         <TopLine Value="1"/>
    102         <CursorPos X="23" Y="2"/>
    103         <UsageCount Value="10"/>
    104         <DefaultSyntaxHighlighter Value="None"/>
     99        <Filename Value="../Specialized/TreeString.pas"/>
     100        <UnitName Value="TreeString"/>
     101        <WindowIndex Value="0"/>
     102        <TopLine Value="1"/>
     103        <CursorPos X="23" Y="24"/>
     104        <UsageCount Value="8"/>
    105105      </Unit6>
    106106      <Unit7>
    107         <Filename Value="../TreeInteger.pas"/>
    108         <UnitName Value="TreeInteger"/>
    109         <WindowIndex Value="0"/>
    110         <TopLine Value="1"/>
    111         <CursorPos X="16" Y="24"/>
    112         <UsageCount Value="10"/>
     107        <Filename Value="../Specialized/TreePointer.pas"/>
     108        <UnitName Value="TreePointer"/>
     109        <WindowIndex Value="0"/>
     110        <TopLine Value="1"/>
     111        <CursorPos X="23" Y="13"/>
     112        <UsageCount Value="8"/>
    113113      </Unit7>
    114114      <Unit8>
    115         <Filename Value="../TreeObject.pas"/>
     115        <Filename Value="../Specialized/TreeObject.pas"/>
    116116        <UnitName Value="TreeObject"/>
    117117        <WindowIndex Value="0"/>
    118118        <TopLine Value="1"/>
    119         <CursorPos X="16" Y="24"/>
    120         <UsageCount Value="10"/>
     119        <CursorPos X="23" Y="24"/>
     120        <UsageCount Value="8"/>
    121121      </Unit8>
    122122      <Unit9>
    123         <Filename Value="../TreePointer.pas"/>
    124         <UnitName Value="TreePointer"/>
    125         <WindowIndex Value="0"/>
    126         <TopLine Value="1"/>
    127         <CursorPos X="16" Y="24"/>
    128         <UsageCount Value="10"/>
     123        <Filename Value="../Specialized/TreeInteger.pas"/>
     124        <UnitName Value="TreeInteger"/>
     125        <WindowIndex Value="0"/>
     126        <TopLine Value="1"/>
     127        <CursorPos X="31" Y="13"/>
     128        <UsageCount Value="8"/>
    129129      </Unit9>
    130130      <Unit10>
    131         <Filename Value="../ListDouble.pas"/>
    132         <UnitName Value="ListDouble"/>
    133         <WindowIndex Value="0"/>
    134         <TopLine Value="1"/>
    135         <CursorPos X="16" Y="17"/>
    136         <UsageCount Value="10"/>
     131        <Filename Value="../Specialized/ListString.pas"/>
     132        <UnitName Value="ListString"/>
     133        <WindowIndex Value="0"/>
     134        <TopLine Value="1"/>
     135        <CursorPos X="29" Y="17"/>
     136        <UsageCount Value="8"/>
    137137      </Unit10>
    138138      <Unit11>
    139         <Filename Value="../ListString.pas"/>
    140         <UnitName Value="ListString"/>
    141         <WindowIndex Value="0"/>
    142         <TopLine Value="1"/>
    143         <CursorPos X="24" Y="21"/>
    144         <UsageCount Value="10"/>
     139        <Filename Value="../Generic/TreeImplementation.tpl"/>
     140        <WindowIndex Value="0"/>
     141        <TopLine Value="1"/>
     142        <CursorPos X="1" Y="4"/>
     143        <UsageCount Value="8"/>
     144        <DefaultSyntaxHighlighter Value="None"/>
    145145      </Unit11>
    146146      <Unit12>
    147         <Filename Value="../ListGenericImplementation.tpl"/>
    148         <WindowIndex Value="0"/>
    149         <TopLine Value="161"/>
    150         <CursorPos X="15" Y="187"/>
    151         <UsageCount Value="10"/>
     147        <Filename Value="../Generic/TreeInterface.tpl"/>
     148        <WindowIndex Value="0"/>
     149        <TopLine Value="1"/>
     150        <CursorPos X="21" Y="6"/>
     151        <UsageCount Value="8"/>
    152152        <DefaultSyntaxHighlighter Value="None"/>
    153153      </Unit12>
    154154      <Unit13>
    155         <Filename Value="../ListGenericInterface.tpl"/>
    156         <WindowIndex Value="0"/>
    157         <TopLine Value="1"/>
    158         <CursorPos X="3" Y="7"/>
    159         <UsageCount Value="10"/>
     155        <Filename Value="../Generic/ListInterface.tpl"/>
     156        <WindowIndex Value="0"/>
     157        <TopLine Value="1"/>
     158        <CursorPos X="1" Y="1"/>
     159        <UsageCount Value="8"/>
    160160        <DefaultSyntaxHighlighter Value="None"/>
    161161      </Unit13>
    162162      <Unit14>
    163         <Filename Value="../TreeGenericInterface.tpl"/>
    164         <WindowIndex Value="0"/>
    165         <TopLine Value="1"/>
    166         <CursorPos X="53" Y="4"/>
    167         <UsageCount Value="10"/>
     163        <Filename Value="../Generic/ListImplementation.tpl"/>
     164        <WindowIndex Value="0"/>
     165        <TopLine Value="1"/>
     166        <CursorPos X="25" Y="13"/>
     167        <UsageCount Value="9"/>
    168168        <DefaultSyntaxHighlighter Value="None"/>
    169169      </Unit14>
    170170      <Unit15>
    171         <Filename Value="/usr/share/fpcsrc/rtl/unix/classes.pp"/>
    172         <UnitName Value="Classes"/>
    173         <WindowIndex Value="0"/>
    174         <TopLine Value="21"/>
    175         <CursorPos X="14" Y="36"/>
    176         <UsageCount Value="9"/>
    177         <DefaultSyntaxHighlighter Value="Delphi"/>
     171        <Filename Value="../Generic/DictionaryImplementation.tpl"/>
     172        <WindowIndex Value="0"/>
     173        <TopLine Value="4"/>
     174        <CursorPos X="3" Y="6"/>
     175        <UsageCount Value="8"/>
     176        <DefaultSyntaxHighlighter Value="None"/>
    178177      </Unit15>
    179178      <Unit16>
    180         <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/classesh.inc"/>
    181         <WindowIndex Value="0"/>
    182         <TopLine Value="558"/>
    183         <CursorPos X="14" Y="575"/>
     179        <Filename Value="../Generic/DictionaryInterface.tpl"/>
     180        <WindowIndex Value="0"/>
     181        <TopLine Value="1"/>
     182        <CursorPos X="14" Y="16"/>
     183        <UsageCount Value="8"/>
     184        <DefaultSyntaxHighlighter Value="None"/>
     185      </Unit16>
     186      <Unit17>
     187        <Filename Value="../Specialized/DictionaryString.pas"/>
     188        <UnitName Value="DictionaryString"/>
     189        <WindowIndex Value="0"/>
     190        <TopLine Value="1"/>
     191        <CursorPos X="32" Y="18"/>
     192        <UsageCount Value="8"/>
     193      </Unit17>
     194      <Unit18>
     195        <Filename Value="../Generic/StackInterface.tpl"/>
     196        <WindowIndex Value="0"/>
     197        <TopLine Value="1"/>
     198        <CursorPos X="20" Y="12"/>
     199        <UsageCount Value="6"/>
     200        <DefaultSyntaxHighlighter Value="None"/>
     201      </Unit18>
     202      <Unit19>
     203        <Filename Value="../Specialized/StackString.pas"/>
     204        <UnitName Value="StackString"/>
     205        <WindowIndex Value="0"/>
     206        <TopLine Value="1"/>
     207        <CursorPos X="1" Y="22"/>
     208        <UsageCount Value="6"/>
     209      </Unit19>
     210      <Unit20>
     211        <Filename Value="../Generic/StackImplementation.tpl"/>
     212        <WindowIndex Value="0"/>
     213        <TopLine Value="1"/>
     214        <CursorPos X="1" Y="1"/>
     215        <UsageCount Value="6"/>
     216        <DefaultSyntaxHighlighter Value="None"/>
     217      </Unit20>
     218      <Unit21>
     219        <Filename Value="../Generic/QueueImplementation.tpl"/>
     220        <WindowIndex Value="0"/>
     221        <TopLine Value="1"/>
     222        <CursorPos X="1" Y="3"/>
     223        <UsageCount Value="6"/>
     224        <DefaultSyntaxHighlighter Value="None"/>
     225      </Unit21>
     226      <Unit22>
     227        <Filename Value="../Generic/QueueInterface.tpl"/>
     228        <WindowIndex Value="0"/>
     229        <TopLine Value="1"/>
     230        <CursorPos X="1" Y="3"/>
     231        <UsageCount Value="6"/>
     232        <DefaultSyntaxHighlighter Value="None"/>
     233      </Unit22>
     234      <Unit23>
     235        <Filename Value="../Specialized/ListChar.pas"/>
     236        <UnitName Value="ListChar"/>
     237        <WindowIndex Value="0"/>
     238        <TopLine Value="45"/>
     239        <CursorPos X="9" Y="79"/>
     240        <UsageCount Value="5"/>
     241      </Unit23>
     242      <Unit24>
     243        <Filename Value="../Generic/SetInterface.tpl"/>
     244        <WindowIndex Value="0"/>
     245        <TopLine Value="1"/>
     246        <CursorPos X="21" Y="4"/>
     247        <UsageCount Value="10"/>
     248        <DefaultSyntaxHighlighter Value="None"/>
     249      </Unit24>
     250      <Unit25>
     251        <Filename Value="../Specialized/SetChar.pas"/>
     252        <UnitName Value="SetChar"/>
     253        <WindowIndex Value="0"/>
     254        <TopLine Value="1"/>
     255        <CursorPos X="1" Y="25"/>
     256        <UsageCount Value="10"/>
     257      </Unit25>
     258      <Unit26>
     259        <Filename Value="../Generic/SetImplementation.tpl"/>
     260        <WindowIndex Value="0"/>
     261        <TopLine Value="1"/>
     262        <CursorPos X="1" Y="3"/>
     263        <UsageCount Value="10"/>
     264        <DefaultSyntaxHighlighter Value="None"/>
     265      </Unit26>
     266      <Unit27>
     267        <Filename Value="../Generic/RangeInterface.tpl"/>
     268        <WindowIndex Value="0"/>
     269        <TopLine Value="1"/>
     270        <CursorPos X="7" Y="4"/>
     271        <UsageCount Value="10"/>
     272        <DefaultSyntaxHighlighter Value="None"/>
     273      </Unit27>
     274      <Unit28>
     275        <Filename Value="../Specialized/RangeDateTime.pas"/>
     276        <UnitName Value="RangeDateTime"/>
     277        <WindowIndex Value="0"/>
     278        <TopLine Value="1"/>
     279        <CursorPos X="14" Y="15"/>
     280        <UsageCount Value="10"/>
     281      </Unit28>
     282      <Unit29>
     283        <Filename Value="../Generic/RangeImplementation.tpl"/>
     284        <WindowIndex Value="0"/>
     285        <TopLine Value="1"/>
     286        <CursorPos X="14" Y="18"/>
     287        <UsageCount Value="10"/>
     288        <DefaultSyntaxHighlighter Value="None"/>
     289      </Unit29>
     290      <Unit30>
     291        <Filename Value="../Specialized/ListVariant.pas"/>
     292        <UnitName Value="ListVariant"/>
     293        <WindowIndex Value="0"/>
     294        <TopLine Value="2"/>
     295        <CursorPos X="30" Y="8"/>
     296        <UsageCount Value="10"/>
     297      </Unit30>
     298      <Unit31>
     299        <Filename Value="ListObject.pas"/>
     300        <UnitName Value="ListObject"/>
     301        <WindowIndex Value="0"/>
     302        <TopLine Value="13"/>
     303        <CursorPos X="15" Y="12"/>
    184304        <UsageCount Value="12"/>
    185305        <DefaultSyntaxHighlighter Value="Delphi"/>
    186       </Unit16>
    187       <Unit17>
    188         <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/lists.inc"/>
    189         <WindowIndex Value="0"/>
    190         <TopLine Value="588"/>
    191         <CursorPos X="3" Y="593"/>
    192         <UsageCount Value="12"/>
    193         <DefaultSyntaxHighlighter Value="Delphi"/>
    194       </Unit17>
    195       <Unit18>
    196         <Filename Value="../../../../../lazarus/trunk/lcl/comctrls.pp"/>
    197         <UnitName Value="ComCtrls"/>
    198         <WindowIndex Value="0"/>
    199         <TopLine Value="2015"/>
    200         <CursorPos X="20" Y="2048"/>
    201         <UsageCount Value="9"/>
    202       </Unit18>
    203       <Unit19>
    204         <Filename Value="../Specialized/ListDouble.pas"/>
    205         <UnitName Value="ListDouble"/>
    206         <WindowIndex Value="0"/>
    207         <TopLine Value="1"/>
    208         <CursorPos X="1" Y="11"/>
    209         <UsageCount Value="25"/>
    210       </Unit19>
    211       <Unit20>
    212         <Filename Value="../Specialized/specializedlist.pas"/>
    213         <UnitName Value="SpecializedList"/>
    214         <WindowIndex Value="0"/>
    215         <TopLine Value="3"/>
    216         <CursorPos X="43" Y="13"/>
    217         <UsageCount Value="25"/>
    218       </Unit20>
    219       <Unit21>
    220         <Filename Value="../Specialized/ListObject.pas"/>
    221         <UnitName Value="ListObject"/>
    222         <WindowIndex Value="0"/>
    223         <TopLine Value="33"/>
    224         <CursorPos X="12" Y="56"/>
    225         <UsageCount Value="25"/>
    226       </Unit21>
    227       <Unit22>
    228         <Filename Value="../Specialized/ListPointer.pas"/>
    229         <UnitName Value="ListPointer"/>
    230         <WindowIndex Value="0"/>
    231         <TopLine Value="1"/>
    232         <CursorPos X="23" Y="21"/>
    233         <UsageCount Value="25"/>
    234       </Unit22>
    235       <Unit23>
    236         <Filename Value="../Specialized/TreeString.pas"/>
    237         <UnitName Value="TreeString"/>
    238         <WindowIndex Value="0"/>
    239         <TopLine Value="1"/>
    240         <CursorPos X="23" Y="24"/>
    241         <UsageCount Value="25"/>
    242       </Unit23>
    243       <Unit24>
    244         <Filename Value="../Specialized/TreePointer.pas"/>
    245         <UnitName Value="TreePointer"/>
    246         <WindowIndex Value="0"/>
    247         <TopLine Value="1"/>
    248         <CursorPos X="23" Y="13"/>
    249         <UsageCount Value="25"/>
    250       </Unit24>
    251       <Unit25>
    252         <Filename Value="../Specialized/TreeObject.pas"/>
    253         <UnitName Value="TreeObject"/>
    254         <WindowIndex Value="0"/>
    255         <TopLine Value="1"/>
    256         <CursorPos X="23" Y="24"/>
    257         <UsageCount Value="25"/>
    258       </Unit25>
    259       <Unit26>
    260         <Filename Value="../Specialized/TreeInteger.pas"/>
    261         <UnitName Value="TreeInteger"/>
    262         <WindowIndex Value="0"/>
    263         <TopLine Value="1"/>
    264         <CursorPos X="31" Y="13"/>
    265         <UsageCount Value="25"/>
    266       </Unit26>
    267       <Unit27>
    268         <Filename Value="../Specialized/ListString.pas"/>
    269         <UnitName Value="ListString"/>
    270         <WindowIndex Value="0"/>
    271         <TopLine Value="1"/>
    272         <CursorPos X="29" Y="17"/>
    273         <UsageCount Value="25"/>
    274       </Unit27>
    275       <Unit28>
    276         <Filename Value="../Generic/TreeImplementation.tpl"/>
    277         <WindowIndex Value="0"/>
    278         <TopLine Value="1"/>
    279         <CursorPos X="1" Y="4"/>
    280         <UsageCount Value="25"/>
    281         <DefaultSyntaxHighlighter Value="None"/>
    282       </Unit28>
    283       <Unit29>
    284         <Filename Value="../Generic/TreeInterface.tpl"/>
    285         <WindowIndex Value="0"/>
    286         <TopLine Value="1"/>
    287         <CursorPos X="21" Y="6"/>
    288         <UsageCount Value="25"/>
    289         <DefaultSyntaxHighlighter Value="None"/>
    290       </Unit29>
    291       <Unit30>
    292         <Filename Value="../Generic/ListInterface.tpl"/>
    293         <WindowIndex Value="0"/>
    294         <TopLine Value="1"/>
    295         <CursorPos X="1" Y="1"/>
    296         <UsageCount Value="25"/>
    297         <DefaultSyntaxHighlighter Value="None"/>
    298       </Unit30>
    299       <Unit31>
    300         <Filename Value="../Generic/ListImplementation.tpl"/>
    301         <WindowIndex Value="0"/>
    302         <TopLine Value="1"/>
    303         <CursorPos X="25" Y="13"/>
    304         <UsageCount Value="26"/>
    305         <DefaultSyntaxHighlighter Value="None"/>
    306306      </Unit31>
    307307      <Unit32>
    308         <Filename Value="../Generic/DictionaryImplementation.tpl"/>
    309         <WindowIndex Value="0"/>
    310         <TopLine Value="4"/>
    311         <CursorPos X="3" Y="6"/>
    312         <UsageCount Value="25"/>
    313         <DefaultSyntaxHighlighter Value="None"/>
     308        <Filename Value="../Generic/GenericList.inc"/>
     309        <IsVisibleTab Value="True"/>
     310        <EditorIndex Value="5"/>
     311        <WindowIndex Value="0"/>
     312        <TopLine Value="443"/>
     313        <CursorPos X="17" Y="453"/>
     314        <UsageCount Value="99"/>
     315        <Loaded Value="True"/>
    314316      </Unit32>
    315317      <Unit33>
    316         <Filename Value="../Generic/DictionaryInterface.tpl"/>
    317         <WindowIndex Value="0"/>
    318         <TopLine Value="1"/>
    319         <CursorPos X="14" Y="16"/>
    320         <UsageCount Value="25"/>
    321         <DefaultSyntaxHighlighter Value="None"/>
     318        <Filename Value="../Generic/GenericDictionary.inc"/>
     319        <WindowIndex Value="0"/>
     320        <TopLine Value="31"/>
     321        <CursorPos X="44" Y="47"/>
     322        <UsageCount Value="98"/>
    322323      </Unit33>
    323324      <Unit34>
    324         <Filename Value="../Specialized/DictionaryString.pas"/>
    325         <UnitName Value="DictionaryString"/>
    326         <WindowIndex Value="0"/>
    327         <TopLine Value="1"/>
    328         <CursorPos X="32" Y="18"/>
    329         <UsageCount Value="25"/>
     325        <Filename Value="../Generic/GenericObjectList.inc"/>
     326        <WindowIndex Value="0"/>
     327        <TopLine Value="1"/>
     328        <CursorPos X="36" Y="48"/>
     329        <UsageCount Value="98"/>
    330330      </Unit34>
    331331      <Unit35>
    332         <Filename Value="../Generic/StackInterface.tpl"/>
    333         <WindowIndex Value="0"/>
    334         <TopLine Value="1"/>
    335         <CursorPos X="20" Y="12"/>
    336         <UsageCount Value="23"/>
    337         <DefaultSyntaxHighlighter Value="None"/>
     332        <Filename Value="../Generic/GenericQueue.inc"/>
     333        <WindowIndex Value="0"/>
     334        <TopLine Value="3"/>
     335        <CursorPos X="1" Y="3"/>
     336        <UsageCount Value="98"/>
    338337      </Unit35>
    339338      <Unit36>
    340         <Filename Value="../Specialized/StackString.pas"/>
    341         <UnitName Value="StackString"/>
    342         <WindowIndex Value="0"/>
    343         <TopLine Value="1"/>
    344         <CursorPos X="1" Y="22"/>
    345         <UsageCount Value="23"/>
     339        <Filename Value="../Generic/GenericSet.inc"/>
     340        <WindowIndex Value="0"/>
     341        <TopLine Value="11"/>
     342        <CursorPos X="42" Y="11"/>
     343        <UsageCount Value="98"/>
    346344      </Unit36>
    347345      <Unit37>
    348         <Filename Value="../Generic/StackImplementation.tpl"/>
    349         <WindowIndex Value="0"/>
    350         <TopLine Value="1"/>
    351         <CursorPos X="1" Y="1"/>
    352         <UsageCount Value="23"/>
    353         <DefaultSyntaxHighlighter Value="None"/>
     346        <Filename Value="../Generic/GenericStack.inc"/>
     347        <WindowIndex Value="0"/>
     348        <TopLine Value="3"/>
     349        <CursorPos X="1" Y="3"/>
     350        <UsageCount Value="98"/>
    354351      </Unit37>
    355352      <Unit38>
    356         <Filename Value="../Generic/QueueImplementation.tpl"/>
    357         <WindowIndex Value="0"/>
    358         <TopLine Value="1"/>
    359         <CursorPos X="1" Y="3"/>
    360         <UsageCount Value="23"/>
    361         <DefaultSyntaxHighlighter Value="None"/>
     353        <Filename Value="../Generic/GenericTree.inc"/>
     354        <WindowIndex Value="0"/>
     355        <TopLine Value="1"/>
     356        <CursorPos X="22" Y="30"/>
     357        <UsageCount Value="98"/>
    362358      </Unit38>
    363359      <Unit39>
    364         <Filename Value="../Generic/QueueInterface.tpl"/>
    365         <WindowIndex Value="0"/>
    366         <TopLine Value="1"/>
    367         <CursorPos X="1" Y="3"/>
    368         <UsageCount Value="23"/>
    369         <DefaultSyntaxHighlighter Value="None"/>
     360        <Filename Value="../Specialized/SpecializedDictionary.pas"/>
     361        <UnitName Value="SpecializedDictionary"/>
     362        <WindowIndex Value="0"/>
     363        <TopLine Value="6"/>
     364        <CursorPos X="56" Y="36"/>
     365        <UsageCount Value="97"/>
    370366      </Unit39>
    371367      <Unit40>
    372         <Filename Value="/usr/share/fpcsrc/rtl/objpas/sysutils/sysstrh.inc"/>
    373         <WindowIndex Value="0"/>
    374         <TopLine Value="60"/>
    375         <CursorPos X="10" Y="77"/>
    376         <UsageCount Value="13"/>
    377         <DefaultSyntaxHighlighter Value="Delphi"/>
     368        <Filename Value="../Specialized/SpecializedStack.pas"/>
     369        <UnitName Value="SpecializedStack"/>
     370        <WindowIndex Value="0"/>
     371        <TopLine Value="27"/>
     372        <CursorPos X="50" Y="59"/>
     373        <UsageCount Value="96"/>
    378374      </Unit40>
    379375      <Unit41>
    380         <Filename Value="/usr/share/fpcsrc/rtl/objpas/sysutils/sysstr.inc"/>
    381         <WindowIndex Value="0"/>
    382         <TopLine Value="89"/>
    383         <CursorPos X="62" Y="98"/>
    384         <UsageCount Value="10"/>
    385         <DefaultSyntaxHighlighter Value="Delphi"/>
     376        <Filename Value="../Specialized/SpecializedTree.pas"/>
     377        <UnitName Value="SpecializedTree"/>
     378        <WindowIndex Value="0"/>
     379        <TopLine Value="57"/>
     380        <CursorPos X="48" Y="85"/>
     381        <UsageCount Value="96"/>
    386382      </Unit41>
    387383      <Unit42>
    388         <Filename Value="../Specialized/ListChar.pas"/>
    389         <UnitName Value="ListChar"/>
    390         <WindowIndex Value="0"/>
    391         <TopLine Value="45"/>
    392         <CursorPos X="9" Y="79"/>
    393         <UsageCount Value="22"/>
     384        <Filename Value="../Generic/GenericRange.inc"/>
     385        <WindowIndex Value="0"/>
     386        <TopLine Value="1"/>
     387        <CursorPos X="33" Y="14"/>
     388        <UsageCount Value="96"/>
    394389      </Unit42>
    395390      <Unit43>
    396         <Filename Value="/usr/share/fpcsrc/rtl/unix/sysutils.pp"/>
    397         <UnitName Value="sysutils"/>
    398         <WindowIndex Value="0"/>
    399         <TopLine Value="1"/>
    400         <CursorPos X="15" Y="8"/>
    401         <UsageCount Value="10"/>
    402         <DefaultSyntaxHighlighter Value="Delphi"/>
     391        <Filename Value="../Specialized/SpecializedQueue.pas"/>
     392        <UnitName Value="SpecializedQueue"/>
     393        <WindowIndex Value="0"/>
     394        <TopLine Value="52"/>
     395        <CursorPos X="1" Y="81"/>
     396        <UsageCount Value="96"/>
    403397      </Unit43>
    404398      <Unit44>
    405         <Filename Value="/usr/share/fpcsrc/rtl/inc/systemh.inc"/>
    406         <WindowIndex Value="0"/>
    407         <TopLine Value="747"/>
    408         <CursorPos X="11" Y="764"/>
    409         <UsageCount Value="10"/>
    410         <DefaultSyntaxHighlighter Value="Delphi"/>
     399        <Filename Value="../Specialized/SpecializedSet.pas"/>
     400        <UnitName Value="SpecializedSet"/>
     401        <WindowIndex Value="0"/>
     402        <TopLine Value="29"/>
     403        <CursorPos X="1" Y="62"/>
     404        <UsageCount Value="96"/>
    411405      </Unit44>
    412406      <Unit45>
    413         <Filename Value="/usr/share/fpcsrc/rtl/objpas/sysutils/sysunih.inc"/>
    414         <WindowIndex Value="0"/>
    415         <TopLine Value="3"/>
    416         <CursorPos X="10" Y="21"/>
    417         <UsageCount Value="9"/>
    418         <DefaultSyntaxHighlighter Value="Delphi"/>
     407        <Filename Value="../Specialized/SpecializedObjectList.pas"/>
     408        <UnitName Value="SpecializedObjectList"/>
     409        <WindowIndex Value="0"/>
     410        <TopLine Value="9"/>
     411        <CursorPos X="60" Y="36"/>
     412        <UsageCount Value="95"/>
    419413      </Unit45>
    420414      <Unit46>
    421         <Filename Value="/usr/share/fpcsrc/rtl/objpas/sysutils/sysuni.inc"/>
    422         <WindowIndex Value="0"/>
    423         <TopLine Value="21"/>
    424         <CursorPos X="5" Y="25"/>
    425         <UsageCount Value="9"/>
    426         <DefaultSyntaxHighlighter Value="Delphi"/>
     415        <Filename Value="../Specialized/SpecializedList.pas"/>
     416        <UnitName Value="SpecializedList"/>
     417        <EditorIndex Value="6"/>
     418        <WindowIndex Value="0"/>
     419        <TopLine Value="73"/>
     420        <CursorPos X="1" Y="104"/>
     421        <UsageCount Value="95"/>
     422        <Loaded Value="True"/>
    427423      </Unit46>
    428424      <Unit47>
    429         <Filename Value="StopWatch.pas"/>
    430         <UnitName Value="StopWatch"/>
    431         <WindowIndex Value="0"/>
    432         <TopLine Value="12"/>
    433         <CursorPos X="67" Y="25"/>
    434         <UsageCount Value="10"/>
    435         <DefaultSyntaxHighlighter Value="Delphi"/>
     425        <Filename Value="../Generic/GenericMatrix.inc"/>
     426        <EditorIndex Value="8"/>
     427        <WindowIndex Value="0"/>
     428        <TopLine Value="1"/>
     429        <CursorPos X="33" Y="10"/>
     430        <UsageCount Value="95"/>
     431        <Loaded Value="True"/>
    436432      </Unit47>
    437433      <Unit48>
    438         <Filename Value="../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/classesh.inc"/>
    439         <WindowIndex Value="0"/>
    440         <TopLine Value="871"/>
    441         <CursorPos X="35" Y="884"/>
    442         <UsageCount Value="16"/>
    443         <DefaultSyntaxHighlighter Value="Delphi"/>
     434        <Filename Value="../../../../../lazarus/trunk/lcl/graphics.pp"/>
     435        <UnitName Value="Graphics"/>
     436        <WindowIndex Value="0"/>
     437        <TopLine Value="2624"/>
     438        <CursorPos X="37" Y="2636"/>
     439        <UsageCount Value="94"/>
    444440      </Unit48>
    445441      <Unit49>
    446         <Filename Value="../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/lists.inc"/>
    447         <WindowIndex Value="0"/>
    448         <TopLine Value="694"/>
    449         <CursorPos X="12" Y="696"/>
    450         <UsageCount Value="16"/>
    451         <DefaultSyntaxHighlighter Value="Delphi"/>
     442        <Filename Value="../../../../../lazarus/trunk/lcl/interfaces/carbon/issues.xml"/>
     443        <WindowIndex Value="0"/>
     444        <TopLine Value="94"/>
     445        <CursorPos X="1" Y="1"/>
     446        <UsageCount Value="10"/>
     447        <DefaultSyntaxHighlighter Value="XML"/>
    452448      </Unit49>
    453449      <Unit50>
    454         <Filename Value="../Generic/SetInterface.tpl"/>
    455         <WindowIndex Value="0"/>
    456         <TopLine Value="1"/>
    457         <CursorPos X="21" Y="4"/>
    458         <UsageCount Value="17"/>
    459         <DefaultSyntaxHighlighter Value="None"/>
     450        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/classesh.inc"/>
     451        <EditorIndex Value="1"/>
     452        <WindowIndex Value="0"/>
     453        <TopLine Value="182"/>
     454        <CursorPos X="55" Y="185"/>
     455        <UsageCount Value="11"/>
     456        <Loaded Value="True"/>
    460457      </Unit50>
    461458      <Unit51>
    462         <Filename Value="../Specialized/SetChar.pas"/>
    463         <UnitName Value="SetChar"/>
    464         <WindowIndex Value="0"/>
    465         <TopLine Value="1"/>
    466         <CursorPos X="1" Y="25"/>
    467         <UsageCount Value="17"/>
     459        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/lists.inc"/>
     460        <EditorIndex Value="4"/>
     461        <WindowIndex Value="0"/>
     462        <TopLine Value="462"/>
     463        <CursorPos X="3" Y="464"/>
     464        <UsageCount Value="11"/>
     465        <Loaded Value="True"/>
    468466      </Unit51>
    469467      <Unit52>
    470         <Filename Value="../Generic/SetImplementation.tpl"/>
    471         <WindowIndex Value="0"/>
    472         <TopLine Value="1"/>
    473         <CursorPos X="1" Y="3"/>
    474         <UsageCount Value="17"/>
    475         <DefaultSyntaxHighlighter Value="None"/>
     468        <Filename Value="../Generic/GenericListObject.inc"/>
     469        <EditorIndex Value="7"/>
     470        <WindowIndex Value="0"/>
     471        <TopLine Value="1"/>
     472        <CursorPos X="21" Y="20"/>
     473        <UsageCount Value="11"/>
     474        <Loaded Value="True"/>
    476475      </Unit52>
    477476      <Unit53>
    478         <Filename Value="../Generic/RangeInterface.tpl"/>
    479         <WindowIndex Value="0"/>
    480         <TopLine Value="1"/>
    481         <CursorPos X="7" Y="4"/>
    482         <UsageCount Value="17"/>
    483         <DefaultSyntaxHighlighter Value="None"/>
     477        <Filename Value="/usr/share/fpcsrc/rtl/objpas/objpas.pp"/>
     478        <UnitName Value="objpas"/>
     479        <EditorIndex Value="2"/>
     480        <WindowIndex Value="0"/>
     481        <TopLine Value="9"/>
     482        <CursorPos X="27" Y="26"/>
     483        <UsageCount Value="11"/>
     484        <Loaded Value="True"/>
    484485      </Unit53>
    485486      <Unit54>
    486         <Filename Value="../Specialized/RangeDateTime.pas"/>
    487         <UnitName Value="RangeDateTime"/>
    488         <WindowIndex Value="0"/>
    489         <TopLine Value="1"/>
    490         <CursorPos X="14" Y="15"/>
    491         <UsageCount Value="17"/>
     487        <Filename Value="/usr/share/fpcsrc/rtl/inc/systemh.inc"/>
     488        <EditorIndex Value="3"/>
     489        <WindowIndex Value="0"/>
     490        <TopLine Value="381"/>
     491        <CursorPos X="3" Y="398"/>
     492        <UsageCount Value="11"/>
     493        <Loaded Value="True"/>
    492494      </Unit54>
    493495      <Unit55>
    494         <Filename Value="../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/inc/systemh.inc"/>
    495         <WindowIndex Value="0"/>
    496         <TopLine Value="520"/>
    497         <CursorPos X="11" Y="533"/>
    498         <UsageCount Value="15"/>
    499         <DefaultSyntaxHighlighter Value="Delphi"/>
     496        <Filename Value="/usr/share/fpcsrc/rtl/inc/varianth.inc"/>
     497        <WindowIndex Value="0"/>
     498        <TopLine Value="475"/>
     499        <CursorPos X="10" Y="503"/>
     500        <UsageCount Value="10"/>
    500501      </Unit55>
    501       <Unit56>
    502         <Filename Value="../Generic/RangeImplementation.tpl"/>
    503         <WindowIndex Value="0"/>
    504         <TopLine Value="1"/>
    505         <CursorPos X="14" Y="18"/>
    506         <UsageCount Value="17"/>
    507         <DefaultSyntaxHighlighter Value="None"/>
    508       </Unit56>
    509       <Unit57>
    510         <Filename Value="../Specialized/ListVariant.pas"/>
    511         <UnitName Value="ListVariant"/>
    512         <WindowIndex Value="0"/>
    513         <TopLine Value="2"/>
    514         <CursorPos X="30" Y="8"/>
    515         <UsageCount Value="17"/>
    516       </Unit57>
    517       <Unit58>
    518         <Filename Value="../ReadMe.txt"/>
    519         <WindowIndex Value="0"/>
    520         <TopLine Value="1"/>
    521         <CursorPos X="25" Y="8"/>
    522         <UsageCount Value="16"/>
    523         <DefaultSyntaxHighlighter Value="None"/>
    524       </Unit58>
    525       <Unit59>
    526         <Filename Value="../Specialized/ListByte.pas"/>
    527         <UnitName Value="ListByte"/>
    528         <WindowIndex Value="0"/>
    529         <TopLine Value="1"/>
    530         <CursorPos X="19" Y="15"/>
    531         <UsageCount Value="16"/>
    532       </Unit59>
    533       <Unit60>
    534         <Filename Value="../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/sysutils/sysstrh.inc"/>
    535         <WindowIndex Value="0"/>
    536         <TopLine Value="70"/>
    537         <CursorPos X="10" Y="84"/>
    538         <UsageCount Value="10"/>
    539         <DefaultSyntaxHighlighter Value="Delphi"/>
    540       </Unit60>
    541       <Unit61>
    542         <Filename Value="../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/sysutils/sysstr.inc"/>
    543         <WindowIndex Value="0"/>
    544         <TopLine Value="162"/>
    545         <CursorPos X="3" Y="168"/>
    546         <UsageCount Value="10"/>
    547         <DefaultSyntaxHighlighter Value="Delphi"/>
    548       </Unit61>
    549       <Unit62>
    550         <Filename Value="../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/streams.inc"/>
    551         <WindowIndex Value="0"/>
    552         <TopLine Value="518"/>
    553         <CursorPos X="3" Y="521"/>
    554         <UsageCount Value="10"/>
    555         <DefaultSyntaxHighlighter Value="Delphi"/>
    556       </Unit62>
    557       <Unit63>
    558         <Filename Value="../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/inc/generic.inc"/>
    559         <WindowIndex Value="0"/>
    560         <TopLine Value="100"/>
    561         <CursorPos X="25" Y="341"/>
    562         <UsageCount Value="10"/>
    563         <DefaultSyntaxHighlighter Value="Delphi"/>
    564       </Unit63>
    565       <Unit64>
    566         <Filename Value="../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/i386/i386.inc"/>
    567         <WindowIndex Value="0"/>
    568         <TopLine Value="1536"/>
    569         <CursorPos X="11" Y="1549"/>
    570         <UsageCount Value="10"/>
    571         <DefaultSyntaxHighlighter Value="Delphi"/>
    572       </Unit64>
    573       <Unit65>
    574         <Filename Value="../../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/inc/sstrings.inc"/>
    575         <WindowIndex Value="0"/>
    576         <TopLine Value="291"/>
    577         <CursorPos X="3" Y="295"/>
    578         <UsageCount Value="10"/>
    579         <DefaultSyntaxHighlighter Value="Delphi"/>
    580       </Unit65>
    581       <Unit66>
    582         <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/cregist.inc"/>
    583         <WindowIndex Value="0"/>
    584         <TopLine Value="168"/>
    585         <CursorPos X="3" Y="174"/>
    586         <UsageCount Value="10"/>
    587         <DefaultSyntaxHighlighter Value="Delphi"/>
    588       </Unit66>
    589       <Unit67>
    590         <Filename Value="/usr/share/fpcsrc/packages/fcl-base/src/contnrs.pp"/>
    591         <UnitName Value="contnrs"/>
    592         <WindowIndex Value="0"/>
    593         <TopLine Value="60"/>
    594         <CursorPos X="26" Y="72"/>
    595         <UsageCount Value="12"/>
    596         <DefaultSyntaxHighlighter Value="Delphi"/>
    597       </Unit67>
    598       <Unit68>
    599         <Filename Value="/usr/share/fpcsrc/rtl/inc/objpash.inc"/>
    600         <WindowIndex Value="0"/>
    601         <TopLine Value="160"/>
    602         <CursorPos X="22" Y="177"/>
    603         <UsageCount Value="10"/>
    604         <DefaultSyntaxHighlighter Value="Delphi"/>
    605       </Unit68>
    606       <Unit69>
    607         <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/stringl.inc"/>
    608         <WindowIndex Value="0"/>
    609         <TopLine Value="199"/>
    610         <CursorPos X="3" Y="205"/>
    611         <UsageCount Value="10"/>
    612         <DefaultSyntaxHighlighter Value="Delphi"/>
    613       </Unit69>
    614       <Unit70>
    615         <Filename Value="ListObject.pas"/>
    616         <UnitName Value="ListObject"/>
    617         <WindowIndex Value="0"/>
    618         <TopLine Value="13"/>
    619         <CursorPos X="15" Y="12"/>
    620         <UsageCount Value="29"/>
    621         <DefaultSyntaxHighlighter Value="Delphi"/>
    622       </Unit70>
    623       <Unit71>
    624         <Filename Value="../Generic/ObjectListInterface.tpl"/>
    625         <WindowIndex Value="0"/>
    626         <TopLine Value="1"/>
    627         <CursorPos X="21" Y="4"/>
    628         <UsageCount Value="11"/>
    629         <DefaultSyntaxHighlighter Value="None"/>
    630       </Unit71>
    631       <Unit72>
    632         <Filename Value="../Generic/ObjectListImplementation.tpl"/>
    633         <WindowIndex Value="0"/>
    634         <TopLine Value="1"/>
    635         <CursorPos X="1" Y="3"/>
    636         <UsageCount Value="11"/>
    637         <DefaultSyntaxHighlighter Value="None"/>
    638       </Unit72>
    639       <Unit73>
    640         <Filename Value="../neco.pas"/>
    641         <UnitName Value="neco"/>
    642         <WindowIndex Value="0"/>
    643         <TopLine Value="1"/>
    644         <CursorPos X="1" Y="1"/>
    645         <UsageCount Value="11"/>
    646       </Unit73>
    647       <Unit74>
    648         <Filename Value="../neco.inc"/>
    649         <WindowIndex Value="0"/>
    650         <TopLine Value="1"/>
    651         <CursorPos X="5" Y="2"/>
    652         <UsageCount Value="10"/>
    653       </Unit74>
    654       <Unit75>
    655         <Filename Value="../Generic/GList.inc"/>
    656         <WindowIndex Value="0"/>
    657         <TopLine Value="1"/>
    658         <CursorPos X="57" Y="57"/>
    659         <UsageCount Value="10"/>
    660       </Unit75>
    661       <Unit76>
    662         <Filename Value="../Specialized/StackDouble.pas"/>
    663         <UnitName Value="StackDouble"/>
    664         <WindowIndex Value="0"/>
    665         <TopLine Value="1"/>
    666         <CursorPos X="1" Y="1"/>
    667         <UsageCount Value="11"/>
    668       </Unit76>
    669       <Unit77>
    670         <Filename Value="../Specialized/DictionaryStringString.pas"/>
    671         <UnitName Value="DictionaryStringString"/>
    672         <WindowIndex Value="0"/>
    673         <TopLine Value="1"/>
    674         <CursorPos X="2" Y="5"/>
    675         <UsageCount Value="11"/>
    676       </Unit77>
    677       <Unit78>
    678         <Filename Value="../Generic/GenericList.inc"/>
    679         <IsVisibleTab Value="True"/>
    680         <EditorIndex Value="15"/>
    681         <WindowIndex Value="0"/>
    682         <TopLine Value="307"/>
    683         <CursorPos X="24" Y="307"/>
    684         <UsageCount Value="14"/>
    685         <Loaded Value="True"/>
    686       </Unit78>
    687       <Unit79>
    688         <Filename Value="../Generic/GenericDictionary.inc"/>
    689         <EditorIndex Value="1"/>
    690         <WindowIndex Value="0"/>
    691         <TopLine Value="31"/>
    692         <CursorPos X="44" Y="47"/>
    693         <UsageCount Value="14"/>
    694         <Loaded Value="True"/>
    695       </Unit79>
    696       <Unit80>
    697         <Filename Value="../Generic/GenericObjectList.inc"/>
    698         <EditorIndex Value="3"/>
    699         <WindowIndex Value="0"/>
    700         <TopLine Value="1"/>
    701         <CursorPos X="36" Y="48"/>
    702         <UsageCount Value="14"/>
    703         <Loaded Value="True"/>
    704       </Unit80>
    705       <Unit81>
    706         <Filename Value="../Generic/GenericQueue.inc"/>
    707         <EditorIndex Value="7"/>
    708         <WindowIndex Value="0"/>
    709         <TopLine Value="21"/>
    710         <CursorPos X="1" Y="3"/>
    711         <UsageCount Value="14"/>
    712         <Loaded Value="True"/>
    713       </Unit81>
    714       <Unit82>
    715         <Filename Value="../Generic/GenericSet.inc"/>
    716         <EditorIndex Value="12"/>
    717         <WindowIndex Value="0"/>
    718         <TopLine Value="21"/>
    719         <CursorPos X="42" Y="11"/>
    720         <UsageCount Value="14"/>
    721         <Loaded Value="True"/>
    722       </Unit82>
    723       <Unit83>
    724         <Filename Value="../Generic/GenericStack.inc"/>
    725         <EditorIndex Value="11"/>
    726         <WindowIndex Value="0"/>
    727         <TopLine Value="21"/>
    728         <CursorPos X="1" Y="3"/>
    729         <UsageCount Value="14"/>
    730         <Loaded Value="True"/>
    731       </Unit83>
    732       <Unit84>
    733         <Filename Value="../Generic/GenericTree.inc"/>
    734         <EditorIndex Value="13"/>
    735         <WindowIndex Value="0"/>
    736         <TopLine Value="1"/>
    737         <CursorPos X="22" Y="30"/>
    738         <UsageCount Value="14"/>
    739         <Loaded Value="True"/>
    740       </Unit84>
    741       <Unit85>
    742         <Filename Value="../Specialized/SpecializedDictionary.pas"/>
    743         <UnitName Value="SpecializedDictionary"/>
    744         <EditorIndex Value="9"/>
    745         <WindowIndex Value="0"/>
    746         <TopLine Value="9"/>
    747         <CursorPos X="56" Y="36"/>
    748         <UsageCount Value="13"/>
    749         <Loaded Value="True"/>
    750       </Unit85>
    751       <Unit86>
    752         <Filename Value="../Specialized/SpecializedStack.pas"/>
    753         <UnitName Value="SpecializedStack"/>
    754         <EditorIndex Value="10"/>
    755         <WindowIndex Value="0"/>
    756         <TopLine Value="30"/>
    757         <CursorPos X="50" Y="59"/>
    758         <UsageCount Value="12"/>
    759         <Loaded Value="True"/>
    760       </Unit86>
    761       <Unit87>
    762         <Filename Value="../Specialized/SpecializedTree.pas"/>
    763         <UnitName Value="SpecializedTree"/>
    764         <EditorIndex Value="2"/>
    765         <WindowIndex Value="0"/>
    766         <TopLine Value="57"/>
    767         <CursorPos X="48" Y="85"/>
    768         <UsageCount Value="12"/>
    769         <Loaded Value="True"/>
    770       </Unit87>
    771       <Unit88>
    772         <Filename Value="../Generic/GenericRange.inc"/>
    773         <EditorIndex Value="8"/>
    774         <WindowIndex Value="0"/>
    775         <TopLine Value="1"/>
    776         <CursorPos X="1" Y="44"/>
    777         <UsageCount Value="12"/>
    778         <Loaded Value="True"/>
    779       </Unit88>
    780       <Unit89>
    781         <Filename Value="../Specialized/SpecializedQueue.pas"/>
    782         <UnitName Value="SpecializedQueue"/>
    783         <EditorIndex Value="4"/>
    784         <WindowIndex Value="0"/>
    785         <TopLine Value="52"/>
    786         <CursorPos X="1" Y="81"/>
    787         <UsageCount Value="12"/>
    788         <Loaded Value="True"/>
    789       </Unit89>
    790       <Unit90>
    791         <Filename Value="../Specialized/SpecializedSet.pas"/>
    792         <UnitName Value="SpecializedSet"/>
    793         <EditorIndex Value="6"/>
    794         <WindowIndex Value="0"/>
    795         <TopLine Value="31"/>
    796         <CursorPos X="1" Y="62"/>
    797         <UsageCount Value="12"/>
    798         <Loaded Value="True"/>
    799       </Unit90>
    800       <Unit91>
    801         <Filename Value="../Generic/GenericPoint.inc"/>
    802         <WindowIndex Value="0"/>
    803         <TopLine Value="1"/>
    804         <CursorPos X="33" Y="5"/>
    805         <UsageCount Value="11"/>
    806       </Unit91>
    807       <Unit92>
    808         <Filename Value="../Specialized/SpecializedPoint.pas"/>
    809         <UnitName Value="SpecializedPoint"/>
    810         <WindowIndex Value="0"/>
    811         <TopLine Value="1"/>
    812         <CursorPos X="1" Y="1"/>
    813         <UsageCount Value="11"/>
    814       </Unit92>
    815       <Unit93>
    816         <Filename Value="../Specialized/SpecializedObjectList.pas"/>
    817         <UnitName Value="SpecializedObjectList"/>
    818         <EditorIndex Value="5"/>
    819         <WindowIndex Value="0"/>
    820         <TopLine Value="9"/>
    821         <CursorPos X="60" Y="36"/>
    822         <UsageCount Value="11"/>
    823         <Loaded Value="True"/>
    824       </Unit93>
    825       <Unit94>
    826         <Filename Value="../Specialized/SpecializedList.pas"/>
    827         <UnitName Value="SpecializedList"/>
    828         <EditorIndex Value="14"/>
    829         <WindowIndex Value="0"/>
    830         <TopLine Value="63"/>
    831         <CursorPos X="54" Y="79"/>
    832         <UsageCount Value="10"/>
    833         <Loaded Value="True"/>
    834       </Unit94>
    835502    </Units>
    836503    <JumpHistory Count="30" HistoryIndex="29">
    837504      <Position1>
    838         <Filename Value="UMainForm.pas"/>
    839         <Caret Line="188" Column="5" TopLine="168"/>
     505        <Filename Value="../Generic/GenericList.inc"/>
     506        <Caret Line="9" Column="45" TopLine="1"/>
    840507      </Position1>
    841508      <Position2>
    842509        <Filename Value="UMainForm.pas"/>
    843         <Caret Line="393" Column="5" TopLine="364"/>
     510        <Caret Line="38" Column="16" TopLine="11"/>
    844511      </Position2>
    845512      <Position3>
    846         <Filename Value="../Specialized/SpecializedQueue.pas"/>
    847         <Caret Line="33" Column="32" TopLine="1"/>
     513        <Filename Value="UMainForm.pas"/>
     514        <Caret Line="40" Column="95" TopLine="11"/>
    848515      </Position3>
    849516      <Position4>
    850         <Filename Value="../Specialized/SpecializedQueue.pas"/>
    851         <Caret Line="20" Column="34" TopLine="1"/>
     517        <Filename Value="UMainForm.pas"/>
     518        <Caret Line="43" Column="37" TopLine="24"/>
    852519      </Position4>
    853520      <Position5>
    854         <Filename Value="../Specialized/SpecializedDictionary.pas"/>
    855         <Caret Line="22" Column="36" TopLine="1"/>
     521        <Filename Value="UMainForm.pas"/>
     522        <Caret Line="37" Column="1" TopLine="29"/>
    856523      </Position5>
    857524      <Position6>
    858525        <Filename Value="UMainForm.pas"/>
    859         <Caret Line="469" Column="3" TopLine="439"/>
     526        <Caret Line="470" Column="1" TopLine="442"/>
    860527      </Position6>
    861528      <Position7>
    862         <Filename Value="../Generic/GenericObjectList.inc"/>
    863         <Caret Line="14" Column="55" TopLine="1"/>
     529        <Filename Value="UMainForm.pas"/>
     530        <Caret Line="10" Column="12" TopLine="21"/>
    864531      </Position7>
    865532      <Position8>
    866533        <Filename Value="UMainForm.pas"/>
    867         <Caret Line="89" Column="20" TopLine="70"/>
     534        <Caret Line="277" Column="17" TopLine="258"/>
    868535      </Position8>
    869536      <Position9>
    870         <Filename Value="../Specialized/SpecializedDictionary.pas"/>
    871         <Caret Line="22" Column="36" TopLine="1"/>
     537        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/lists.inc"/>
     538        <Caret Line="596" Column="16" TopLine="590"/>
    872539      </Position9>
    873540      <Position10>
    874         <Filename Value="../Generic/GenericTree.inc"/>
    875         <Caret Line="33" Column="25" TopLine="12"/>
     541        <Filename Value="../Generic/GenericList.inc"/>
     542        <Caret Line="11" Column="16" TopLine="1"/>
    876543      </Position10>
    877544      <Position11>
    878         <Filename Value="../Specialized/SpecializedTree.pas"/>
    879         <Caret Line="82" Column="5" TopLine="47"/>
     545        <Filename Value="../Generic/GenericList.inc"/>
     546        <Caret Line="46" Column="19" TopLine="18"/>
    880547      </Position11>
    881548      <Position12>
    882         <Filename Value="UMainForm.pas"/>
    883         <Caret Line="360" Column="51" TopLine="342"/>
     549        <Filename Value="../Generic/GenericList.inc"/>
     550        <Caret Line="47" Column="19" TopLine="19"/>
    884551      </Position12>
    885552      <Position13>
    886553        <Filename Value="../Generic/GenericList.inc"/>
    887         <Caret Line="71" Column="86" TopLine="58"/>
     554        <Caret Line="48" Column="20" TopLine="20"/>
    888555      </Position13>
    889556      <Position14>
    890557        <Filename Value="../Generic/GenericList.inc"/>
    891         <Caret Line="18" Column="42" TopLine="1"/>
     558        <Caret Line="52" Column="57" TopLine="26"/>
    892559      </Position14>
    893560      <Position15>
    894         <Filename Value="../Generic/GenericList.inc"/>
    895         <Caret Line="6" Column="29" TopLine="1"/>
     561        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/lists.inc"/>
     562        <Caret Line="594" Column="11" TopLine="590"/>
    896563      </Position15>
    897564      <Position16>
    898         <Filename Value="../Generic/GenericList.inc"/>
    899         <Caret Line="12" Column="37" TopLine="1"/>
     565        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/lists.inc"/>
     566        <Caret Line="596" Column="13" TopLine="590"/>
    900567      </Position16>
    901568      <Position17>
    902         <Filename Value="../Generic/GenericList.inc"/>
    903         <Caret Line="377" Column="25" TopLine="359"/>
     569        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/lists.inc"/>
     570        <Caret Line="98" Column="56" TopLine="89"/>
    904571      </Position17>
    905572      <Position18>
    906         <Filename Value="../Generic/GenericList.inc"/>
    907         <Caret Line="375" Column="57" TopLine="359"/>
     573        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/lists.inc"/>
     574        <Caret Line="91" Column="43" TopLine="89"/>
    908575      </Position18>
    909576      <Position19>
    910577        <Filename Value="../Generic/GenericList.inc"/>
    911         <Caret Line="39" Column="14" TopLine="38"/>
     578        <Caret Line="470" Column="59" TopLine="206"/>
    912579      </Position19>
    913580      <Position20>
    914         <Filename Value="../Generic/GenericList.inc"/>
    915         <Caret Line="375" Column="77" TopLine="359"/>
     581        <Filename Value="UMainForm.pas"/>
     582        <Caret Line="277" Column="17" TopLine="258"/>
    916583      </Position20>
    917584      <Position21>
    918585        <Filename Value="../Generic/GenericList.inc"/>
    919         <Caret Line="8" Column="22" TopLine="1"/>
     586        <Caret Line="161" Column="1" TopLine="161"/>
    920587      </Position21>
    921588      <Position22>
    922589        <Filename Value="../Generic/GenericList.inc"/>
    923         <Caret Line="40" Column="22" TopLine="24"/>
     590        <Caret Line="89" Column="14" TopLine="84"/>
    924591      </Position22>
    925592      <Position23>
    926593        <Filename Value="../Generic/GenericList.inc"/>
    927         <Caret Line="394" Column="60" TopLine="375"/>
     594        <Caret Line="189" Column="29" TopLine="172"/>
    928595      </Position23>
    929596      <Position24>
    930597        <Filename Value="../Generic/GenericList.inc"/>
    931         <Caret Line="396" Column="62" TopLine="375"/>
     598        <Caret Line="405" Column="14" TopLine="389"/>
    932599      </Position24>
    933600      <Position25>
    934601        <Filename Value="../Generic/GenericList.inc"/>
    935         <Caret Line="393" Column="26" TopLine="377"/>
     602        <Caret Line="51" Column="59" TopLine="34"/>
    936603      </Position25>
    937604      <Position26>
    938605        <Filename Value="../Generic/GenericList.inc"/>
    939         <Caret Line="389" Column="87" TopLine="377"/>
     606        <Caret Line="119" Column="3" TopLine="117"/>
    940607      </Position26>
    941608      <Position27>
    942         <Filename Value="UMainForm.pas"/>
    943         <Caret Line="15" Column="35" TopLine="71"/>
     609        <Filename Value="../Generic/GenericList.inc"/>
     610        <Caret Line="433" Column="19" TopLine="416"/>
    944611      </Position27>
    945612      <Position28>
    946613        <Filename Value="UMainForm.pas"/>
    947         <Caret Line="14" Column="1" TopLine="1"/>
     614        <Caret Line="278" Column="17" TopLine="91"/>
    948615      </Position28>
    949616      <Position29>
    950         <Filename Value="../Generic/GenericList.inc"/>
    951         <Caret Line="24" Column="5" TopLine="23"/>
     617        <Filename Value="../Specialized/SpecializedList.pas"/>
     618        <Caret Line="104" Column="5" TopLine="73"/>
    952619      </Position29>
    953620      <Position30>
    954         <Filename Value="../Generic/GenericList.inc"/>
    955         <Caret Line="33" Column="21" TopLine="17"/>
     621        <Filename Value="UMainForm.pas"/>
     622        <Caret Line="403" Column="11" TopLine="385"/>
    956623      </Position30>
    957624    </JumpHistory>
  • Generics/TemplateGenerics/Demo/UMainForm.pas

    r88 r107  
    88  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
    99  ComCtrls, SpecializedList, SpecializedDictionary, SpecializedQueue,
    10   DateUtils, SpecializedObjectList;
     10  DateUtils;
    1111
    1212type
     
    3636  private
    3737  public
    38     procedure WriteLn(Text: string);
     38    Bitmap: TBitmap;
     39    procedure WriteLn(Text: string = '');
    3940  end;
    4041
     
    6162  List := TListInteger.Create;
    6263  with List do try
     64    WriteLn('AddArray([10, 20, 30, 40])');
    6365    AddArray([10, 20, 30, 40]);
    6466    WriteLn('Implode: ' + Implode(',', IntToStr));
     
    7476    WriteLn('Last: ' + IntToStr(Last));
    7577    MoveItems(3, 2, 3);
     78    WriteLn('Implode: ' + Implode(',', IntToStr));
     79    WriteLn('Insert(5, 11)');
     80    Insert(5, 11);
    7681    WriteLn('Implode: ' + Implode(',', IntToStr));
    7782  finally
     
    275280  try
    276281    List2 := TList.Create;
     282    WriteLn;
    277283    WriteLn('Test TList...');
    278284    StartTime := Now;
     
    395401    Dictionary2 := TStringList.Create;
    396402    Dictionary2.NameValueSeparator := '|';
     403    WriteLn;
    397404    WriteLn('TStringList...');
    398405    I := 0;
     
    468475end;
    469476
    470 procedure TMainForm.WriteLn(Text: string);
     477procedure TMainForm.WriteLn(Text: string = '');
    471478begin
    472479  MemoOutput.Lines.Add(Text);
  • Generics/TemplateGenerics/Generic/GenericList.inc

    r101 r107  
    1717    function GetFirst: TGListItem;
    1818    procedure SetCapacity(const AValue: TGListIndex);
     19    procedure SetCapacityOptimized(const NewCapacity: TGListIndex);
    1920    procedure SetLast(AValue: TGListItem);
    2021    procedure SetFirst(AValue: TGListItem);
    2122    procedure Put(Index: TGListIndex; const AValue: TGListItem); virtual;
    22     procedure SetCount(const AValue: TGListIndex);
     23    procedure SetCount(const AValue: TGListIndex); virtual;
    2324    procedure QuickSort(L, R : TGListIndex; Compare: TGListSortCompare);
    2425  public
     
    2829    procedure Assign(Source: TGList); virtual;
    2930    procedure Clear; virtual;
    30     procedure Contract;
    3131    procedure Delete(Index: TGListIndex); virtual;
    3232    procedure DeleteItems(Index, Count: TGListIndex);
    3333    function EqualTo(List: TGList): Boolean;
    34     procedure Expand;
    3534    function Extract(Item: TGListItem): TGListItem;
    3635    procedure Exchange(Index1, Index2: TGListIndex);
     
    7877procedure TGList.SetCapacity(const AValue: TGListIndex);
    7978begin
     79  if (AValue < FCount) then
     80    raise EListError.CreateFmt(SListCapacityError, [AValue]);
    8081  SetLength(FItems, AValue);
    8182end;
    8283
     84procedure TGList.SetCapacityOptimized(const NewCapacity: TGListIndex);
     85var
     86  IncSize: TGListIndex;
     87begin
     88  if NewCapacity > Capacity then begin
     89    IncSize := NewCapacity - Capacity;
     90    // Expand
     91    if FCount = Capacity then begin
     92      IncSize := 4;
     93      if Capacity > 3 then IncSize := IncSize + 4;
     94      if Capacity > 8 then IncSize := IncSize + 8;
     95      if Capacity > 63 then IncSize := IncSize + Capacity shr 2; // Grow by one quarter
     96      Capacity := Capacity + IncSize;
     97    end;
     98  end else
     99  if NewCapacity < Capacity then begin
     100    // Contract
     101    if (Capacity > 256) and (FCount < Capacity shr 2) then
     102    begin
     103      Capacity := Capacity shr 1;
     104    end;
     105  end;
     106end;
     107
    83108function TGList.Get(Index: TGListIndex): TGListItem;
    84109begin
     
    93118procedure TGList.SetCount(const AValue: TGListIndex);
    94119begin
    95   SetLength(FItems, AValue);
     120  if (AValue < 0) then
     121    raise EListError.CreateFmt(SListCountError, [AValue]);
     122  if AValue > Capacity then SetCapacityOptimized(AValue); // Before FCount change
    96123  FCount := AValue;
     124  if AValue < Capacity then SetCapacityOptimized(AValue); // After FCount change
    97125end;
    98126
     
    105133   I := L;
    106134   J := R;
    107    P := FItems[ (L + R) div 2 ];
     135   P := FItems[(L + R) div 2];
    108136   repeat
    109137     while Compare(P, FItems[I]) > 0 do
     
    111139     while Compare(P, FItems[J]) < 0 do
    112140       J := J - 1;
    113      If I <= J then
     141     if I <= J then
    114142     begin
    115143       Q := FItems[I];
     
    128156procedure TGList.Assign(Source: TGList);
    129157var
    130   I: Integer;
     158  I: TGListIndex;
    131159begin
    132160  Count := Source.Count;
     
    135163    Items[I] := Source[I];
    136164    I := I + 1;
    137   end;
    138 end;
    139 
    140 procedure TGList.Expand;
    141 var
    142   IncSize: TGListIndex;
    143 begin
    144   if FCount = Capacity then begin
    145     IncSize := 4;
    146     if Capacity > 3 then IncSize := IncSize + 4;
    147     if Capacity > 8 then IncSize := IncSize + 8;
    148     if Capacity > 63 then IncSize := IncSize + Capacity shr 2;
    149     Capacity := Capacity + IncSize;
    150   end;
    151 end;
    152 
    153 procedure TGList.Contract;
    154 begin
    155   if (Capacity > 256) and (FCount < Capacity shr 2) then
    156   begin
    157     Capacity := Capacity shr 1;
    158165  end;
    159166end;
     
    184191  if (Index < 0) or (Index > FCount ) then
    185192    raise EListError.CreateFmt(SListIndexError, [Index]);
    186   if FCount = Capacity then Expand;
     193  if FCount = Capacity then SetCapacityOptimized(Capacity + 1);
    187194  if Index < FCount then
    188195    System.Move(FItems[Index], FItems[Index + 1], (FCount - Index) * SizeOf(TGListItem));
     
    400407function TGList.Add(Item: TGListItem): TGListIndex;
    401408begin
    402   if FCount = Capacity then
    403     Self.Expand;
    404   FItems[FCount] := Item;
    405   Result := FCount;
    406   FCount := FCount + 1;
     409  Count := Count + 1;
     410  Result := FCount - 1;
     411  FItems[Result] := Item;
    407412end;
    408413
     
    430435  FCount := FCount - 1;
    431436  System.Move(FItems[Index + 1], FItems[Index], (FCount - Index) * SizeOf(TGListItem));
    432   Contract;
     437  SetCapacityOptimized(Capacity - 1);
    433438end;
    434439
     
    445450
    446451procedure TGList.Fill(Start, Count: TGListIndex; Value: TGListItem);
    447 begin
    448   while Count > 0 do begin
    449     Items[Start] := Value;
    450     Count := Count - 1;
    451     Start := Start + 1;
     452var
     453  I: TGListIndex;
     454begin
     455  I := Start;
     456  while I < Count do begin
     457    Items[I] := Value;
     458    I := I + 1;
    452459  end;
    453460end;
  • Generics/TemplateGenerics/TemplateGenerics.lpk

    r102 r107  
    1919    <Description Value="Generic classes implemented as templates."/>
    2020    <Version Minor="3"/>
    21     <Files Count="16">
     21    <Files Count="20">
    2222      <Item1>
    2323        <Filename Value="ReadMe.txt"/>
     
    8282      <Item16>
    8383        <Filename Value="Generic\GenericListString.inc"/>
     84        <UnitName Value="GenericListString"/>
    8485      </Item16>
     86      <Item17>
     87        <Filename Value="Generic\GenericMatrix.inc"/>
     88        <UnitName Value="GenericMatrix"/>
     89      </Item17>
     90      <Item18>
     91        <Filename Value="Generic\GenericPoint.inc"/>
     92        <Type Value="Include"/>
     93      </Item18>
     94      <Item19>
     95        <Filename Value="Specialized\SpecializedPoint.pas"/>
     96        <UnitName Value="SpecializedPoint"/>
     97      </Item19>
     98      <Item20>
     99        <Filename Value="Specialized\SpecializedMatrix.pas"/>
     100        <UnitName Value="SpecializedMatrix"/>
     101      </Item20>
    85102    </Files>
    86103    <Type Value="RunAndDesignTime"/>
  • Generics/TemplateGenerics/TemplateGenerics.pas

    r101 r107  
    99uses
    1010    SpecializedList, SpecializedDictionary, SpecializedStack, SpecializedTree,
    11   SpecializedQueue, SpecializedSet, LazarusPackageIntf;
     11  SpecializedQueue, SpecializedSet, SpecializedPoint, SpecializedMatrix,
     12  LazarusPackageIntf;
    1213
    1314implementation
Note: See TracChangeset for help on using the changeset viewer.