Changeset 312
- Timestamp:
- Jan 9, 2012, 2:22:31 PM (13 years ago)
- Location:
- Generics/TemplateGenerics
- Files:
-
- 1 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
Generics/TemplateGenerics/Demo/Demo.lpi
r270 r312 33 33 <Item1> 34 34 <PackageName Value="TemplateGenerics"/> 35 <DefaultFilename Value="../TemplateGenerics.lpk" Prefer="True"/> 35 36 </Item1> 36 37 <Item2> … … 38 39 </Item2> 39 40 </RequiredPackages> 40 <Units Count=" 66">41 <Units Count="75"> 41 42 <Unit0> 42 43 <Filename Value="Demo.lpr"/> … … 57 58 <EditorIndex Value="0"/> 58 59 <WindowIndex Value="0"/> 59 <TopLine Value=" 71"/>60 <CursorPos X="2 2" Y="90"/>60 <TopLine Value="640"/> 61 <CursorPos X="20" Y="653"/> 61 62 <UsageCount Value="233"/> 62 63 <Bookmarks Count="1"> 63 <Item0 X="65" Y="2 33" ID="2"/>64 <Item0 X="65" Y="275" ID="2"/> 64 65 </Bookmarks> 65 66 <Loaded Value="True"/> … … 73 74 <TopLine Value="1"/> 74 75 <CursorPos X="1" Y="11"/> 75 <UsageCount Value=" 4"/>76 <UsageCount Value="3"/> 76 77 </Unit2> 77 78 <Unit3> 78 79 <Filename Value="../Specialized/SpecializedList.pas"/> 79 80 <UnitName Value="SpecializedList"/> 80 <EditorIndex Value=" 1"/>81 <EditorIndex Value="3"/> 81 82 <WindowIndex Value="0"/> 82 83 <TopLine Value="47"/> 83 84 <CursorPos X="20" Y="60"/> 84 <UsageCount Value="1 0"/>85 <UsageCount Value="13"/> 85 86 <Loaded Value="True"/> 86 87 </Unit3> … … 91 92 <TopLine Value="33"/> 92 93 <CursorPos X="12" Y="56"/> 93 <UsageCount Value=" 4"/>94 <UsageCount Value="3"/> 94 95 </Unit4> 95 96 <Unit5> … … 99 100 <TopLine Value="1"/> 100 101 <CursorPos X="23" Y="21"/> 101 <UsageCount Value=" 4"/>102 <UsageCount Value="3"/> 102 103 </Unit5> 103 104 <Unit6> … … 107 108 <TopLine Value="1"/> 108 109 <CursorPos X="23" Y="24"/> 109 <UsageCount Value=" 4"/>110 <UsageCount Value="3"/> 110 111 </Unit6> 111 112 <Unit7> … … 115 116 <TopLine Value="1"/> 116 117 <CursorPos X="23" Y="13"/> 117 <UsageCount Value=" 4"/>118 <UsageCount Value="3"/> 118 119 </Unit7> 119 120 <Unit8> … … 123 124 <TopLine Value="1"/> 124 125 <CursorPos X="23" Y="24"/> 125 <UsageCount Value=" 4"/>126 <UsageCount Value="3"/> 126 127 </Unit8> 127 128 <Unit9> … … 131 132 <TopLine Value="1"/> 132 133 <CursorPos X="31" Y="13"/> 133 <UsageCount Value=" 4"/>134 <UsageCount Value="3"/> 134 135 </Unit9> 135 136 <Unit10> … … 139 140 <TopLine Value="1"/> 140 141 <CursorPos X="29" Y="17"/> 141 <UsageCount Value=" 4"/>142 <UsageCount Value="3"/> 142 143 </Unit10> 143 144 <Unit11> … … 146 147 <TopLine Value="1"/> 147 148 <CursorPos X="1" Y="4"/> 148 <UsageCount Value=" 4"/>149 <UsageCount Value="3"/> 149 150 <DefaultSyntaxHighlighter Value="None"/> 150 151 </Unit11> … … 154 155 <TopLine Value="1"/> 155 156 <CursorPos X="21" Y="6"/> 156 <UsageCount Value=" 4"/>157 <UsageCount Value="3"/> 157 158 <DefaultSyntaxHighlighter Value="None"/> 158 159 </Unit12> … … 162 163 <TopLine Value="1"/> 163 164 <CursorPos X="1" Y="1"/> 164 <UsageCount Value=" 4"/>165 <UsageCount Value="3"/> 165 166 <DefaultSyntaxHighlighter Value="None"/> 166 167 </Unit13> … … 170 171 <TopLine Value="1"/> 171 172 <CursorPos X="25" Y="13"/> 172 <UsageCount Value=" 5"/>173 <UsageCount Value="4"/> 173 174 <DefaultSyntaxHighlighter Value="None"/> 174 175 </Unit14> … … 178 179 <TopLine Value="4"/> 179 180 <CursorPos X="3" Y="6"/> 180 <UsageCount Value=" 4"/>181 <UsageCount Value="3"/> 181 182 <DefaultSyntaxHighlighter Value="None"/> 182 183 </Unit15> … … 186 187 <TopLine Value="1"/> 187 188 <CursorPos X="14" Y="16"/> 188 <UsageCount Value=" 4"/>189 <UsageCount Value="3"/> 189 190 <DefaultSyntaxHighlighter Value="None"/> 190 191 </Unit16> … … 195 196 <TopLine Value="1"/> 196 197 <CursorPos X="32" Y="18"/> 197 <UsageCount Value=" 4"/>198 <UsageCount Value="3"/> 198 199 </Unit17> 199 200 <Unit18> … … 202 203 <TopLine Value="1"/> 203 204 <CursorPos X="20" Y="12"/> 204 <UsageCount Value=" 2"/>205 <UsageCount Value="1"/> 205 206 <DefaultSyntaxHighlighter Value="None"/> 206 207 </Unit18> … … 211 212 <TopLine Value="1"/> 212 213 <CursorPos X="1" Y="22"/> 213 <UsageCount Value=" 2"/>214 <UsageCount Value="1"/> 214 215 </Unit19> 215 216 <Unit20> … … 218 219 <TopLine Value="1"/> 219 220 <CursorPos X="1" Y="1"/> 220 <UsageCount Value=" 2"/>221 <UsageCount Value="1"/> 221 222 <DefaultSyntaxHighlighter Value="None"/> 222 223 </Unit20> … … 226 227 <TopLine Value="1"/> 227 228 <CursorPos X="1" Y="3"/> 228 <UsageCount Value=" 2"/>229 <UsageCount Value="1"/> 229 230 <DefaultSyntaxHighlighter Value="None"/> 230 231 </Unit21> … … 234 235 <TopLine Value="1"/> 235 236 <CursorPos X="1" Y="3"/> 236 <UsageCount Value=" 2"/>237 <UsageCount Value="1"/> 237 238 <DefaultSyntaxHighlighter Value="None"/> 238 239 </Unit22> … … 243 244 <TopLine Value="45"/> 244 245 <CursorPos X="9" Y="79"/> 245 <UsageCount Value="1 "/>246 <UsageCount Value="10"/> 246 247 </Unit23> 247 248 <Unit24> … … 250 251 <TopLine Value="1"/> 251 252 <CursorPos X="21" Y="4"/> 252 <UsageCount Value=" 6"/>253 <UsageCount Value="5"/> 253 254 <DefaultSyntaxHighlighter Value="None"/> 254 255 </Unit24> … … 259 260 <TopLine Value="1"/> 260 261 <CursorPos X="1" Y="25"/> 261 <UsageCount Value=" 6"/>262 <UsageCount Value="5"/> 262 263 </Unit25> 263 264 <Unit26> … … 266 267 <TopLine Value="1"/> 267 268 <CursorPos X="1" Y="3"/> 268 <UsageCount Value=" 6"/>269 <UsageCount Value="5"/> 269 270 <DefaultSyntaxHighlighter Value="None"/> 270 271 </Unit26> … … 274 275 <TopLine Value="1"/> 275 276 <CursorPos X="7" Y="4"/> 276 <UsageCount Value=" 6"/>277 <UsageCount Value="5"/> 277 278 <DefaultSyntaxHighlighter Value="None"/> 278 279 </Unit27> … … 283 284 <TopLine Value="1"/> 284 285 <CursorPos X="14" Y="15"/> 285 <UsageCount Value=" 6"/>286 <UsageCount Value="5"/> 286 287 </Unit28> 287 288 <Unit29> … … 290 291 <TopLine Value="1"/> 291 292 <CursorPos X="14" Y="18"/> 292 <UsageCount Value=" 6"/>293 <UsageCount Value="5"/> 293 294 <DefaultSyntaxHighlighter Value="None"/> 294 295 </Unit29> … … 299 300 <TopLine Value="2"/> 300 301 <CursorPos X="30" Y="8"/> 301 <UsageCount Value=" 6"/>302 <UsageCount Value="5"/> 302 303 </Unit30> 303 304 <Unit31> … … 307 308 <TopLine Value="13"/> 308 309 <CursorPos X="15" Y="12"/> 309 <UsageCount Value=" 8"/>310 <UsageCount Value="7"/> 310 311 <DefaultSyntaxHighlighter Value="Delphi"/> 311 312 </Unit31> 312 313 <Unit32> 313 314 <Filename Value="../Generic/GenericList.inc"/> 314 <IsVisibleTab Value="True"/> 315 <EditorIndex Value="2"/> 316 <WindowIndex Value="0"/> 317 <TopLine Value="359"/> 318 <CursorPos X="62" Y="376"/> 315 <EditorIndex Value="4"/> 316 <WindowIndex Value="0"/> 317 <TopLine Value="42"/> 318 <CursorPos X="15" Y="55"/> 319 319 <UsageCount Value="107"/> 320 320 <Loaded Value="True"/> … … 325 325 <TopLine Value="31"/> 326 326 <CursorPos X="44" Y="47"/> 327 <UsageCount Value="9 4"/>327 <UsageCount Value="93"/> 328 328 </Unit33> 329 329 <Unit34> … … 332 332 <TopLine Value="1"/> 333 333 <CursorPos X="36" Y="48"/> 334 <UsageCount Value="9 4"/>334 <UsageCount Value="93"/> 335 335 </Unit34> 336 336 <Unit35> … … 339 339 <TopLine Value="3"/> 340 340 <CursorPos X="1" Y="3"/> 341 <UsageCount Value="9 4"/>341 <UsageCount Value="93"/> 342 342 </Unit35> 343 343 <Unit36> … … 346 346 <TopLine Value="11"/> 347 347 <CursorPos X="42" Y="11"/> 348 <UsageCount Value="9 4"/>348 <UsageCount Value="93"/> 349 349 </Unit36> 350 350 <Unit37> … … 353 353 <TopLine Value="3"/> 354 354 <CursorPos X="1" Y="3"/> 355 <UsageCount Value="9 4"/>355 <UsageCount Value="93"/> 356 356 </Unit37> 357 357 <Unit38> … … 360 360 <TopLine Value="1"/> 361 361 <CursorPos X="22" Y="30"/> 362 <UsageCount Value="9 4"/>362 <UsageCount Value="93"/> 363 363 </Unit38> 364 364 <Unit39> … … 368 368 <TopLine Value="6"/> 369 369 <CursorPos X="56" Y="36"/> 370 <UsageCount Value="9 3"/>370 <UsageCount Value="92"/> 371 371 </Unit39> 372 372 <Unit40> … … 376 376 <TopLine Value="27"/> 377 377 <CursorPos X="50" Y="59"/> 378 <UsageCount Value="9 2"/>378 <UsageCount Value="91"/> 379 379 </Unit40> 380 380 <Unit41> … … 384 384 <TopLine Value="57"/> 385 385 <CursorPos X="48" Y="85"/> 386 <UsageCount Value="9 2"/>386 <UsageCount Value="91"/> 387 387 </Unit41> 388 388 <Unit42> … … 391 391 <TopLine Value="1"/> 392 392 <CursorPos X="33" Y="14"/> 393 <UsageCount Value="9 2"/>393 <UsageCount Value="91"/> 394 394 </Unit42> 395 395 <Unit43> … … 399 399 <TopLine Value="52"/> 400 400 <CursorPos X="1" Y="81"/> 401 <UsageCount Value="9 2"/>401 <UsageCount Value="91"/> 402 402 </Unit43> 403 403 <Unit44> … … 407 407 <TopLine Value="29"/> 408 408 <CursorPos X="1" Y="62"/> 409 <UsageCount Value="9 2"/>409 <UsageCount Value="91"/> 410 410 </Unit44> 411 411 <Unit45> … … 415 415 <TopLine Value="9"/> 416 416 <CursorPos X="60" Y="36"/> 417 <UsageCount Value="9 1"/>417 <UsageCount Value="90"/> 418 418 </Unit45> 419 419 <Unit46> 420 420 <Filename Value="../Generic/GenericMatrix.inc"/> 421 <EditorIndex Value="3"/>422 421 <WindowIndex Value="0"/> 423 422 <TopLine Value="9"/> 424 423 <CursorPos X="28" Y="23"/> 425 <UsageCount Value="103"/> 426 <Loaded Value="True"/> 424 <UsageCount Value="102"/> 427 425 </Unit46> 428 426 <Unit47> … … 432 430 <TopLine Value="2624"/> 433 431 <CursorPos X="37" Y="2636"/> 434 <UsageCount Value=" 90"/>432 <UsageCount Value="89"/> 435 433 <DefaultSyntaxHighlighter Value="Delphi"/> 436 434 </Unit47> … … 440 438 <TopLine Value="94"/> 441 439 <CursorPos X="1" Y="1"/> 442 <UsageCount Value=" 6"/>440 <UsageCount Value="5"/> 443 441 <DefaultSyntaxHighlighter Value="XML"/> 444 442 </Unit48> … … 448 446 <TopLine Value="199"/> 449 447 <CursorPos X="14" Y="213"/> 450 <UsageCount Value="2 8"/>448 <UsageCount Value="27"/> 451 449 <DefaultSyntaxHighlighter Value="Delphi"/> 452 450 </Unit49> … … 456 454 <TopLine Value="199"/> 457 455 <CursorPos X="3" Y="201"/> 458 <UsageCount Value="2 8"/>456 <UsageCount Value="27"/> 459 457 <DefaultSyntaxHighlighter Value="Delphi"/> 460 458 </Unit50> 461 459 <Unit51> 462 460 <Filename Value="../Generic/GenericListObject.inc"/> 463 <WindowIndex Value="0"/> 464 <TopLine Value="1"/> 465 <CursorPos X="21" Y="20"/> 461 <EditorIndex Value="5"/> 462 <WindowIndex Value="0"/> 463 <TopLine Value="11"/> 464 <CursorPos X="34" Y="24"/> 466 465 <UsageCount Value="19"/> 466 <Loaded Value="True"/> 467 467 </Unit51> 468 468 <Unit52> … … 472 472 <TopLine Value="1"/> 473 473 <CursorPos X="27" Y="26"/> 474 <UsageCount Value="2 8"/>474 <UsageCount Value="27"/> 475 475 <DefaultSyntaxHighlighter Value="Delphi"/> 476 476 </Unit52> … … 480 480 <TopLine Value="381"/> 481 481 <CursorPos X="3" Y="398"/> 482 <UsageCount Value="2 8"/>482 <UsageCount Value="27"/> 483 483 <DefaultSyntaxHighlighter Value="Delphi"/> 484 484 </Unit53> … … 488 488 <TopLine Value="475"/> 489 489 <CursorPos X="10" Y="503"/> 490 <UsageCount Value=" 7"/>490 <UsageCount Value="6"/> 491 491 <DefaultSyntaxHighlighter Value="Delphi"/> 492 492 </Unit54> … … 496 496 <TopLine Value="2270"/> 497 497 <CursorPos X="22" Y="2273"/> 498 <UsageCount Value="1 9"/>498 <UsageCount Value="18"/> 499 499 <DefaultSyntaxHighlighter Value="Delphi"/> 500 500 </Unit55> … … 502 502 <Filename Value="../Specialized/SpecializedMatrix.pas"/> 503 503 <UnitName Value="SpecializedMatrix"/> 504 <EditorIndex Value="4"/>505 504 <WindowIndex Value="0"/> 506 505 <TopLine Value="1"/> 507 506 <CursorPos X="25" Y="41"/> 508 507 <UsageCount Value="19"/> 509 <Loaded Value="True"/>510 508 </Unit56> 511 509 <Unit57> … … 514 512 <TopLine Value="1"/> 515 513 <CursorPos X="28" Y="10"/> 516 <UsageCount Value=" 9"/>514 <UsageCount Value="8"/> 517 515 <DefaultSyntaxHighlighter Value="None"/> 518 516 </Unit57> … … 522 520 <TopLine Value="38"/> 523 521 <CursorPos X="3" Y="50"/> 524 <UsageCount Value="1 1"/>522 <UsageCount Value="10"/> 525 523 <DefaultSyntaxHighlighter Value="Delphi"/> 526 524 </Unit58> … … 530 528 <TopLine Value="649"/> 531 529 <CursorPos X="38" Y="671"/> 532 <UsageCount Value=" 10"/>530 <UsageCount Value="9"/> 533 531 <DefaultSyntaxHighlighter Value="Delphi"/> 534 532 </Unit59> … … 538 536 <TopLine Value="1185"/> 539 537 <CursorPos X="22" Y="1196"/> 540 <UsageCount Value=" 10"/>538 <UsageCount Value="9"/> 541 539 <DefaultSyntaxHighlighter Value="Delphi"/> 542 540 </Unit60> … … 547 545 <TopLine Value="112"/> 548 546 <CursorPos X="3" Y="124"/> 549 <UsageCount Value=" 10"/>547 <UsageCount Value="9"/> 550 548 <DefaultSyntaxHighlighter Value="Delphi"/> 551 549 </Unit61> … … 555 553 <TopLine Value="71"/> 556 554 <CursorPos X="10" Y="84"/> 557 <UsageCount Value="10"/> 555 <UsageCount Value="9"/> 556 <DefaultSyntaxHighlighter Value="Delphi"/> 558 557 </Unit62> 559 558 <Unit63> … … 562 561 <TopLine Value="148"/> 563 562 <CursorPos X="11" Y="169"/> 564 <UsageCount Value="10"/> 563 <UsageCount Value="9"/> 564 <DefaultSyntaxHighlighter Value="Delphi"/> 565 565 </Unit63> 566 566 <Unit64> … … 569 569 <TopLine Value="511"/> 570 570 <CursorPos X="11" Y="524"/> 571 <UsageCount Value="10"/> 571 <UsageCount Value="9"/> 572 <DefaultSyntaxHighlighter Value="Delphi"/> 572 573 </Unit64> 573 574 <Unit65> … … 576 577 <TopLine Value="411"/> 577 578 <CursorPos X="10" Y="424"/> 579 <UsageCount Value="9"/> 580 <DefaultSyntaxHighlighter Value="Delphi"/> 581 </Unit65> 582 <Unit66> 583 <Filename Value="../Specialized/SpecializedStream.pas"/> 584 <UnitName Value="SpecializedStream"/> 585 <IsVisibleTab Value="True"/> 586 <EditorIndex Value="8"/> 587 <WindowIndex Value="0"/> 588 <TopLine Value="106"/> 589 <CursorPos X="48" Y="107"/> 590 <UsageCount Value="13"/> 591 <Loaded Value="True"/> 592 </Unit66> 593 <Unit67> 594 <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/lcl/lclclasses.pp"/> 595 <UnitName Value="LCLClasses"/> 596 <WindowIndex Value="0"/> 597 <TopLine Value="25"/> 598 <CursorPos X="32" Y="40"/> 599 <UsageCount Value="9"/> 600 </Unit67> 601 <Unit68> 602 <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/lcl/controls.pp"/> 603 <UnitName Value="Controls"/> 604 <WindowIndex Value="0"/> 605 <TopLine Value="1"/> 606 <CursorPos X="39" Y="11"/> 607 <UsageCount Value="9"/> 608 </Unit68> 609 <Unit69> 610 <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/fpc/2.6.0/source/rtl/inc/objpash.inc"/> 611 <WindowIndex Value="0"/> 612 <TopLine Value="179"/> 613 <CursorPos X="23" Y="192"/> 578 614 <UsageCount Value="10"/> 579 </Unit65> 615 </Unit69> 616 <Unit70> 617 <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/fpc/2.6.0/source/rtl/inc/objpas.inc"/> 618 <WindowIndex Value="0"/> 619 <TopLine Value="265"/> 620 <CursorPos X="9" Y="267"/> 621 <UsageCount Value="10"/> 622 </Unit70> 623 <Unit71> 624 <Filename Value="../Generic/GenericStream.inc"/> 625 <EditorIndex Value="7"/> 626 <WindowIndex Value="0"/> 627 <TopLine Value="1"/> 628 <CursorPos X="13" Y="12"/> 629 <UsageCount Value="13"/> 630 <Loaded Value="True"/> 631 </Unit71> 632 <Unit72> 633 <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/fpc/2.6.0/source/rtl/objpas/classes/classesh.inc"/> 634 <EditorIndex Value="1"/> 635 <WindowIndex Value="0"/> 636 <TopLine Value="891"/> 637 <CursorPos X="18" Y="908"/> 638 <UsageCount Value="11"/> 639 <Loaded Value="True"/> 640 </Unit72> 641 <Unit73> 642 <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/fpc/2.6.0/source/rtl/objpas/classes/streams.inc"/> 643 <EditorIndex Value="2"/> 644 <WindowIndex Value="0"/> 645 <TopLine Value="739"/> 646 <CursorPos X="18" Y="750"/> 647 <UsageCount Value="11"/> 648 <Loaded Value="True"/> 649 </Unit73> 650 <Unit74> 651 <Filename Value="../Generic/GenericListString.inc"/> 652 <EditorIndex Value="6"/> 653 <WindowIndex Value="0"/> 654 <TopLine Value="8"/> 655 <CursorPos X="34" Y="21"/> 656 <UsageCount Value="10"/> 657 <Loaded Value="True"/> 658 </Unit74> 580 659 </Units> 581 <JumpHistory Count="30" HistoryIndex="2 7">660 <JumpHistory Count="30" HistoryIndex="28"> 582 661 <Position1> 583 <Filename Value=" ../Generic/GenericList.inc"/>584 <Caret Line=" 468" Column="70" TopLine="462"/>662 <Filename Value="UMainForm.pas"/> 663 <Caret Line="142" Column="1" TopLine="128"/> 585 664 </Position1> 586 665 <Position2> 587 <Filename Value=" ../Generic/GenericList.inc"/>588 <Caret Line=" 469" Column="1" TopLine="462"/>666 <Filename Value="UMainForm.pas"/> 667 <Caret Line="143" Column="1" TopLine="128"/> 589 668 </Position2> 590 669 <Position3> 591 670 <Filename Value="../Generic/GenericList.inc"/> 592 <Caret Line=" 470" Column="1" TopLine="462"/>671 <Caret Line="161" Column="1" TopLine="148"/> 593 672 </Position3> 594 673 <Position4> 595 <Filename Value="../ Generic/GenericList.inc"/>596 <Caret Line=" 471" Column="1" TopLine="462"/>674 <Filename Value="../Specialized/SpecializedStream.pas"/> 675 <Caret Line="93" Column="21" TopLine="80"/> 597 676 </Position4> 598 677 <Position5> 599 <Filename Value=" ../Generic/GenericList.inc"/>600 <Caret Line=" 470" Column="5" TopLine="462"/>678 <Filename Value="UMainForm.pas"/> 679 <Caret Line="150" Column="22" TopLine="129"/> 601 680 </Position5> 602 681 <Position6> 603 <Filename Value=" UMainForm.pas"/>604 <Caret Line="2 37" Column="19" TopLine="232"/>682 <Filename Value="../Generic/GenericStream.inc"/> 683 <Caret Line="22" Column="12" TopLine="9"/> 605 684 </Position6> 606 685 <Position7> 607 <Filename Value=" UMainForm.pas"/>608 <Caret Line=" 237" Column="19" TopLine="232"/>686 <Filename Value="../Generic/GenericStream.inc"/> 687 <Caret Line="37" Column="18" TopLine="35"/> 609 688 </Position7> 610 689 <Position8> 611 690 <Filename Value="UMainForm.pas"/> 612 <Caret Line=" 495" Column="26" TopLine="482"/>691 <Caret Line="157" Column="79" TopLine="132"/> 613 692 </Position8> 614 693 <Position9> 615 <Filename Value=" UMainForm.pas"/>616 <Caret Line="5 03" Column="9" TopLine="490"/>694 <Filename Value="../Specialized/SpecializedStream.pas"/> 695 <Caret Line="58" Column="45" TopLine="46"/> 617 696 </Position9> 618 697 <Position10> 619 <Filename Value=" UMainForm.pas"/>620 <Caret Line=" 480" Column="3" TopLine="467"/>698 <Filename Value="../Specialized/SpecializedStream.pas"/> 699 <Caret Line="119" Column="12" TopLine="100"/> 621 700 </Position10> 622 701 <Position11> 623 <Filename Value=" UMainForm.pas"/>624 <Caret Line=" 511" Column="32" TopLine="498"/>702 <Filename Value="../Generic/GenericList.inc"/> 703 <Caret Line="197" Column="39" TopLine="182"/> 625 704 </Position11> 626 705 <Position12> 627 <Filename Value=" UMainForm.pas"/>628 <Caret Line=" 519" Column="33" TopLine="506"/>706 <Filename Value="../Specialized/SpecializedStream.pas"/> 707 <Caret Line="119" Column="12" TopLine="100"/> 629 708 </Position12> 630 709 <Position13> 631 <Filename Value=" UMainForm.pas"/>632 <Caret Line=" 526" Column="26" TopLine="513"/>710 <Filename Value="../Specialized/SpecializedStream.pas"/> 711 <Caret Line="61" Column="38" TopLine="48"/> 633 712 </Position13> 634 713 <Position14> 635 <Filename Value=" UMainForm.pas"/>636 <Caret Line=" 538" Column="27" TopLine="525"/>714 <Filename Value="../Specialized/SpecializedStream.pas"/> 715 <Caret Line="130" Column="15" TopLine="117"/> 637 716 </Position14> 638 717 <Position15> 639 <Filename Value=" UMainForm.pas"/>640 <Caret Line=" 549" Column="26" TopLine="536"/>718 <Filename Value="../Specialized/SpecializedStream.pas"/> 719 <Caret Line="64" Column="36" TopLine="51"/> 641 720 </Position15> 642 721 <Position16> 643 <Filename Value=" UMainForm.pas"/>644 <Caret Line="5 61" Column="25" TopLine="548"/>722 <Filename Value="../Specialized/SpecializedStream.pas"/> 723 <Caret Line="58" Column="29" TopLine="45"/> 645 724 </Position16> 646 725 <Position17> 647 <Filename Value=" UMainForm.pas"/>648 <Caret Line=" 572" Column="16" TopLine="559"/>726 <Filename Value="../Specialized/SpecializedStream.pas"/> 727 <Caret Line="78" Column="45" TopLine="78"/> 649 728 </Position17> 650 729 <Position18> 651 <Filename Value=" UMainForm.pas"/>652 <Caret Line=" 584" Column="25" TopLine="571"/>730 <Filename Value="../Specialized/SpecializedStream.pas"/> 731 <Caret Line="64" Column="64" TopLine="48"/> 653 732 </Position18> 654 733 <Position19> 655 <Filename Value=" UMainForm.pas"/>656 <Caret Line=" 595" Column="26" TopLine="582"/>734 <Filename Value="../Specialized/SpecializedStream.pas"/> 735 <Caret Line="82" Column="3" TopLine="68"/> 657 736 </Position19> 658 737 <Position20> 659 <Filename Value="../Generic/GenericList .inc"/>660 <Caret Line="2 14" Column="12" TopLine="201"/>738 <Filename Value="../Generic/GenericListObject.inc"/> 739 <Caret Line="20" Column="21" TopLine="1"/> 661 740 </Position20> 662 741 <Position21> 663 <Filename Value="../Generic/GenericList .inc"/>664 <Caret Line="2 31" Column="16" TopLine="218"/>742 <Filename Value="../Generic/GenericListObject.inc"/> 743 <Caret Line="24" Column="17" TopLine="11"/> 665 744 </Position21> 666 745 <Position22> 667 <Filename Value=" UMainForm.pas"/>668 <Caret Line=" 634" Column="11" TopLine="614"/>746 <Filename Value="../Generic/GenericListString.inc"/> 747 <Caret Line="1" Column="1" TopLine="1"/> 669 748 </Position22> 670 749 <Position23> 671 750 <Filename Value="UMainForm.pas"/> 672 <Caret Line=" 628" Column="39" TopLine="624"/>751 <Caret Line="43" Column="15" TopLine="28"/> 673 752 </Position23> 674 753 <Position24> 675 <Filename Value=" UMainForm.pas"/>676 <Caret Line=" 91" Column="5" TopLine="77"/>754 <Filename Value="../Generic/GenericStream.inc"/> 755 <Caret Line="13" Column="1" TopLine="1"/> 677 756 </Position24> 678 757 <Position25> 679 <Filename Value=" UMainForm.pas"/>680 <Caret Line=" 92" Column="61" TopLine="77"/>758 <Filename Value="../Specialized/SpecializedStream.pas"/> 759 <Caret Line="84" Column="35" TopLine="40"/> 681 760 </Position25> 682 761 <Position26> 683 <Filename Value=" UMainForm.pas"/>684 <Caret Line=" 91" Column="52" TopLine="74"/>762 <Filename Value="../Specialized/SpecializedStream.pas"/> 763 <Caret Line="126" Column="39" TopLine="111"/> 685 764 </Position26> 686 765 <Position27> 687 <Filename Value="../ Generic/GenericList.inc"/>688 <Caret Line=" 3" Column="69" TopLine="1"/>766 <Filename Value="../Specialized/SpecializedStream.pas"/> 767 <Caret Line="128" Column="1" TopLine="111"/> 689 768 </Position27> 690 769 <Position28> 691 <Filename Value="../ Generic/GenericList.inc"/>692 <Caret Line=" 27" Column="24" TopLine="7"/>770 <Filename Value="../Specialized/SpecializedStream.pas"/> 771 <Caret Line="68" Column="32" TopLine="55"/> 693 772 </Position28> 694 773 <Position29> 695 <Filename Value="../ Generic/GenericList.inc"/>696 <Caret Line=" 217" Column="27" TopLine="209"/>774 <Filename Value="../Specialized/SpecializedStream.pas"/> 775 <Caret Line="121" Column="1" TopLine="106"/> 697 776 </Position29> 698 777 <Position30> 699 778 <Filename Value="../Generic/GenericList.inc"/> 700 <Caret Line=" 237" Column="18" TopLine="223"/>779 <Caret Line="55" Column="15" TopLine="42"/> 701 780 </Position30> 702 781 </JumpHistory> 703 782 </ProjectOptions> 704 783 <CompilerOptions> 705 <Version Value="1 0"/>784 <Version Value="11"/> 706 785 <Target> 707 786 <Filename Value="Demo"/> … … 730 809 <Linking> 731 810 <Debugging> 732 < GenerateDebugInfo Value="True"/>811 <DebugInfoType Value="dsStabs"/> 733 812 <UseHeaptrc Value="True"/> 734 813 </Debugging> -
Generics/TemplateGenerics/Demo/UMainForm.lfm
r270 r312 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 … … 140 140 TabOrder = 10 141 141 end 142 object ButtonStreamByte: TButton 143 Left = 10 144 Height = 25 145 Top = 224 146 Width = 128 147 Caption = 'TMemoryStreamByte' 148 OnClick = ButtonStreamByteClick 149 TabOrder = 11 150 end 142 151 end -
Generics/TemplateGenerics/Demo/UMainForm.pas
r270 r312 8 8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, 9 9 ComCtrls, SpecializedList, SpecializedDictionary, SpecializedQueue, 10 DateUtils, SpecializedMatrix ;10 DateUtils, SpecializedMatrix, SpecializedStream; 11 11 12 12 type … … 15 15 16 16 TMainForm = class(TForm) 17 ButtonStreamByte: TButton; 17 18 ButtonBenchmarkDictionary: TButton; 18 19 ButtonBenchmarkListPointer: TButton; … … 38 39 procedure ButtonQueueIntegerClick(Sender: TObject); 39 40 procedure ButtonStringListClick(Sender: TObject); 41 procedure ButtonStreamByteClick(Sender: TObject); 40 42 procedure FormCreate(Sender: TObject); 41 43 procedure FormDestroy(Sender: TObject); 42 private43 44 public 44 45 MeasureDuration: TDateTime; … … 94 95 List2.SetArray([2, 0]); 95 96 WriteOutput('EqualTo([7, 11])', BoolToStr(EqualTo(List2))); 97 InsertCount(0, 3); 98 WriteOutput('InsertCount(0, 3)', Implode(',', IntToStr)); 99 Fill(0, 3, 9); 100 WriteOutput('Fill(0, 3, 9)', Implode(',', IntToStr)); 96 101 finally 97 102 Free; … … 119 124 WriteOutput('Clear', '[' + Implode('; ', ', ', IntToStr) + ']'); 120 125 WriteOutput('Count [Y, X]', IntToStr(Count.Y) + ', ' + IntToStr(Count.X)); 126 finally 127 Free; 128 end; 129 end; 130 131 procedure TMainForm.ButtonStreamByteClick(Sender: TObject); 132 var 133 Stream: TMemoryStreamByte; 134 I: Integer; 135 ByteArray: array of Byte; 136 ByteArrayText: string; 137 begin 138 ListViewOutput.Clear; 139 LabelTestName.Caption := 'TStreamByte test'; 140 Stream := TMemoryStreamByte.Create; 141 with Stream do try 142 WriteOutput('Size := ', IntToStr(Stream.Size)); 143 Write(1); 144 WriteOutput('Write(1)', ''); 145 WriteOutput('Size, Position', IntToStr(Stream.Size) + ', ' + IntToStr(Stream.Position)); 146 WriteArray([2, 3, 4]); 147 WriteOutput('WriteArray([2, 3, 4])', ''); 148 WriteOutput('Size, Position', IntToStr(Stream.Size) + ', ' + IntToStr(Stream.Position)); 149 Position := 1; 150 WriteOutput('Position := 1', ''); 151 WriteOutput('Size, Position', IntToStr(Stream.Size) + ', ' + IntToStr(Stream.Position)); 152 WriteOutput('Read', IntToStr(Read)); 153 WriteOutput('Size, Position', IntToStr(Stream.Size) + ', ' + IntToStr(Stream.Position)); 154 ByteArray := ReadArray(2); 155 ByteArrayText := '['; 156 for I := 0 to Length(ByteArray) - 1 do begin 157 ByteArrayText := ByteArrayText + IntToStr(ByteArray[I]); 158 if I < Length(ByteArray) - 1 then ByteArrayText := ByteArrayText + ', '; 159 end; 160 ByteArrayText := ByteArrayText + ']'; 161 WriteOutput('ReadArray', ByteArrayText); 162 WriteOutput('Size, Position', IntToStr(Stream.Size) + ', ' + IntToStr(Stream.Position)); 121 163 finally 122 164 Free; … … 702 744 MoveItems(2, 3, 3); 703 745 WriteOutput('Implode', Implode(',', StrToStr)); 746 InsertCount(0, 3); 747 WriteOutput('InsertCount(0, 3)', Implode(',', StrToStr)); 748 Fill(0, 3, 'Zero'); 749 WriteOutput('Fill(0, 3, ''Zero'')', Implode(',', StrToStr)); 704 750 finally 705 751 Free; -
Generics/TemplateGenerics/Generic/GenericList.inc
r308 r312 1 1 {$IFDEF INTERFACE} 2 3 // TGList implemented using templates 4 // - item operations (Add, Insert, ReplaceArray, Get, Set, IndexOf, 5 // Extract, Delete, Exchange) 6 // - item range operations (DeleteItems, InsertItems, ReplaceItems, 7 // Move, Fill) 8 // - other TGList operations (AddList, InsertList, 9 // ReplaceList, GetList, IndexOfList) 10 // - dynamic array operations (AddArray, InsertArray, 11 // ReplaceArray, GetArray, IndexOfArray) 12 // - all items operations (Clear, Reverse, Sort) 2 13 3 14 TGList = class; … … 41 52 property First: TGListItem read GetFirst write SetFirst; 42 53 procedure Fill(Start, Count: TGListIndex; Value: TGListItem); 43 function GetArray: TGListItemArray; 54 function GetArray(Index, ACount: TGListIndex): TGListItemArray; 55 procedure GetList(List: TGList; Index, ACount: TGListIndex); 44 56 function Implode(Separator: string; Converter: TGListToStringConverter): string; 45 57 function IndexOf(Item: TGListItem; Start: TGListIndex = 0): TGListIndex; virtual; 46 58 function IndexOfList(List: TGList; Start: TGListIndex = 0): TGListIndex; 59 function IndexOfArray(Values: array of TGListItem; Start: TGListIndex = 0): TGListIndex; 47 60 procedure Insert(Index: TGListIndex; Item: TGListItem); 48 61 procedure InsertList(Index: TGListIndex; List: TGList); 49 62 procedure InsertArray(Index: TGListIndex; Values: array of TGListItem); 63 procedure InsertCount(Index: TGListIndex; ACount: TGListIndex); 50 64 procedure Move(CurIndex, NewIndex: TGListIndex); 51 65 procedure MoveItems(CurIndex, NewIndex, Count: TGListIndex); 52 66 function Remove(Item: TGListItem): TGListIndex; 53 67 procedure Reverse; 68 procedure ReplaceArray(Index: TGListIndex; Values: array of TGListItem); 54 69 procedure ReplaceList(Index: TGListIndex; Source: TGList); 55 70 procedure ReplaceListPart(Index: TGListIndex; Source: TGList; … … 83 98 end; 84 99 100 procedure TGList.ReplaceArray(Index: TGListIndex; Values: array of TGListItem); 101 var 102 I: TGListIndex; 103 begin 104 I := 0; 105 while I < Length(Values) do begin 106 Items[Index + I] := Values[I]; 107 I := I + 1; 108 end; 109 end; 110 85 111 procedure TGList.ReplaceList(Index: TGListIndex; Source: TGList); 86 112 var … … 165 191 end; 166 192 167 function TGList.GetArray : TGListItemArray;193 function TGList.GetArray(Index, ACount: TGListIndex): TGListItemArray; 168 194 var 169 195 I: Integer; 170 196 begin 171 SetLength(Result, Count);197 SetLength(Result, ACount); 172 198 I := 0; 173 199 while I < Count do begin 174 Result[I] := FItems[I]; 175 I := I + 1; 176 end; 200 Result[I] := FItems[Index + I]; 201 I := I + 1; 202 end; 203 end; 204 205 procedure TGList.GetList(List: TGList; Index, ACount: TGListIndex); 206 begin 207 List.Clear; 208 List.AddListPart(Self, Index, ACount); 177 209 end; 178 210 … … 258 290 procedure TGList.Insert(Index: TGListIndex; Item: TGListItem); 259 291 begin 260 if (Index < 0) or (Index > FCount 292 if (Index < 0) or (Index > FCount) then 261 293 raise EListError.CreateFmt(SListIndexError, [Index]); 262 if FCount = Capacity then SetCapacityOptimized(Capacity + 1); 294 InsertCount(Index, 1); 295 FItems[Index] := Item; 296 end; 297 298 procedure TGList.InsertList(Index: TGListIndex; List: TGList); 299 begin 300 if (Index < 0) or (Index > FCount) then 301 raise EListError.CreateFmt(SListIndexError, [Index]); 302 InsertCount(Index, List.Count); 303 ReplaceList(Index, List); 304 end; 305 306 procedure TGList.InsertArray(Index: TGListIndex; Values: array of TGListItem); 307 begin 308 if (Index < 0) or (Index > FCount) then 309 raise EListError.CreateFmt(SListIndexError, [Index]); 310 InsertCount(Index, Length(Values)); 311 ReplaceArray(Index, Values); 312 end; 313 314 procedure TGList.InsertCount(Index: TGListIndex; ACount: TGListIndex); 315 begin 316 if (Index < 0) or (Index > FCount) then 317 raise EListError.CreateFmt(SListIndexError, [Index]); 318 Count := Count + ACount; 263 319 if Index < FCount then 264 System.Move(FItems[Index], FItems[Index + 1], (FCount - Index) * SizeOf(TGListItem)); 265 FItems[Index] := Item; 266 FCount := FCount + 1; 267 end; 268 269 procedure TGList.InsertList(Index: TGListIndex; List: TGList); 270 var 271 I: TGListIndex; 272 begin 273 I := 0; 274 while (I < List.Count) do begin 275 Insert(Index + I, List[I]); 276 I := I + 1; 277 end; 320 System.Move(FItems[Index], FItems[Index + ACount], (FCount - ACount - Index) * SizeOf(TGListItem)); 278 321 end; 279 322 … … 297 340 end; 298 341 342 function TGList.IndexOfArray(Values: array of TGListItem; Start: TGListIndex): TGListIndex; 343 var 344 I: TGListIndex; 345 begin 346 if Length(Values) > 0 then begin 347 Result := IndexOf(Values[0], Start); 348 if Result <> -1 then begin 349 I := 1; 350 while I < Length(Values) do begin 351 if not CompareMem(Addr(FItems[Result + I]), Addr(Values[I]), SizeOf(TGListItem)) then begin 352 Result := -1; 353 Break; 354 end; 355 I := I + 1; 356 end; 357 end; 358 end else Result := -1; 359 end; 360 299 361 function TGList.GetLast: TGListItem; 300 362 begin … … 438 500 end; 439 501 440 procedure TGList.InsertArray(Index: TGListIndex; Values: array of TGListItem);441 var442 I: TGListIndex;443 begin444 I := 0;445 while I <= High(Values) do begin446 Insert(Index + I, Values[I]);447 I := I + 1;448 end;449 end;450 451 502 function TGList.Implode(Separator: string; Converter: TGListToStringConverter): string; 452 503 var -
Generics/TemplateGenerics/Generic/GenericListObject.inc
r257 r312 22 22 procedure Clear; override; 23 23 procedure Assign(Source: TGList); override; 24 constructor Create; 24 constructor Create; override; 25 25 destructor Destroy; override; 26 26 end; -
Generics/TemplateGenerics/Generic/GenericListString.inc
r258 r312 19 19 procedure Assign(Source: TGList); override; 20 20 function IndexOf(Item: TGListItem; Start: TGListIndex = 0): TGListIndex; override; 21 constructor Create; 21 constructor Create; override; 22 22 destructor Destroy; override; 23 23 end; -
Generics/TemplateGenerics/Generic/GenericQueue.inc
r112 r312 11 11 {$I 'GenericList.inc'} 12 12 13 // TGQueue<T SetIndex, TSetItem> = class(TGList)13 // TGQueue<TQueueIndex, TQueueItem> = class(TGList) 14 14 TGQueue = class 15 15 private 16 16 FList: TGList; 17 function GetCount: TGQueueIndex; 17 18 public 18 19 procedure Enqueue(Value: TGQueueItem); 20 procedure EnqueueArray(Values: array of TGQueueItem); 21 procedure EnqueueList(List: TGList); 19 22 function Dequeue: TGQueueItem; 20 23 function Peek: TGQueueItem; … … 22 25 destructor Destroy; override; 23 26 property List: TGList read FList; 27 property Count: TGQueueIndex read GetCount; 24 28 end; 25 29 … … 54 58 end; 55 59 60 procedure TGQueue.EnqueueArray(Values: array of TGQueueItem); 61 begin 62 FList.AddArray(Values); 63 end; 64 65 procedure TGQueue.EnqueueList(List: TGList); 66 begin 67 FList.AddList(List); 68 end; 69 56 70 function TGQueue.Peek: TGQueueItem; 57 71 begin … … 75 89 end; 76 90 91 function TGQueue.GetCount: TGQueueIndex; 92 begin 93 Result := FList.Count; 94 end; 95 77 96 {$UNDEF IMPLEMENTATION} 78 97 {$ENDIF} -
Generics/TemplateGenerics/Generic/GenericStream.inc
r226 r312 1 1 {$IFDEF INTERFACE} 2 2 3 TGStream DataEvent = procedure (Item: TGStreamItem) of object;3 TGStreamItemArray = array of TGStreamItem; 4 4 5 // TGStream<T StreamItem> = class5 // TGStream<TGStreamIndex, TGStreamItem> = class 6 6 TGStream = class 7 FOnData: TGStreamDataEvent; 8 procedure Write(Item: TStreamItem); 9 property OnData: TGStreamDataEvent read FOnData write FOnData; 7 procedure SetSize(AValue: TGStreamIndex); 8 function GetSize: TGStreamIndex; 9 procedure SetPosition(AValue: TGStreamIndex); 10 function GetPosition: TGStreamIndex; 11 public 12 procedure Assign(Source: TGStream); virtual; 13 procedure Write(Item: TGStreamItem); virtual; abstract; 14 procedure WriteArray(Item: array of TGStreamItem); virtual; abstract; 15 function Read: TGStreamItem; virtual; abstract; 16 function ReadArray(Count: TGStreamIndex): TGStreamItemArray; virtual; abstract; 17 function Insert(Count: TGStreamIndex): TGStreamIndex; virtual; abstract; 18 function Remove(Count: TGStreamIndex): TGStreamIndex; virtual; abstract; 19 function Seek(Offset: TGStreamIndex; Origin: TSeekOrigin = soCurrent): 20 TGStreamIndex; virtual; abstract; 21 constructor Create; virtual; 22 property Position: TGStreamIndex read GetPosition write SetPosition; 23 property Size: TGStreamIndex read GetSize write SetSize; 10 24 end; 11 25 … … 15 29 {$IFDEF IMPLEMENTATION} 16 30 17 procedure TGStream. Write(Item: TGStreamItem);31 procedure TGStream.Assign(Source: TGStream); 18 32 begin 19 if Assigned(FOnData) then20 FOnData(Item);21 33 end; 22 34 35 procedure TGStream.SetPosition(AValue: TGStreamIndex); 36 begin 37 Seek(AValue, soBegin); 38 end; 39 40 function TGStream.GetPosition: TGStreamIndex; 41 begin 42 Result := Seek(0, soCurrent); 43 end; 44 45 procedure TGStream.SetSize(AValue: TGStreamIndex); 46 var 47 StreamSize: TGStreamIndex; 48 OldPosition: TGStreamIndex; 49 begin 50 OldPosition := Seek(0, soCurrent); 51 StreamSize := Size; 52 if AValue > StreamSize then begin 53 Seek(StreamSize, soBegin); 54 Insert(AValue - StreamSize); 55 end else 56 if AValue < StreamSize then begin 57 Seek(AValue, soBegin); 58 Remove(StreamSize - AValue); 59 end; 60 Position := OldPosition; 61 end; 62 63 function TGStream.GetSize: TGStreamIndex; 64 var 65 OldPosition: Integer; 66 begin 67 OldPosition := Position; 68 Result := Seek(0, soEnd); 69 Position := OldPosition; 70 end; 71 72 constructor TGStream.Create; 73 begin 74 inherited; 75 end; 23 76 24 77 {$UNDEF IMPLEMENTATION} -
Generics/TemplateGenerics/TemplateGenerics.lpk
r257 r312 1 1 <?xml version="1.0"?> 2 2 <CONFIG> 3 <Package Version=" 3">3 <Package Version="4"> 4 4 <PathDelim Value="\"/> 5 5 <Name Value="TemplateGenerics"/> 6 <AddToProjectUsesSection Value="True"/> 6 7 <Author Value="Chronos (robie@centrum.cz)"/> 7 8 <CompilerOptions> 8 <Version Value="1 0"/>9 <Version Value="11"/> 9 10 <PathDelim Value="\"/> 10 11 <SearchPaths> … … 28 29 <Description Value="Generic classes implemented as templates."/> 29 30 <Version Minor="3"/> 30 <Files Count="2 3">31 <Files Count="24"> 31 32 <Item1> 32 33 <Filename Value="ReadMe.txt"/> … … 121 122 <UnitName Value="SpecializedBitmap"/> 122 123 </Item23> 124 <Item24> 125 <Filename Value="Specialized\SpecializedStream.pas"/> 126 <UnitName Value="SpecializedStack"/> 127 </Item24> 123 128 </Files> 124 129 <Type Value="RunAndDesignTime"/> -
Generics/TemplateGenerics/TemplateGenerics.pas
r257 r312 10 10 SpecializedList, SpecializedDictionary, SpecializedStack, SpecializedTree, 11 11 SpecializedQueue, SpecializedSet, SpecializedPoint, SpecializedMatrix, 12 SpecializedBitmap, LazarusPackageIntf;12 SpecializedBitmap, SpecializedStream, LazarusPackageIntf; 13 13 14 14 implementation
Note:
See TracChangeset
for help on using the changeset viewer.