Changeset 321 for Generics/NativeGenerics
- Timestamp:
- Feb 7, 2012, 3:35:32 PM (13 years ago)
- Location:
- Generics/NativeGenerics
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
Generics/NativeGenerics/Demo/Demo.lpi
r320 r321 43 43 <IsPartOfProject Value="True"/> 44 44 <UnitName Value="Demo"/> 45 <EditorIndex Value="7"/> 45 46 <WindowIndex Value="0"/> 46 47 <TopLine Value="1"/> 47 48 <CursorPos X="26" Y="8"/> 48 49 <UsageCount Value="233"/> 50 <Loaded Value="True"/> 49 51 <DefaultSyntaxHighlighter Value="Delphi"/> 50 52 </Unit0> … … 57 59 <EditorIndex Value="0"/> 58 60 <WindowIndex Value="0"/> 59 <TopLine Value=" 127"/>60 <CursorPos X="1 5" Y="47"/>61 <TopLine Value="85"/> 62 <CursorPos X="11" Y="98"/> 61 63 <UsageCount Value="233"/> 62 64 <Bookmarks Count="1"> 63 <Item0 X="65" Y="2 34" ID="2"/>65 <Item0 X="65" Y="277" ID="2"/> 64 66 </Bookmarks> 65 67 <Loaded Value="True"/> … … 73 75 <TopLine Value="47"/> 74 76 <CursorPos X="20" Y="60"/> 75 <UsageCount Value=" 6"/>77 <UsageCount Value="5"/> 76 78 <DefaultSyntaxHighlighter Value="Delphi"/> 77 79 </Unit2> … … 81 83 <TopLine Value="1"/> 82 84 <CursorPos X="25" Y="13"/> 83 <UsageCount Value=" 1"/>85 <UsageCount Value="0"/> 84 86 <DefaultSyntaxHighlighter Value="None"/> 85 87 </Unit3> … … 89 91 <TopLine Value="1"/> 90 92 <CursorPos X="21" Y="4"/> 91 <UsageCount Value=" 2"/>93 <UsageCount Value="1"/> 92 94 <DefaultSyntaxHighlighter Value="None"/> 93 95 </Unit4> … … 98 100 <TopLine Value="1"/> 99 101 <CursorPos X="1" Y="25"/> 100 <UsageCount Value=" 2"/>102 <UsageCount Value="1"/> 101 103 <DefaultSyntaxHighlighter Value="Delphi"/> 102 104 </Unit5> … … 106 108 <TopLine Value="1"/> 107 109 <CursorPos X="1" Y="3"/> 108 <UsageCount Value=" 2"/>110 <UsageCount Value="1"/> 109 111 <DefaultSyntaxHighlighter Value="None"/> 110 112 </Unit6> … … 114 116 <TopLine Value="1"/> 115 117 <CursorPos X="7" Y="4"/> 116 <UsageCount Value=" 2"/>118 <UsageCount Value="1"/> 117 119 <DefaultSyntaxHighlighter Value="None"/> 118 120 </Unit7> … … 123 125 <TopLine Value="1"/> 124 126 <CursorPos X="14" Y="15"/> 125 <UsageCount Value=" 2"/>127 <UsageCount Value="1"/> 126 128 <DefaultSyntaxHighlighter Value="Delphi"/> 127 129 </Unit8> … … 131 133 <TopLine Value="1"/> 132 134 <CursorPos X="14" Y="18"/> 133 <UsageCount Value=" 2"/>135 <UsageCount Value="1"/> 134 136 <DefaultSyntaxHighlighter Value="None"/> 135 137 </Unit9> … … 140 142 <TopLine Value="2"/> 141 143 <CursorPos X="30" Y="8"/> 142 <UsageCount Value=" 2"/>144 <UsageCount Value="1"/> 143 145 <DefaultSyntaxHighlighter Value="Delphi"/> 144 146 </Unit10> … … 149 151 <TopLine Value="13"/> 150 152 <CursorPos X="15" Y="12"/> 151 <UsageCount Value=" 4"/>153 <UsageCount Value="3"/> 152 154 <DefaultSyntaxHighlighter Value="Delphi"/> 153 155 </Unit11> … … 157 159 <TopLine Value="359"/> 158 160 <CursorPos X="62" Y="376"/> 159 <UsageCount Value="10 3"/>161 <UsageCount Value="102"/> 160 162 <DefaultSyntaxHighlighter Value="Delphi"/> 161 163 </Unit12> … … 165 167 <TopLine Value="31"/> 166 168 <CursorPos X="44" Y="47"/> 167 <UsageCount Value=" 90"/>169 <UsageCount Value="89"/> 168 170 <DefaultSyntaxHighlighter Value="Delphi"/> 169 171 </Unit13> … … 173 175 <TopLine Value="1"/> 174 176 <CursorPos X="36" Y="48"/> 175 <UsageCount Value=" 90"/>177 <UsageCount Value="89"/> 176 178 <DefaultSyntaxHighlighter Value="Delphi"/> 177 179 </Unit14> … … 181 183 <TopLine Value="3"/> 182 184 <CursorPos X="1" Y="3"/> 183 <UsageCount Value=" 90"/>185 <UsageCount Value="89"/> 184 186 <DefaultSyntaxHighlighter Value="Delphi"/> 185 187 </Unit15> … … 189 191 <TopLine Value="11"/> 190 192 <CursorPos X="42" Y="11"/> 191 <UsageCount Value=" 90"/>193 <UsageCount Value="89"/> 192 194 <DefaultSyntaxHighlighter Value="Delphi"/> 193 195 </Unit16> … … 197 199 <TopLine Value="3"/> 198 200 <CursorPos X="1" Y="3"/> 199 <UsageCount Value=" 90"/>201 <UsageCount Value="89"/> 200 202 <DefaultSyntaxHighlighter Value="Delphi"/> 201 203 </Unit17> … … 205 207 <TopLine Value="1"/> 206 208 <CursorPos X="22" Y="30"/> 207 <UsageCount Value=" 90"/>209 <UsageCount Value="89"/> 208 210 <DefaultSyntaxHighlighter Value="Delphi"/> 209 211 </Unit18> … … 214 216 <TopLine Value="6"/> 215 217 <CursorPos X="56" Y="36"/> 216 <UsageCount Value="8 9"/>218 <UsageCount Value="88"/> 217 219 <DefaultSyntaxHighlighter Value="Delphi"/> 218 220 </Unit19> … … 223 225 <TopLine Value="27"/> 224 226 <CursorPos X="50" Y="59"/> 225 <UsageCount Value="8 8"/>227 <UsageCount Value="87"/> 226 228 <DefaultSyntaxHighlighter Value="Delphi"/> 227 229 </Unit20> … … 232 234 <TopLine Value="57"/> 233 235 <CursorPos X="48" Y="85"/> 234 <UsageCount Value="8 8"/>236 <UsageCount Value="87"/> 235 237 <DefaultSyntaxHighlighter Value="Delphi"/> 236 238 </Unit21> … … 240 242 <TopLine Value="1"/> 241 243 <CursorPos X="33" Y="14"/> 242 <UsageCount Value="8 8"/>244 <UsageCount Value="87"/> 243 245 <DefaultSyntaxHighlighter Value="Delphi"/> 244 246 </Unit22> … … 249 251 <TopLine Value="52"/> 250 252 <CursorPos X="1" Y="81"/> 251 <UsageCount Value="8 8"/>253 <UsageCount Value="87"/> 252 254 <DefaultSyntaxHighlighter Value="Delphi"/> 253 255 </Unit23> … … 258 260 <TopLine Value="29"/> 259 261 <CursorPos X="1" Y="62"/> 260 <UsageCount Value="8 8"/>262 <UsageCount Value="87"/> 261 263 <DefaultSyntaxHighlighter Value="Delphi"/> 262 264 </Unit24> … … 267 269 <TopLine Value="9"/> 268 270 <CursorPos X="60" Y="36"/> 269 <UsageCount Value="8 7"/>271 <UsageCount Value="86"/> 270 272 <DefaultSyntaxHighlighter Value="Delphi"/> 271 273 </Unit25> … … 275 277 <TopLine Value="9"/> 276 278 <CursorPos X="28" Y="23"/> 277 <UsageCount Value="9 9"/>279 <UsageCount Value="98"/> 278 280 <DefaultSyntaxHighlighter Value="Delphi"/> 279 281 </Unit26> … … 284 286 <TopLine Value="2624"/> 285 287 <CursorPos X="37" Y="2636"/> 286 <UsageCount Value="8 6"/>288 <UsageCount Value="85"/> 287 289 <DefaultSyntaxHighlighter Value="Delphi"/> 288 290 </Unit27> … … 292 294 <TopLine Value="94"/> 293 295 <CursorPos X="1" Y="1"/> 294 <UsageCount Value=" 2"/>296 <UsageCount Value="1"/> 295 297 <DefaultSyntaxHighlighter Value="XML"/> 296 298 </Unit28> … … 300 302 <TopLine Value="199"/> 301 303 <CursorPos X="14" Y="213"/> 302 <UsageCount Value="2 4"/>304 <UsageCount Value="23"/> 303 305 <DefaultSyntaxHighlighter Value="Delphi"/> 304 306 </Unit29> … … 308 310 <TopLine Value="199"/> 309 311 <CursorPos X="3" Y="201"/> 310 <UsageCount Value="2 4"/>312 <UsageCount Value="23"/> 311 313 <DefaultSyntaxHighlighter Value="Delphi"/> 312 314 </Unit30> … … 316 318 <TopLine Value="1"/> 317 319 <CursorPos X="21" Y="20"/> 318 <UsageCount Value="1 5"/>320 <UsageCount Value="14"/> 319 321 <DefaultSyntaxHighlighter Value="Delphi"/> 320 322 </Unit31> … … 325 327 <TopLine Value="1"/> 326 328 <CursorPos X="27" Y="26"/> 327 <UsageCount Value="2 4"/>329 <UsageCount Value="23"/> 328 330 <DefaultSyntaxHighlighter Value="Delphi"/> 329 331 </Unit32> … … 333 335 <TopLine Value="381"/> 334 336 <CursorPos X="3" Y="398"/> 335 <UsageCount Value="2 4"/>337 <UsageCount Value="23"/> 336 338 <DefaultSyntaxHighlighter Value="Delphi"/> 337 339 </Unit33> … … 341 343 <TopLine Value="475"/> 342 344 <CursorPos X="10" Y="503"/> 343 <UsageCount Value=" 3"/>345 <UsageCount Value="2"/> 344 346 <DefaultSyntaxHighlighter Value="Delphi"/> 345 347 </Unit34> … … 349 351 <TopLine Value="2270"/> 350 352 <CursorPos X="22" Y="2273"/> 351 <UsageCount Value="1 5"/>353 <UsageCount Value="14"/> 352 354 <DefaultSyntaxHighlighter Value="Delphi"/> 353 355 </Unit35> … … 358 360 <TopLine Value="1"/> 359 361 <CursorPos X="25" Y="41"/> 360 <UsageCount Value="1 5"/>362 <UsageCount Value="14"/> 361 363 <DefaultSyntaxHighlighter Value="Delphi"/> 362 364 </Unit36> … … 366 368 <TopLine Value="1"/> 367 369 <CursorPos X="28" Y="10"/> 368 <UsageCount Value=" 5"/>370 <UsageCount Value="4"/> 369 371 <DefaultSyntaxHighlighter Value="None"/> 370 372 </Unit37> … … 374 376 <TopLine Value="38"/> 375 377 <CursorPos X="3" Y="50"/> 376 <UsageCount Value=" 7"/>378 <UsageCount Value="6"/> 377 379 <DefaultSyntaxHighlighter Value="Delphi"/> 378 380 </Unit38> … … 382 384 <TopLine Value="649"/> 383 385 <CursorPos X="38" Y="671"/> 384 <UsageCount Value=" 6"/>386 <UsageCount Value="5"/> 385 387 <DefaultSyntaxHighlighter Value="Delphi"/> 386 388 </Unit39> … … 390 392 <TopLine Value="1185"/> 391 393 <CursorPos X="22" Y="1196"/> 392 <UsageCount Value=" 6"/>394 <UsageCount Value="5"/> 393 395 <DefaultSyntaxHighlighter Value="Delphi"/> 394 396 </Unit40> … … 399 401 <TopLine Value="112"/> 400 402 <CursorPos X="3" Y="124"/> 401 <UsageCount Value=" 6"/>403 <UsageCount Value="5"/> 402 404 <DefaultSyntaxHighlighter Value="Delphi"/> 403 405 </Unit41> … … 407 409 <TopLine Value="71"/> 408 410 <CursorPos X="10" Y="84"/> 409 <UsageCount Value=" 6"/>411 <UsageCount Value="5"/> 410 412 <DefaultSyntaxHighlighter Value="Delphi"/> 411 413 </Unit42> … … 415 417 <TopLine Value="148"/> 416 418 <CursorPos X="11" Y="169"/> 417 <UsageCount Value=" 6"/>419 <UsageCount Value="5"/> 418 420 <DefaultSyntaxHighlighter Value="Delphi"/> 419 421 </Unit43> … … 423 425 <TopLine Value="511"/> 424 426 <CursorPos X="11" Y="524"/> 425 <UsageCount Value=" 6"/>427 <UsageCount Value="5"/> 426 428 <DefaultSyntaxHighlighter Value="Delphi"/> 427 429 </Unit44> … … 431 433 <TopLine Value="411"/> 432 434 <CursorPos X="10" Y="424"/> 433 <UsageCount Value=" 6"/>435 <UsageCount Value="5"/> 434 436 <DefaultSyntaxHighlighter Value="Delphi"/> 435 437 </Unit45> … … 437 439 <Filename Value="../Units/GenericList.pas"/> 438 440 <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"/> 444 447 <Loaded Value="True"/> 445 448 </Unit46> … … 447 450 <Filename Value="../Units/GenericMatrix.pas"/> 448 451 <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"/> 453 458 </Unit47> 454 459 <Unit48> 455 460 <Filename Value="../Units/GenericStream.pas"/> 456 461 <UnitName Value="GenericStream"/> 457 <IsVisibleTab Value="True"/>458 <EditorIndex Value="9"/>459 462 <WindowIndex Value="0"/> 460 463 <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"/> 464 466 </Unit48> 465 467 <Unit49> 466 468 <Filename Value="../Units/GenericQueue.pas"/> 467 469 <UnitName Value="GenericQueue"/> 468 <EditorIndex Value="6"/>469 470 <WindowIndex Value="0"/> 470 471 <TopLine Value="18"/> 471 472 <CursorPos X="24" Y="28"/> 472 <UsageCount Value="12"/> 473 <Loaded Value="True"/> 473 <UsageCount Value="13"/> 474 474 </Unit49> 475 475 <Unit50> 476 476 <Filename Value="../Units/GenericDictionary.pas"/> 477 477 <UnitName Value="GenericDictionary"/> 478 <EditorIndex Value=" 4"/>478 <EditorIndex Value="5"/> 479 479 <WindowIndex Value="0"/> 480 480 <TopLine Value="1"/> 481 481 <CursorPos X="1" Y="1"/> 482 <UsageCount Value="1 2"/>482 <UsageCount Value="14"/> 483 483 <Loaded Value="True"/> 484 484 </Unit50> 485 485 <Unit51> 486 486 <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"/> 488 488 <WindowIndex Value="0"/> 489 489 <TopLine Value="9"/> 490 490 <CursorPos X="10" Y="22"/> 491 <UsageCount Value="1 2"/>491 <UsageCount Value="14"/> 492 492 <Loaded Value="True"/> 493 493 <DefaultSyntaxHighlighter Value="Delphi"/> … … 496 496 <Filename Value="../Units/SpecializedList.pas"/> 497 497 <UnitName Value="SpecializedList"/> 498 <EditorIndex Value=" 12"/>498 <EditorIndex Value="8"/> 499 499 <WindowIndex Value="0"/> 500 500 <TopLine Value="1"/> 501 501 <CursorPos X="23" Y="11"/> 502 <UsageCount Value="1 2"/>502 <UsageCount Value="14"/> 503 503 <Loaded Value="True"/> 504 504 </Unit52> 505 505 <Unit53> 506 506 <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"/> 513 511 </Unit53> 514 512 <Unit54> 515 513 <Filename Value="../Units/GenericSet.pas"/> 516 514 <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"/> 523 519 </Unit54> 524 520 <Unit55> 525 521 <Filename Value="../Units/GenericStack.pas"/> 526 522 <UnitName Value="GenericStack"/> 527 <EditorIndex Value="8"/>528 523 <WindowIndex Value="0"/> 529 524 <TopLine Value="22"/> 530 525 <CursorPos X="14" Y="38"/> 531 <UsageCount Value="12"/> 532 <Loaded Value="True"/> 526 <UsageCount Value="13"/> 533 527 </Unit55> 534 528 <Unit56> 535 529 <Filename Value="../Units/GenericRange.pas"/> 536 530 <UnitName Value="GenericRange"/> 537 <EditorIndex Value=" 1"/>531 <EditorIndex Value="2"/> 538 532 <WindowIndex Value="0"/> 539 533 <TopLine Value="4"/> 540 534 <CursorPos X="33" Y="8"/> 541 <UsageCount Value="1 2"/>535 <UsageCount Value="14"/> 542 536 <Loaded Value="True"/> 543 537 </Unit56> 544 538 <Unit57> 545 539 <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/fpc/2.7.1/source/rtl/inc/systemh.inc"/> 546 <EditorIndex Value="10"/>547 540 <WindowIndex Value="0"/> 548 541 <TopLine Value="958"/> 549 542 <CursorPos X="11" Y="971"/> 550 <UsageCount Value="12"/> 551 <Loaded Value="True"/> 543 <UsageCount Value="13"/> 552 544 </Unit57> 553 545 <Unit58> 554 546 <Filename Value="../Units/GenericTree.pas"/> 555 547 <UnitName Value="GenericTree"/> 556 <EditorIndex Value=" 2"/>548 <EditorIndex Value="3"/> 557 549 <WindowIndex Value="0"/> 558 550 <TopLine Value="1"/> 559 551 <CursorPos X="33" Y="8"/> 560 <UsageCount Value="1 2"/>552 <UsageCount Value="13"/> 561 553 <Loaded Value="True"/> 562 554 </Unit58> 563 555 </Units> 564 <JumpHistory Count="30" HistoryIndex="2 8">556 <JumpHistory Count="30" HistoryIndex="29"> 565 557 <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"/> 568 560 </Position1> 569 561 <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"/> 572 564 </Position2> 573 565 <Position3> 574 <Filename Value="../Units/Generic Stream.pas"/>575 <Caret Line=" 29" Column="19" TopLine="16"/>566 <Filename Value="../Units/GenericList.pas"/> 567 <Caret Line="67" Column="35" TopLine="51"/> 576 568 </Position3> 577 569 <Position4> 578 <Filename Value="../Units/Generic Stream.pas"/>579 <Caret Line="1 6" Column="53" TopLine="7"/>570 <Filename Value="../Units/GenericList.pas"/> 571 <Caret Line="14" Column="36" TopLine="1"/> 580 572 </Position4> 581 573 <Position5> 582 <Filename Value="../Units/Generic Stream.pas"/>583 <Caret Line="4 6" Column="19" TopLine="33"/>574 <Filename Value="../Units/GenericList.pas"/> 575 <Caret Line="434" Column="1" TopLine="419"/> 584 576 </Position5> 585 577 <Position6> 586 <Filename Value="../Units/Generic Stream.pas"/>587 <Caret Line=" 34" Column="8" TopLine="24"/>578 <Filename Value="../Units/GenericList.pas"/> 579 <Caret Line="16" Column="3" TopLine="15"/> 588 580 </Position6> 589 581 <Position7> 590 <Filename Value="../Units/Generic Stream.pas"/>591 <Caret Line="3 0" Column="19" TopLine="20"/>582 <Filename Value="../Units/GenericList.pas"/> 583 <Caret Line="32" Column="1" TopLine="15"/> 592 584 </Position7> 593 585 <Position8> 594 <Filename Value="../Units/Generic Stream.pas"/>595 <Caret Line=" 41" Column="1" TopLine="33"/>586 <Filename Value="../Units/GenericList.pas"/> 587 <Caret Line="147" Column="3" TopLine="145"/> 596 588 </Position8> 597 589 <Position9> 598 <Filename Value="../Units/Generic Stream.pas"/>599 <Caret Line=" 8" Column="13" TopLine="1"/>590 <Filename Value="../Units/GenericList.pas"/> 591 <Caret Line="27" Column="1" TopLine="24"/> 600 592 </Position9> 601 593 <Position10> 602 <Filename Value="../Units/Generic Stream.pas"/>603 <Caret Line=" 29" Column="58" TopLine="14"/>594 <Filename Value="../Units/GenericList.pas"/> 595 <Caret Line="30" Column="1" TopLine="21"/> 604 596 </Position10> 605 597 <Position11> 606 <Filename Value="../Units/Generic Stream.pas"/>607 <Caret Line="3 9" Column="1" TopLine="27"/>598 <Filename Value="../Units/GenericList.pas"/> 599 <Caret Line="35" Column="1" TopLine="22"/> 608 600 </Position11> 609 601 <Position12> 610 <Filename Value="../Units/Generic Stream.pas"/>611 <Caret Line=" 29" Column="18" TopLine="6"/>602 <Filename Value="../Units/GenericList.pas"/> 603 <Caret Line="77" Column="31" TopLine="53"/> 612 604 </Position12> 613 605 <Position13> 614 <Filename Value="../Units/Generic Stream.pas"/>615 <Caret Line=" 46" Column="23" TopLine="33"/>606 <Filename Value="../Units/GenericList.pas"/> 607 <Caret Line="15" Column="1" TopLine="14"/> 616 608 </Position13> 617 609 <Position14> 618 <Filename Value="../Units/Generic Stream.pas"/>619 <Caret Line=" 66" Column="25" TopLine="53"/>610 <Filename Value="../Units/GenericList.pas"/> 611 <Caret Line="26" Column="1" TopLine="22"/> 620 612 </Position14> 621 613 <Position15> 622 <Filename Value="../Units/Generic Stream.pas"/>623 <Caret Line=" 62" Column="29" TopLine="49"/>614 <Filename Value="../Units/GenericList.pas"/> 615 <Caret Line="77" Column="33" TopLine="53"/> 624 616 </Position15> 625 617 <Position16> 626 <Filename Value="../Units/Generic Range.pas"/>627 <Caret Line=" 1" Column="1" TopLine="1"/>618 <Filename Value="../Units/GenericList.pas"/> 619 <Caret Line="45" Column="1" TopLine="32"/> 628 620 </Position16> 629 621 <Position17> 630 <Filename Value="../Units/Generic Tree.pas"/>631 <Caret Line=" 1" Column="1" TopLine="1"/>622 <Filename Value="../Units/GenericList.pas"/> 623 <Caret Line="25" Column="1" TopLine="13"/> 632 624 </Position17> 633 625 <Position18> 634 <Filename Value="../Units/Generic Tree.pas"/>635 <Caret Line=" 8" Column="33" TopLine="1"/>626 <Filename Value="../Units/GenericList.pas"/> 627 <Caret Line="26" Column="1" TopLine="13"/> 636 628 </Position18> 637 629 <Position19> 638 <Filename Value="../Units/Generic Range.pas"/>639 <Caret Line=" 8" Column="33" TopLine="1"/>630 <Filename Value="../Units/GenericList.pas"/> 631 <Caret Line="27" Column="1" TopLine="14"/> 640 632 </Position19> 641 633 <Position20> 642 <Filename Value="../Units/Generic Tree.pas"/>643 <Caret Line=" 8" Column="33" TopLine="1"/>634 <Filename Value="../Units/GenericList.pas"/> 635 <Caret Line="28" Column="1" TopLine="15"/> 644 636 </Position20> 645 637 <Position21> 646 <Filename Value="../Units/Generic Stream.pas"/>647 <Caret Line=" 46" Column="23" TopLine="33"/>638 <Filename Value="../Units/GenericList.pas"/> 639 <Caret Line="31" Column="1" TopLine="18"/> 648 640 </Position21> 649 641 <Position22> 650 <Filename Value="../Units/Generic Stream.pas"/>651 <Caret Line=" 86" Column="1" TopLine="61"/>642 <Filename Value="../Units/GenericList.pas"/> 643 <Caret Line="35" Column="1" TopLine="22"/> 652 644 </Position22> 653 645 <Position23> 654 <Filename Value="../Units/Generic Stream.pas"/>655 <Caret Line=" 66" Column="18" TopLine="42"/>646 <Filename Value="../Units/GenericList.pas"/> 647 <Caret Line="29" Column="1" TopLine="22"/> 656 648 </Position23> 657 649 <Position24> 658 <Filename Value="../Units/Generic Stream.pas"/>659 <Caret Line=" 46" Column="19" TopLine="33"/>650 <Filename Value="../Units/GenericList.pas"/> 651 <Caret Line="35" Column="1" TopLine="22"/> 660 652 </Position24> 661 653 <Position25> 662 <Filename Value="../Units/Generic Stream.pas"/>663 <Caret Line=" 16" Column="53" TopLine="5"/>654 <Filename Value="../Units/GenericList.pas"/> 655 <Caret Line="31" Column="30" TopLine="22"/> 664 656 </Position25> 665 657 <Position26> 666 <Filename Value="../Units/Generic Stream.pas"/>667 <Caret Line=" 45" Column="15" TopLine="34"/>658 <Filename Value="../Units/GenericList.pas"/> 659 <Caret Line="64" Column="1" TopLine="48"/> 668 660 </Position26> 669 661 <Position27> 670 <Filename Value="../Units/Generic Stream.pas"/>671 <Caret Line="4 7" Column="18" TopLine="34"/>662 <Filename Value="../Units/GenericList.pas"/> 663 <Caret Line="407" Column="77" TopLine="389"/> 672 664 </Position27> 673 665 <Position28> 674 <Filename Value="../Units/Generic Stream.pas"/>675 <Caret Line=" 20" Column="15" TopLine="7"/>666 <Filename Value="../Units/GenericList.pas"/> 667 <Caret Line="62" Column="20" TopLine="55"/> 676 668 </Position28> 677 669 <Position29> 678 <Filename Value="../Units/Generic Stream.pas"/>679 <Caret Line=" 48" Column="18" TopLine="35"/>670 <Filename Value="../Units/GenericList.pas"/> 671 <Caret Line="385" Column="21" TopLine="380"/> 680 672 </Position29> 681 673 <Position30> 682 <Filename Value="../ ../../../../Lazarus/0.9.31_2.7.1/fpc/2.7.1/source/rtl/objpas/classes/classesh.inc"/>683 <Caret Line="6 5" Column="49" TopLine="52"/>674 <Filename Value="../Units/GenericList.pas"/> 675 <Caret Line="64" Column="39" TopLine="51"/> 684 676 </Position30> 685 677 </JumpHistory> -
Generics/NativeGenerics/Demo/UMainForm.lfm
r313 r321 48 48 end 49 49 object ButtonCharList: TButton 50 Left = 750 Left = 8 51 51 Height = 25 52 52 Top = 134 53 Width = 12 953 Width = 128 54 54 Caption = 'TListChar(TString)' 55 55 OnClick = ButtonCharListClick … … 57 57 end 58 58 object ButtonBenchmarkListString: TButton 59 Left = 1059 Left = 8 60 60 Height = 24 61 61 Top = 456 … … 67 67 end 68 68 object ButtonListObject: TButton 69 Left = 769 Left = 8 70 70 Height = 25 71 71 Top = 163 72 Width = 12 972 Width = 128 73 73 Caption = 'TListObject' 74 74 OnClick = ButtonListObjectClick … … 76 76 end 77 77 object ButtonBenchmarkDictionary: TButton 78 Left = 1078 Left = 8 79 79 Height = 25 80 80 Top = 424 81 Width = 12 681 Width = 128 82 82 Anchors = [akLeft, akBottom] 83 83 Caption = 'TDictionaryStringString' … … 86 86 end 87 87 object ButtonMatrixInteger: TButton 88 Left = 788 Left = 8 89 89 Height = 25 90 90 Top = 192 91 Width = 12 991 Width = 128 92 92 Caption = 'TMatrixInteger' 93 93 OnClick = ButtonMatrixIntegerClick … … 122 122 end 123 123 object Label1: TLabel 124 Left = 10124 Left = 8 125 125 Height = 14 126 126 Top = 408 … … 140 140 TabOrder = 10 141 141 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 142 151 end -
Generics/NativeGenerics/Demo/UMainForm.pas
r320 r321 15 15 16 16 TMainForm = class(TForm) 17 ButtonStreamByte: TButton; 17 18 ButtonBenchmarkDictionary: TButton; 18 19 ButtonBenchmarkListPointer: TButton; … … 37 38 procedure ButtonListObjectClick(Sender: TObject); 38 39 procedure ButtonQueueIntegerClick(Sender: TObject); 40 procedure ButtonStreamByteClick(Sender: TObject); 39 41 procedure ButtonStringListClick(Sender: TObject); 40 42 procedure FormCreate(Sender: TObject); … … 94 96 List2.SetArray([2, 0]); 95 97 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)); 96 102 finally 97 103 Free; … … 170 176 WriteOutput('Dequeued item', IntToStr(Dequeue)); 171 177 WriteOutput('Dequeue', List.Implode(',', IntToStr)); 178 finally 179 Free; 180 end; 181 end; 182 183 procedure TMainForm.ButtonStreamByteClick(Sender: TObject); 184 var 185 Stream: TMemoryStreamByte; 186 I: Integer; 187 ByteArray: array of Byte; 188 ByteArrayText: string; 189 begin 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)); 172 215 finally 173 216 Free; … … 705 748 MoveItems(2, 3, 3); 706 749 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)); 707 754 finally 708 755 Free; -
Generics/NativeGenerics/NativeGenerics.lpk
r320 r321 28 28 <License Value="GNU/GPL"/> 29 29 <Version Minor="1"/> 30 <Files Count="1 0">30 <Files Count="11"> 31 31 <Item1> 32 32 <Filename Value="ReadMe.txt"/> … … 69 69 <UnitName Value="SpecializedList"/> 70 70 </Item10> 71 <Item11> 72 <Filename Value="Units\GenericMatrix.pas"/> 73 <UnitName Value="GenericMatrix"/> 74 </Item11> 71 75 </Files> 72 76 <Type Value="RunAndDesignTime"/> -
Generics/NativeGenerics/NativeGenerics.pas
r320 r321 9 9 uses 10 10 GenericList, GenericTree, GenericDictionary, GenericQueue, GenericRange, 11 GenericSet, GenericStack, GenericStream, SpecializedList, LazarusPackageIntf; 11 GenericSet, GenericStack, GenericStream, SpecializedList, GenericMatrix, 12 LazarusPackageIntf; 12 13 13 14 implementation -
Generics/NativeGenerics/Units/GenericList.pas
r320 r321 9 9 10 10 type 11 12 { TGList } 13 11 14 TGList<TItem> = class 12 p rivate15 public 13 16 type 14 17 TIndex = NativeInt; … … 17 20 TFromStringConverter = function(Text: string): TItem; 18 21 TItemArray = array of TItem; 19 var 22 private 23 FCount: TIndex; 20 24 FItems: array of TItem; 21 FCount: TIndex;22 25 function Get(Index: TIndex): TItem; 23 26 function GetCapacity: TIndex; 27 function GetFirst: TItem; 24 28 function GetLast: TItem; 25 function GetFirst: TItem;26 29 procedure SetCapacity(const AValue: TIndex); 27 30 procedure SetCapacityOptimized(const NewCapacity: TIndex); 31 procedure SetCount(const AValue: TIndex); 32 procedure SetFirst(AValue: TItem); 28 33 procedure SetLast(AValue: TItem); 29 procedure SetFirst(AValue: TItem);30 34 procedure Put(Index: TIndex; const AValue: TItem); virtual; 31 procedure SetCount(const AValue: TIndex); virtual;32 35 procedure QuickSort(L, R : TIndex; Compare: TSortCompare); 33 36 public … … 52 55 procedure InsertList(Index: TIndex; List: TGList<TItem>); 53 56 procedure InsertArray(Index: TIndex; Values: array of TItem); 57 procedure InsertCount(Index: TIndex; ACount: TIndex); 54 58 procedure Move(CurIndex, NewIndex: TIndex); 55 59 procedure MoveItems(CurIndex, NewIndex, Count: TIndex); 56 60 function Remove(Item: TItem): TIndex; 57 61 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); 58 66 procedure Sort(Compare: TSortCompare); 59 67 procedure SetArray(Values: array of TItem); … … 84 92 constructor Create; 85 93 destructor Destroy; override; 86 87 94 end; 88 95 … … 230 237 procedure TGList<TItem>.Insert(Index: TIndex; Item: TItem); 231 238 begin 232 if (Index < 0) or (Index > FCount 239 if (Index < 0) or (Index > FCount) then 233 240 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); 237 242 FItems[Index] := Item; 238 FCount := FCount + 1;239 243 end; 240 244 241 245 procedure 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; 246 begin 247 if (Index < 0) or (Index > FCount) then 248 raise EListError.CreateFmt(SListIndexError, [Index]); 249 InsertCount(Index, List.Count); 250 ReplaceList(Index, List); 250 251 end; 251 252 … … 381 382 end; 382 383 384 procedure TGList<TItem>.ReplaceArray(Index: TIndex; 385 Values: array of TItem); 386 var 387 I: TIndex; 388 begin 389 I := 0; 390 while I < Length(Values) do begin 391 Items[Index + I] := Values[I]; 392 I := I + 1; 393 end; 394 end; 395 396 procedure TGList<TItem>.ReplaceList(Index: TIndex; Source: TGList<TItem>); 397 var 398 I: TIndex; 399 begin 400 I := 0; 401 while I < Source.Count do begin 402 Items[Index + I] := Source[I]; 403 I := I + 1; 404 end; 405 end; 406 407 procedure TGList<TItem>.ReplaceListPart(Index: TIndex; Source: TGList<TItem>; 408 SourceIndex, SourceCount: TIndex); 409 var 410 I: TIndex; 411 begin 412 I := 0; 413 while I < SourceCount do begin 414 Items[Index + I] := Source[SourceIndex + I]; 415 I := I + 1; 416 end; 417 end; 418 383 419 procedure TGList<TItem>.Sort(Compare: TSortCompare); 384 420 begin … … 411 447 412 448 procedure 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; 449 begin 450 if (Index < 0) or (Index > FCount) then 451 raise EListError.CreateFmt(SListIndexError, [Index]); 452 InsertCount(Index, Length(Values)); 453 ReplaceArray(Index, Values); 454 end; 455 456 procedure TGList<TItem>.InsertCount(Index: TIndex; ACount: TIndex); 457 begin 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)); 421 463 end; 422 464
Note:
See TracChangeset
for help on using the changeset viewer.