Changeset 321 for Generics


Ignore:
Timestamp:
Feb 7, 2012, 3:35:32 PM (13 years ago)
Author:
chronos
Message:
Location:
Generics/NativeGenerics
Files:
1 added
6 edited

Legend:

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

    r320 r321  
    4343        <IsPartOfProject Value="True"/>
    4444        <UnitName Value="Demo"/>
     45        <EditorIndex Value="7"/>
    4546        <WindowIndex Value="0"/>
    4647        <TopLine Value="1"/>
    4748        <CursorPos X="26" Y="8"/>
    4849        <UsageCount Value="233"/>
     50        <Loaded Value="True"/>
    4951        <DefaultSyntaxHighlighter Value="Delphi"/>
    5052      </Unit0>
     
    5759        <EditorIndex Value="0"/>
    5860        <WindowIndex Value="0"/>
    59         <TopLine Value="127"/>
    60         <CursorPos X="15" Y="47"/>
     61        <TopLine Value="85"/>
     62        <CursorPos X="11" Y="98"/>
    6163        <UsageCount Value="233"/>
    6264        <Bookmarks Count="1">
    63           <Item0 X="65" Y="234" ID="2"/>
     65          <Item0 X="65" Y="277" ID="2"/>
    6466        </Bookmarks>
    6567        <Loaded Value="True"/>
     
    7375        <TopLine Value="47"/>
    7476        <CursorPos X="20" Y="60"/>
    75         <UsageCount Value="6"/>
     77        <UsageCount Value="5"/>
    7678        <DefaultSyntaxHighlighter Value="Delphi"/>
    7779      </Unit2>
     
    8183        <TopLine Value="1"/>
    8284        <CursorPos X="25" Y="13"/>
    83         <UsageCount Value="1"/>
     85        <UsageCount Value="0"/>
    8486        <DefaultSyntaxHighlighter Value="None"/>
    8587      </Unit3>
     
    8991        <TopLine Value="1"/>
    9092        <CursorPos X="21" Y="4"/>
    91         <UsageCount Value="2"/>
     93        <UsageCount Value="1"/>
    9294        <DefaultSyntaxHighlighter Value="None"/>
    9395      </Unit4>
     
    98100        <TopLine Value="1"/>
    99101        <CursorPos X="1" Y="25"/>
    100         <UsageCount Value="2"/>
     102        <UsageCount Value="1"/>
    101103        <DefaultSyntaxHighlighter Value="Delphi"/>
    102104      </Unit5>
     
    106108        <TopLine Value="1"/>
    107109        <CursorPos X="1" Y="3"/>
    108         <UsageCount Value="2"/>
     110        <UsageCount Value="1"/>
    109111        <DefaultSyntaxHighlighter Value="None"/>
    110112      </Unit6>
     
    114116        <TopLine Value="1"/>
    115117        <CursorPos X="7" Y="4"/>
    116         <UsageCount Value="2"/>
     118        <UsageCount Value="1"/>
    117119        <DefaultSyntaxHighlighter Value="None"/>
    118120      </Unit7>
     
    123125        <TopLine Value="1"/>
    124126        <CursorPos X="14" Y="15"/>
    125         <UsageCount Value="2"/>
     127        <UsageCount Value="1"/>
    126128        <DefaultSyntaxHighlighter Value="Delphi"/>
    127129      </Unit8>
     
    131133        <TopLine Value="1"/>
    132134        <CursorPos X="14" Y="18"/>
    133         <UsageCount Value="2"/>
     135        <UsageCount Value="1"/>
    134136        <DefaultSyntaxHighlighter Value="None"/>
    135137      </Unit9>
     
    140142        <TopLine Value="2"/>
    141143        <CursorPos X="30" Y="8"/>
    142         <UsageCount Value="2"/>
     144        <UsageCount Value="1"/>
    143145        <DefaultSyntaxHighlighter Value="Delphi"/>
    144146      </Unit10>
     
    149151        <TopLine Value="13"/>
    150152        <CursorPos X="15" Y="12"/>
    151         <UsageCount Value="4"/>
     153        <UsageCount Value="3"/>
    152154        <DefaultSyntaxHighlighter Value="Delphi"/>
    153155      </Unit11>
     
    157159        <TopLine Value="359"/>
    158160        <CursorPos X="62" Y="376"/>
    159         <UsageCount Value="103"/>
     161        <UsageCount Value="102"/>
    160162        <DefaultSyntaxHighlighter Value="Delphi"/>
    161163      </Unit12>
     
    165167        <TopLine Value="31"/>
    166168        <CursorPos X="44" Y="47"/>
    167         <UsageCount Value="90"/>
     169        <UsageCount Value="89"/>
    168170        <DefaultSyntaxHighlighter Value="Delphi"/>
    169171      </Unit13>
     
    173175        <TopLine Value="1"/>
    174176        <CursorPos X="36" Y="48"/>
    175         <UsageCount Value="90"/>
     177        <UsageCount Value="89"/>
    176178        <DefaultSyntaxHighlighter Value="Delphi"/>
    177179      </Unit14>
     
    181183        <TopLine Value="3"/>
    182184        <CursorPos X="1" Y="3"/>
    183         <UsageCount Value="90"/>
     185        <UsageCount Value="89"/>
    184186        <DefaultSyntaxHighlighter Value="Delphi"/>
    185187      </Unit15>
     
    189191        <TopLine Value="11"/>
    190192        <CursorPos X="42" Y="11"/>
    191         <UsageCount Value="90"/>
     193        <UsageCount Value="89"/>
    192194        <DefaultSyntaxHighlighter Value="Delphi"/>
    193195      </Unit16>
     
    197199        <TopLine Value="3"/>
    198200        <CursorPos X="1" Y="3"/>
    199         <UsageCount Value="90"/>
     201        <UsageCount Value="89"/>
    200202        <DefaultSyntaxHighlighter Value="Delphi"/>
    201203      </Unit17>
     
    205207        <TopLine Value="1"/>
    206208        <CursorPos X="22" Y="30"/>
    207         <UsageCount Value="90"/>
     209        <UsageCount Value="89"/>
    208210        <DefaultSyntaxHighlighter Value="Delphi"/>
    209211      </Unit18>
     
    214216        <TopLine Value="6"/>
    215217        <CursorPos X="56" Y="36"/>
    216         <UsageCount Value="89"/>
     218        <UsageCount Value="88"/>
    217219        <DefaultSyntaxHighlighter Value="Delphi"/>
    218220      </Unit19>
     
    223225        <TopLine Value="27"/>
    224226        <CursorPos X="50" Y="59"/>
    225         <UsageCount Value="88"/>
     227        <UsageCount Value="87"/>
    226228        <DefaultSyntaxHighlighter Value="Delphi"/>
    227229      </Unit20>
     
    232234        <TopLine Value="57"/>
    233235        <CursorPos X="48" Y="85"/>
    234         <UsageCount Value="88"/>
     236        <UsageCount Value="87"/>
    235237        <DefaultSyntaxHighlighter Value="Delphi"/>
    236238      </Unit21>
     
    240242        <TopLine Value="1"/>
    241243        <CursorPos X="33" Y="14"/>
    242         <UsageCount Value="88"/>
     244        <UsageCount Value="87"/>
    243245        <DefaultSyntaxHighlighter Value="Delphi"/>
    244246      </Unit22>
     
    249251        <TopLine Value="52"/>
    250252        <CursorPos X="1" Y="81"/>
    251         <UsageCount Value="88"/>
     253        <UsageCount Value="87"/>
    252254        <DefaultSyntaxHighlighter Value="Delphi"/>
    253255      </Unit23>
     
    258260        <TopLine Value="29"/>
    259261        <CursorPos X="1" Y="62"/>
    260         <UsageCount Value="88"/>
     262        <UsageCount Value="87"/>
    261263        <DefaultSyntaxHighlighter Value="Delphi"/>
    262264      </Unit24>
     
    267269        <TopLine Value="9"/>
    268270        <CursorPos X="60" Y="36"/>
    269         <UsageCount Value="87"/>
     271        <UsageCount Value="86"/>
    270272        <DefaultSyntaxHighlighter Value="Delphi"/>
    271273      </Unit25>
     
    275277        <TopLine Value="9"/>
    276278        <CursorPos X="28" Y="23"/>
    277         <UsageCount Value="99"/>
     279        <UsageCount Value="98"/>
    278280        <DefaultSyntaxHighlighter Value="Delphi"/>
    279281      </Unit26>
     
    284286        <TopLine Value="2624"/>
    285287        <CursorPos X="37" Y="2636"/>
    286         <UsageCount Value="86"/>
     288        <UsageCount Value="85"/>
    287289        <DefaultSyntaxHighlighter Value="Delphi"/>
    288290      </Unit27>
     
    292294        <TopLine Value="94"/>
    293295        <CursorPos X="1" Y="1"/>
    294         <UsageCount Value="2"/>
     296        <UsageCount Value="1"/>
    295297        <DefaultSyntaxHighlighter Value="XML"/>
    296298      </Unit28>
     
    300302        <TopLine Value="199"/>
    301303        <CursorPos X="14" Y="213"/>
    302         <UsageCount Value="24"/>
     304        <UsageCount Value="23"/>
    303305        <DefaultSyntaxHighlighter Value="Delphi"/>
    304306      </Unit29>
     
    308310        <TopLine Value="199"/>
    309311        <CursorPos X="3" Y="201"/>
    310         <UsageCount Value="24"/>
     312        <UsageCount Value="23"/>
    311313        <DefaultSyntaxHighlighter Value="Delphi"/>
    312314      </Unit30>
     
    316318        <TopLine Value="1"/>
    317319        <CursorPos X="21" Y="20"/>
    318         <UsageCount Value="15"/>
     320        <UsageCount Value="14"/>
    319321        <DefaultSyntaxHighlighter Value="Delphi"/>
    320322      </Unit31>
     
    325327        <TopLine Value="1"/>
    326328        <CursorPos X="27" Y="26"/>
    327         <UsageCount Value="24"/>
     329        <UsageCount Value="23"/>
    328330        <DefaultSyntaxHighlighter Value="Delphi"/>
    329331      </Unit32>
     
    333335        <TopLine Value="381"/>
    334336        <CursorPos X="3" Y="398"/>
    335         <UsageCount Value="24"/>
     337        <UsageCount Value="23"/>
    336338        <DefaultSyntaxHighlighter Value="Delphi"/>
    337339      </Unit33>
     
    341343        <TopLine Value="475"/>
    342344        <CursorPos X="10" Y="503"/>
    343         <UsageCount Value="3"/>
     345        <UsageCount Value="2"/>
    344346        <DefaultSyntaxHighlighter Value="Delphi"/>
    345347      </Unit34>
     
    349351        <TopLine Value="2270"/>
    350352        <CursorPos X="22" Y="2273"/>
    351         <UsageCount Value="15"/>
     353        <UsageCount Value="14"/>
    352354        <DefaultSyntaxHighlighter Value="Delphi"/>
    353355      </Unit35>
     
    358360        <TopLine Value="1"/>
    359361        <CursorPos X="25" Y="41"/>
    360         <UsageCount Value="15"/>
     362        <UsageCount Value="14"/>
    361363        <DefaultSyntaxHighlighter Value="Delphi"/>
    362364      </Unit36>
     
    366368        <TopLine Value="1"/>
    367369        <CursorPos X="28" Y="10"/>
    368         <UsageCount Value="5"/>
     370        <UsageCount Value="4"/>
    369371        <DefaultSyntaxHighlighter Value="None"/>
    370372      </Unit37>
     
    374376        <TopLine Value="38"/>
    375377        <CursorPos X="3" Y="50"/>
    376         <UsageCount Value="7"/>
     378        <UsageCount Value="6"/>
    377379        <DefaultSyntaxHighlighter Value="Delphi"/>
    378380      </Unit38>
     
    382384        <TopLine Value="649"/>
    383385        <CursorPos X="38" Y="671"/>
    384         <UsageCount Value="6"/>
     386        <UsageCount Value="5"/>
    385387        <DefaultSyntaxHighlighter Value="Delphi"/>
    386388      </Unit39>
     
    390392        <TopLine Value="1185"/>
    391393        <CursorPos X="22" Y="1196"/>
    392         <UsageCount Value="6"/>
     394        <UsageCount Value="5"/>
    393395        <DefaultSyntaxHighlighter Value="Delphi"/>
    394396      </Unit40>
     
    399401        <TopLine Value="112"/>
    400402        <CursorPos X="3" Y="124"/>
    401         <UsageCount Value="6"/>
     403        <UsageCount Value="5"/>
    402404        <DefaultSyntaxHighlighter Value="Delphi"/>
    403405      </Unit41>
     
    407409        <TopLine Value="71"/>
    408410        <CursorPos X="10" Y="84"/>
    409         <UsageCount Value="6"/>
     411        <UsageCount Value="5"/>
    410412        <DefaultSyntaxHighlighter Value="Delphi"/>
    411413      </Unit42>
     
    415417        <TopLine Value="148"/>
    416418        <CursorPos X="11" Y="169"/>
    417         <UsageCount Value="6"/>
     419        <UsageCount Value="5"/>
    418420        <DefaultSyntaxHighlighter Value="Delphi"/>
    419421      </Unit43>
     
    423425        <TopLine Value="511"/>
    424426        <CursorPos X="11" Y="524"/>
    425         <UsageCount Value="6"/>
     427        <UsageCount Value="5"/>
    426428        <DefaultSyntaxHighlighter Value="Delphi"/>
    427429      </Unit44>
     
    431433        <TopLine Value="411"/>
    432434        <CursorPos X="10" Y="424"/>
    433         <UsageCount Value="6"/>
     435        <UsageCount Value="5"/>
    434436        <DefaultSyntaxHighlighter Value="Delphi"/>
    435437      </Unit45>
     
    437439        <Filename Value="../Units/GenericList.pas"/>
    438440        <UnitName Value="GenericList"/>
    439         <EditorIndex Value="11"/>
    440         <WindowIndex Value="0"/>
    441         <TopLine Value="66"/>
    442         <CursorPos X="7" Y="21"/>
    443         <UsageCount Value="34"/>
     441        <IsVisibleTab Value="True"/>
     442        <EditorIndex Value="1"/>
     443        <WindowIndex Value="0"/>
     444        <TopLine Value="449"/>
     445        <CursorPos X="92" Y="462"/>
     446        <UsageCount Value="35"/>
    444447        <Loaded Value="True"/>
    445448      </Unit46>
     
    447450        <Filename Value="../Units/GenericMatrix.pas"/>
    448451        <UnitName Value="GenericMatrix"/>
    449         <WindowIndex Value="0"/>
    450         <TopLine Value="4"/>
    451         <CursorPos X="12" Y="11"/>
    452         <UsageCount Value="12"/>
     452        <EditorIndex Value="6"/>
     453        <WindowIndex Value="0"/>
     454        <TopLine Value="77"/>
     455        <CursorPos X="1" Y="85"/>
     456        <UsageCount Value="13"/>
     457        <Loaded Value="True"/>
    453458      </Unit47>
    454459      <Unit48>
    455460        <Filename Value="../Units/GenericStream.pas"/>
    456461        <UnitName Value="GenericStream"/>
    457         <IsVisibleTab Value="True"/>
    458         <EditorIndex Value="9"/>
    459462        <WindowIndex Value="0"/>
    460463        <TopLine Value="59"/>
    461         <CursorPos X="29" Y="67"/>
    462         <UsageCount Value="14"/>
    463         <Loaded Value="True"/>
     464        <CursorPos X="26" Y="65"/>
     465        <UsageCount Value="15"/>
    464466      </Unit48>
    465467      <Unit49>
    466468        <Filename Value="../Units/GenericQueue.pas"/>
    467469        <UnitName Value="GenericQueue"/>
    468         <EditorIndex Value="6"/>
    469470        <WindowIndex Value="0"/>
    470471        <TopLine Value="18"/>
    471472        <CursorPos X="24" Y="28"/>
    472         <UsageCount Value="12"/>
    473         <Loaded Value="True"/>
     473        <UsageCount Value="13"/>
    474474      </Unit49>
    475475      <Unit50>
    476476        <Filename Value="../Units/GenericDictionary.pas"/>
    477477        <UnitName Value="GenericDictionary"/>
    478         <EditorIndex Value="4"/>
     478        <EditorIndex Value="5"/>
    479479        <WindowIndex Value="0"/>
    480480        <TopLine Value="1"/>
    481481        <CursorPos X="1" Y="1"/>
    482         <UsageCount Value="12"/>
     482        <UsageCount Value="14"/>
    483483        <Loaded Value="True"/>
    484484      </Unit50>
    485485      <Unit51>
    486486        <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/fpc/2.6.0/source/rtl/objpas/sysutils/sysunih.inc"/>
    487         <EditorIndex Value="3"/>
     487        <EditorIndex Value="4"/>
    488488        <WindowIndex Value="0"/>
    489489        <TopLine Value="9"/>
    490490        <CursorPos X="10" Y="22"/>
    491         <UsageCount Value="12"/>
     491        <UsageCount Value="14"/>
    492492        <Loaded Value="True"/>
    493493        <DefaultSyntaxHighlighter Value="Delphi"/>
     
    496496        <Filename Value="../Units/SpecializedList.pas"/>
    497497        <UnitName Value="SpecializedList"/>
    498         <EditorIndex Value="12"/>
     498        <EditorIndex Value="8"/>
    499499        <WindowIndex Value="0"/>
    500500        <TopLine Value="1"/>
    501501        <CursorPos X="23" Y="11"/>
    502         <UsageCount Value="12"/>
     502        <UsageCount Value="14"/>
    503503        <Loaded Value="True"/>
    504504      </Unit52>
    505505      <Unit53>
    506506        <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/fpc/2.7.1/source/rtl/objpas/classes/classesh.inc"/>
    507         <EditorIndex Value="5"/>
    508         <WindowIndex Value="0"/>
    509         <TopLine Value="52"/>
    510         <CursorPos X="49" Y="65"/>
    511         <UsageCount Value="12"/>
    512         <Loaded Value="True"/>
     507        <WindowIndex Value="0"/>
     508        <TopLine Value="127"/>
     509        <CursorPos X="3" Y="140"/>
     510        <UsageCount Value="13"/>
    513511      </Unit53>
    514512      <Unit54>
    515513        <Filename Value="../Units/GenericSet.pas"/>
    516514        <UnitName Value="GenericSet"/>
    517         <EditorIndex Value="7"/>
    518         <WindowIndex Value="0"/>
    519         <TopLine Value="17"/>
    520         <CursorPos X="14" Y="33"/>
    521         <UsageCount Value="12"/>
    522         <Loaded Value="True"/>
     515        <WindowIndex Value="0"/>
     516        <TopLine Value="1"/>
     517        <CursorPos X="1" Y="1"/>
     518        <UsageCount Value="13"/>
    523519      </Unit54>
    524520      <Unit55>
    525521        <Filename Value="../Units/GenericStack.pas"/>
    526522        <UnitName Value="GenericStack"/>
    527         <EditorIndex Value="8"/>
    528523        <WindowIndex Value="0"/>
    529524        <TopLine Value="22"/>
    530525        <CursorPos X="14" Y="38"/>
    531         <UsageCount Value="12"/>
    532         <Loaded Value="True"/>
     526        <UsageCount Value="13"/>
    533527      </Unit55>
    534528      <Unit56>
    535529        <Filename Value="../Units/GenericRange.pas"/>
    536530        <UnitName Value="GenericRange"/>
    537         <EditorIndex Value="1"/>
     531        <EditorIndex Value="2"/>
    538532        <WindowIndex Value="0"/>
    539533        <TopLine Value="4"/>
    540534        <CursorPos X="33" Y="8"/>
    541         <UsageCount Value="12"/>
     535        <UsageCount Value="14"/>
    542536        <Loaded Value="True"/>
    543537      </Unit56>
    544538      <Unit57>
    545539        <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/fpc/2.7.1/source/rtl/inc/systemh.inc"/>
    546         <EditorIndex Value="10"/>
    547540        <WindowIndex Value="0"/>
    548541        <TopLine Value="958"/>
    549542        <CursorPos X="11" Y="971"/>
    550         <UsageCount Value="12"/>
    551         <Loaded Value="True"/>
     543        <UsageCount Value="13"/>
    552544      </Unit57>
    553545      <Unit58>
    554546        <Filename Value="../Units/GenericTree.pas"/>
    555547        <UnitName Value="GenericTree"/>
    556         <EditorIndex Value="2"/>
     548        <EditorIndex Value="3"/>
    557549        <WindowIndex Value="0"/>
    558550        <TopLine Value="1"/>
    559551        <CursorPos X="33" Y="8"/>
    560         <UsageCount Value="12"/>
     552        <UsageCount Value="13"/>
    561553        <Loaded Value="True"/>
    562554      </Unit58>
    563555    </Units>
    564     <JumpHistory Count="30" HistoryIndex="28">
     556    <JumpHistory Count="30" HistoryIndex="29">
    565557      <Position1>
    566         <Filename Value="../Units/GenericStream.pas"/>
    567         <Caret Line="29" Column="42" TopLine="11"/>
     558        <Filename Value="UMainForm.pas"/>
     559        <Caret Line="93" Column="29" TopLine="77"/>
    568560      </Position1>
    569561      <Position2>
    570         <Filename Value="../Units/GenericStream.pas"/>
    571         <Caret Line="39" Column="57" TopLine="26"/>
     562        <Filename Value="UMainForm.pas"/>
     563        <Caret Line="98" Column="11" TopLine="85"/>
    572564      </Position2>
    573565      <Position3>
    574         <Filename Value="../Units/GenericStream.pas"/>
    575         <Caret Line="29" Column="19" TopLine="16"/>
     566        <Filename Value="../Units/GenericList.pas"/>
     567        <Caret Line="67" Column="35" TopLine="51"/>
    576568      </Position3>
    577569      <Position4>
    578         <Filename Value="../Units/GenericStream.pas"/>
    579         <Caret Line="16" Column="53" TopLine="7"/>
     570        <Filename Value="../Units/GenericList.pas"/>
     571        <Caret Line="14" Column="36" TopLine="1"/>
    580572      </Position4>
    581573      <Position5>
    582         <Filename Value="../Units/GenericStream.pas"/>
    583         <Caret Line="46" Column="19" TopLine="33"/>
     574        <Filename Value="../Units/GenericList.pas"/>
     575        <Caret Line="434" Column="1" TopLine="419"/>
    584576      </Position5>
    585577      <Position6>
    586         <Filename Value="../Units/GenericStream.pas"/>
    587         <Caret Line="34" Column="8" TopLine="24"/>
     578        <Filename Value="../Units/GenericList.pas"/>
     579        <Caret Line="16" Column="3" TopLine="15"/>
    588580      </Position6>
    589581      <Position7>
    590         <Filename Value="../Units/GenericStream.pas"/>
    591         <Caret Line="30" Column="19" TopLine="20"/>
     582        <Filename Value="../Units/GenericList.pas"/>
     583        <Caret Line="32" Column="1" TopLine="15"/>
    592584      </Position7>
    593585      <Position8>
    594         <Filename Value="../Units/GenericStream.pas"/>
    595         <Caret Line="41" Column="1" TopLine="33"/>
     586        <Filename Value="../Units/GenericList.pas"/>
     587        <Caret Line="147" Column="3" TopLine="145"/>
    596588      </Position8>
    597589      <Position9>
    598         <Filename Value="../Units/GenericStream.pas"/>
    599         <Caret Line="8" Column="13" TopLine="1"/>
     590        <Filename Value="../Units/GenericList.pas"/>
     591        <Caret Line="27" Column="1" TopLine="24"/>
    600592      </Position9>
    601593      <Position10>
    602         <Filename Value="../Units/GenericStream.pas"/>
    603         <Caret Line="29" Column="58" TopLine="14"/>
     594        <Filename Value="../Units/GenericList.pas"/>
     595        <Caret Line="30" Column="1" TopLine="21"/>
    604596      </Position10>
    605597      <Position11>
    606         <Filename Value="../Units/GenericStream.pas"/>
    607         <Caret Line="39" Column="1" TopLine="27"/>
     598        <Filename Value="../Units/GenericList.pas"/>
     599        <Caret Line="35" Column="1" TopLine="22"/>
    608600      </Position11>
    609601      <Position12>
    610         <Filename Value="../Units/GenericStream.pas"/>
    611         <Caret Line="29" Column="18" TopLine="6"/>
     602        <Filename Value="../Units/GenericList.pas"/>
     603        <Caret Line="77" Column="31" TopLine="53"/>
    612604      </Position12>
    613605      <Position13>
    614         <Filename Value="../Units/GenericStream.pas"/>
    615         <Caret Line="46" Column="23" TopLine="33"/>
     606        <Filename Value="../Units/GenericList.pas"/>
     607        <Caret Line="15" Column="1" TopLine="14"/>
    616608      </Position13>
    617609      <Position14>
    618         <Filename Value="../Units/GenericStream.pas"/>
    619         <Caret Line="66" Column="25" TopLine="53"/>
     610        <Filename Value="../Units/GenericList.pas"/>
     611        <Caret Line="26" Column="1" TopLine="22"/>
    620612      </Position14>
    621613      <Position15>
    622         <Filename Value="../Units/GenericStream.pas"/>
    623         <Caret Line="62" Column="29" TopLine="49"/>
     614        <Filename Value="../Units/GenericList.pas"/>
     615        <Caret Line="77" Column="33" TopLine="53"/>
    624616      </Position15>
    625617      <Position16>
    626         <Filename Value="../Units/GenericRange.pas"/>
    627         <Caret Line="1" Column="1" TopLine="1"/>
     618        <Filename Value="../Units/GenericList.pas"/>
     619        <Caret Line="45" Column="1" TopLine="32"/>
    628620      </Position16>
    629621      <Position17>
    630         <Filename Value="../Units/GenericTree.pas"/>
    631         <Caret Line="1" Column="1" TopLine="1"/>
     622        <Filename Value="../Units/GenericList.pas"/>
     623        <Caret Line="25" Column="1" TopLine="13"/>
    632624      </Position17>
    633625      <Position18>
    634         <Filename Value="../Units/GenericTree.pas"/>
    635         <Caret Line="8" Column="33" TopLine="1"/>
     626        <Filename Value="../Units/GenericList.pas"/>
     627        <Caret Line="26" Column="1" TopLine="13"/>
    636628      </Position18>
    637629      <Position19>
    638         <Filename Value="../Units/GenericRange.pas"/>
    639         <Caret Line="8" Column="33" TopLine="1"/>
     630        <Filename Value="../Units/GenericList.pas"/>
     631        <Caret Line="27" Column="1" TopLine="14"/>
    640632      </Position19>
    641633      <Position20>
    642         <Filename Value="../Units/GenericTree.pas"/>
    643         <Caret Line="8" Column="33" TopLine="1"/>
     634        <Filename Value="../Units/GenericList.pas"/>
     635        <Caret Line="28" Column="1" TopLine="15"/>
    644636      </Position20>
    645637      <Position21>
    646         <Filename Value="../Units/GenericStream.pas"/>
    647         <Caret Line="46" Column="23" TopLine="33"/>
     638        <Filename Value="../Units/GenericList.pas"/>
     639        <Caret Line="31" Column="1" TopLine="18"/>
    648640      </Position21>
    649641      <Position22>
    650         <Filename Value="../Units/GenericStream.pas"/>
    651         <Caret Line="86" Column="1" TopLine="61"/>
     642        <Filename Value="../Units/GenericList.pas"/>
     643        <Caret Line="35" Column="1" TopLine="22"/>
    652644      </Position22>
    653645      <Position23>
    654         <Filename Value="../Units/GenericStream.pas"/>
    655         <Caret Line="66" Column="18" TopLine="42"/>
     646        <Filename Value="../Units/GenericList.pas"/>
     647        <Caret Line="29" Column="1" TopLine="22"/>
    656648      </Position23>
    657649      <Position24>
    658         <Filename Value="../Units/GenericStream.pas"/>
    659         <Caret Line="46" Column="19" TopLine="33"/>
     650        <Filename Value="../Units/GenericList.pas"/>
     651        <Caret Line="35" Column="1" TopLine="22"/>
    660652      </Position24>
    661653      <Position25>
    662         <Filename Value="../Units/GenericStream.pas"/>
    663         <Caret Line="16" Column="53" TopLine="5"/>
     654        <Filename Value="../Units/GenericList.pas"/>
     655        <Caret Line="31" Column="30" TopLine="22"/>
    664656      </Position25>
    665657      <Position26>
    666         <Filename Value="../Units/GenericStream.pas"/>
    667         <Caret Line="45" Column="15" TopLine="34"/>
     658        <Filename Value="../Units/GenericList.pas"/>
     659        <Caret Line="64" Column="1" TopLine="48"/>
    668660      </Position26>
    669661      <Position27>
    670         <Filename Value="../Units/GenericStream.pas"/>
    671         <Caret Line="47" Column="18" TopLine="34"/>
     662        <Filename Value="../Units/GenericList.pas"/>
     663        <Caret Line="407" Column="77" TopLine="389"/>
    672664      </Position27>
    673665      <Position28>
    674         <Filename Value="../Units/GenericStream.pas"/>
    675         <Caret Line="20" Column="15" TopLine="7"/>
     666        <Filename Value="../Units/GenericList.pas"/>
     667        <Caret Line="62" Column="20" TopLine="55"/>
    676668      </Position28>
    677669      <Position29>
    678         <Filename Value="../Units/GenericStream.pas"/>
    679         <Caret Line="48" Column="18" TopLine="35"/>
     670        <Filename Value="../Units/GenericList.pas"/>
     671        <Caret Line="385" Column="21" TopLine="380"/>
    680672      </Position29>
    681673      <Position30>
    682         <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/fpc/2.7.1/source/rtl/objpas/classes/classesh.inc"/>
    683         <Caret Line="65" Column="49" TopLine="52"/>
     674        <Filename Value="../Units/GenericList.pas"/>
     675        <Caret Line="64" Column="39" TopLine="51"/>
    684676      </Position30>
    685677    </JumpHistory>
  • Generics/NativeGenerics/Demo/UMainForm.lfm

    r313 r321  
    4848  end
    4949  object ButtonCharList: TButton
    50     Left = 7
     50    Left = 8
    5151    Height = 25
    5252    Top = 134
    53     Width = 129
     53    Width = 128
    5454    Caption = 'TListChar(TString)'
    5555    OnClick = ButtonCharListClick
     
    5757  end
    5858  object ButtonBenchmarkListString: TButton
    59     Left = 10
     59    Left = 8
    6060    Height = 24
    6161    Top = 456
     
    6767  end
    6868  object ButtonListObject: TButton
    69     Left = 7
     69    Left = 8
    7070    Height = 25
    7171    Top = 163
    72     Width = 129
     72    Width = 128
    7373    Caption = 'TListObject'
    7474    OnClick = ButtonListObjectClick
     
    7676  end
    7777  object ButtonBenchmarkDictionary: TButton
    78     Left = 10
     78    Left = 8
    7979    Height = 25
    8080    Top = 424
    81     Width = 126
     81    Width = 128
    8282    Anchors = [akLeft, akBottom]
    8383    Caption = 'TDictionaryStringString'
     
    8686  end
    8787  object ButtonMatrixInteger: TButton
    88     Left = 7
     88    Left = 8
    8989    Height = 25
    9090    Top = 192
    91     Width = 129
     91    Width = 128
    9292    Caption = 'TMatrixInteger'
    9393    OnClick = ButtonMatrixIntegerClick
     
    122122  end
    123123  object Label1: TLabel
    124     Left = 10
     124    Left = 8
    125125    Height = 14
    126126    Top = 408
     
    140140    TabOrder = 10
    141141  end
     142  object ButtonStreamByte: TButton
     143    Left = 8
     144    Height = 25
     145    Top = 224
     146    Width = 128
     147    Caption = 'TStreamByte'
     148    OnClick = ButtonStreamByteClick
     149    TabOrder = 11
     150  end
    142151end
  • Generics/NativeGenerics/Demo/UMainForm.pas

    r320 r321  
    1515
    1616  TMainForm = class(TForm)
     17    ButtonStreamByte: TButton;
    1718    ButtonBenchmarkDictionary: TButton;
    1819    ButtonBenchmarkListPointer: TButton;
     
    3738    procedure ButtonListObjectClick(Sender: TObject);
    3839    procedure ButtonQueueIntegerClick(Sender: TObject);
     40    procedure ButtonStreamByteClick(Sender: TObject);
    3941    procedure ButtonStringListClick(Sender: TObject);
    4042    procedure FormCreate(Sender: TObject);
     
    9496    List2.SetArray([2, 0]);
    9597    WriteOutput('EqualTo([7, 11])', BoolToStr(EqualTo(List2)));
     98    InsertCount(0, 3);
     99    WriteOutput('InsertCount(0, 3)', Implode(',', IntToStr));
     100    Fill(0, 3, 9);
     101    WriteOutput('Fill(0, 3, 9)', Implode(',', IntToStr));
    96102  finally
    97103    Free;
     
    170176    WriteOutput('Dequeued item', IntToStr(Dequeue));
    171177    WriteOutput('Dequeue', List.Implode(',', IntToStr));
     178  finally
     179    Free;
     180  end;
     181end;
     182
     183procedure TMainForm.ButtonStreamByteClick(Sender: TObject);
     184var
     185  Stream: TMemoryStreamByte;
     186  I: Integer;
     187  ByteArray: array of Byte;
     188  ByteArrayText: string;
     189begin
     190  ListViewOutput.Clear;
     191  LabelTestName.Caption := 'TStreamByte test';
     192  Stream := TMemoryStreamByte.Create;
     193  with Stream do try
     194    WriteOutput('Size := ', IntToStr(Stream.Size));
     195    Write(1);
     196    WriteOutput('Write(1)', '');
     197    WriteOutput('Size, Position', IntToStr(Stream.Size) + ', ' + IntToStr(Stream.Position));
     198    WriteArray([2, 3, 4]);
     199    WriteOutput('WriteArray([2, 3, 4])', '');
     200    WriteOutput('Size, Position', IntToStr(Stream.Size) + ', ' + IntToStr(Stream.Position));
     201    Position := 1;
     202    WriteOutput('Position := 1', '');
     203    WriteOutput('Size, Position', IntToStr(Stream.Size) + ', ' + IntToStr(Stream.Position));
     204    WriteOutput('Read', IntToStr(Read));
     205    WriteOutput('Size, Position', IntToStr(Stream.Size) + ', ' + IntToStr(Stream.Position));
     206    ByteArray := ReadArray(2);
     207    ByteArrayText := '[';
     208    for I := 0 to Length(ByteArray) - 1 do begin
     209      ByteArrayText := ByteArrayText + IntToStr(ByteArray[I]);
     210      if I < Length(ByteArray) - 1 then ByteArrayText := ByteArrayText + ', ';
     211    end;
     212    ByteArrayText := ByteArrayText + ']';
     213    WriteOutput('ReadArray', ByteArrayText);
     214    WriteOutput('Size, Position', IntToStr(Stream.Size) + ', ' + IntToStr(Stream.Position));
    172215  finally
    173216    Free;
     
    705748    MoveItems(2, 3, 3);
    706749    WriteOutput('Implode', Implode(',', StrToStr));
     750    InsertCount(0, 3);
     751    WriteOutput('InsertCount(0, 3)', Implode(',', StrToStr));
     752    Fill(0, 3, 'Zero');
     753    WriteOutput('Fill(0, 3, ''Zero'')', Implode(',', StrToStr));
    707754  finally
    708755    Free;
  • Generics/NativeGenerics/NativeGenerics.lpk

    r320 r321  
    2828    <License Value="GNU/GPL"/>
    2929    <Version Minor="1"/>
    30     <Files Count="10">
     30    <Files Count="11">
    3131      <Item1>
    3232        <Filename Value="ReadMe.txt"/>
     
    6969        <UnitName Value="SpecializedList"/>
    7070      </Item10>
     71      <Item11>
     72        <Filename Value="Units\GenericMatrix.pas"/>
     73        <UnitName Value="GenericMatrix"/>
     74      </Item11>
    7175    </Files>
    7276    <Type Value="RunAndDesignTime"/>
  • Generics/NativeGenerics/NativeGenerics.pas

    r320 r321  
    99uses
    1010  GenericList, GenericTree, GenericDictionary, GenericQueue, GenericRange,
    11   GenericSet, GenericStack, GenericStream, SpecializedList, LazarusPackageIntf;
     11  GenericSet, GenericStack, GenericStream, SpecializedList, GenericMatrix,
     12  LazarusPackageIntf;
    1213
    1314implementation
  • Generics/NativeGenerics/Units/GenericList.pas

    r320 r321  
    99
    1010type
     11
     12  { TGList }
     13
    1114  TGList<TItem> = class
    12   private
     15  public
    1316  type
    1417    TIndex = NativeInt;
     
    1720    TFromStringConverter = function(Text: string): TItem;
    1821    TItemArray = array of TItem;
    19   var
     22  private
     23    FCount: TIndex;
    2024    FItems: array of TItem;
    21     FCount: TIndex;
    2225    function Get(Index: TIndex): TItem;
    2326    function GetCapacity: TIndex;
     27    function GetFirst: TItem;
    2428    function GetLast: TItem;
    25     function GetFirst: TItem;
    2629    procedure SetCapacity(const AValue: TIndex);
    2730    procedure SetCapacityOptimized(const NewCapacity: TIndex);
     31    procedure SetCount(const AValue: TIndex);
     32    procedure SetFirst(AValue: TItem);
    2833    procedure SetLast(AValue: TItem);
    29     procedure SetFirst(AValue: TItem);
    3034    procedure Put(Index: TIndex; const AValue: TItem); virtual;
    31     procedure SetCount(const AValue: TIndex); virtual;
    3235    procedure QuickSort(L, R : TIndex; Compare: TSortCompare);
    3336  public
     
    5255    procedure InsertList(Index: TIndex; List: TGList<TItem>);
    5356    procedure InsertArray(Index: TIndex; Values: array of TItem);
     57    procedure InsertCount(Index: TIndex; ACount: TIndex);
    5458    procedure Move(CurIndex, NewIndex: TIndex);
    5559    procedure MoveItems(CurIndex, NewIndex, Count: TIndex);
    5660    function Remove(Item: TItem): TIndex;
    5761    procedure Reverse;
     62    procedure ReplaceArray(Index: TIndex; Values: array of TItem);
     63    procedure ReplaceList(Index: TIndex; Source: TGList<TItem>);
     64    procedure ReplaceListPart(Index: TIndex; Source: TGList<TItem>;
     65      SourceIndex, SourceCount: TIndex);
    5866    procedure Sort(Compare: TSortCompare);
    5967    procedure SetArray(Values: array of TItem);
     
    8492    constructor Create;
    8593    destructor Destroy; override;
    86 
    8794  end;
    8895
     
    230237procedure TGList<TItem>.Insert(Index: TIndex; Item: TItem);
    231238begin
    232   if (Index < 0) or (Index > FCount ) then
     239  if (Index < 0) or (Index > FCount) then
    233240    raise EListError.CreateFmt(SListIndexError, [Index]);
    234   if FCount = Capacity then SetCapacityOptimized(Capacity + 1);
    235   if Index < FCount then
    236     System.Move(FItems[Index], FItems[Index + 1], (FCount - Index) * SizeOf(TItem));
     241  InsertCount(Index, 1);
    237242  FItems[Index] := Item;
    238   FCount := FCount + 1;
    239243end;
    240244
    241245procedure TGList<TItem>.InsertList(Index: TIndex; List: TGList<TItem>);
    242 var
    243   I: TIndex;
    244 begin
    245   I := 0;
    246   while (I < List.Count) do begin
    247     Insert(Index + I, List[I]);
    248     I := I + 1;
    249   end;
     246begin
     247  if (Index < 0) or (Index > FCount) then
     248    raise EListError.CreateFmt(SListIndexError, [Index]);
     249  InsertCount(Index, List.Count);
     250  ReplaceList(Index, List);
    250251end;
    251252
     
    381382end;
    382383
     384procedure TGList<TItem>.ReplaceArray(Index: TIndex;
     385  Values: array of TItem);
     386var
     387  I: TIndex;
     388begin
     389  I := 0;
     390  while I < Length(Values) do begin
     391    Items[Index + I] := Values[I];
     392    I := I + 1;
     393  end;
     394end;
     395
     396procedure TGList<TItem>.ReplaceList(Index: TIndex; Source: TGList<TItem>);
     397var
     398  I: TIndex;
     399begin
     400  I := 0;
     401  while I < Source.Count do begin
     402    Items[Index + I] := Source[I];
     403    I := I + 1;
     404  end;
     405end;
     406
     407procedure TGList<TItem>.ReplaceListPart(Index: TIndex; Source: TGList<TItem>;
     408  SourceIndex, SourceCount: TIndex);
     409var
     410  I: TIndex;
     411begin
     412  I := 0;
     413  while I < SourceCount do begin
     414    Items[Index + I] := Source[SourceIndex + I];
     415    I := I + 1;
     416  end;
     417end;
     418
    383419procedure TGList<TItem>.Sort(Compare: TSortCompare);
    384420begin
     
    411447
    412448procedure TGList<TItem>.InsertArray(Index: TIndex; Values: array of TItem);
    413 var
    414   I: TIndex;
    415 begin
    416   I := 0;
    417   while I <= High(Values) do begin
    418     Insert(Index + I, Values[I]);
    419     I := I + 1;
    420   end;
     449begin
     450  if (Index < 0) or (Index > FCount) then
     451    raise EListError.CreateFmt(SListIndexError, [Index]);
     452  InsertCount(Index, Length(Values));
     453  ReplaceArray(Index, Values);
     454end;
     455
     456procedure TGList<TItem>.InsertCount(Index: TIndex; ACount: TIndex);
     457begin
     458  if (Index < 0) or (Index > FCount) then
     459    raise EListError.CreateFmt(SListIndexError, [Index]);
     460  Count := Count + ACount;
     461  if Index < FCount then
     462    System.Move(FItems[Index], FItems[Index + ACount], (FCount - ACount - Index) * SizeOf(TItem));
    421463end;
    422464
Note: See TracChangeset for help on using the changeset viewer.