Changeset 496
- Timestamp:
- Jan 5, 2018, 10:24:36 PM (7 years ago)
- Location:
- Generics/NativeGenerics
- Files:
-
- 19 added
- 1 deleted
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
Generics/NativeGenerics/Additional/UBinarySerializer.pas
r425 r496 6 6 7 7 uses 8 Classes, SysUtils, DateUtils, GenericList, GenericStream;8 Classes, SysUtils, DateUtils, SpecializedList, SpecializedStream; 9 9 10 10 type … … 74 74 begin 75 75 StringLength := 0; 76 FList.ReadBuffer(StringLength, SizeOf(StringLength));76 Read(StringLength, SizeOf(StringLength)); 77 77 Result := ReadString(StringLength); 78 78 end; -
Generics/NativeGenerics/Demo
- Property svn:ignore
-
old new 3 3 Demo.exe 4 4 heaptrclog.trc 5 Demo
-
- Property svn:ignore
-
Generics/NativeGenerics/Demo/Demo.lpi
r481 r496 2 2 <CONFIG> 3 3 <ProjectOptions> 4 <Version Value=" 9"/>4 <Version Value="10"/> 5 5 <General> 6 6 <MainUnit Value="0"/> … … 12 12 <EnableI18N LFM="False"/> 13 13 </i18n> 14 <VersionInfo> 15 <StringTable ProductVersion=""/> 16 </VersionInfo> 17 <BuildModes Count="1"> 18 <Item1 Name="default" Default="True"/> 14 <BuildModes Count="2" Active="Debug"> 15 <Item1 Name="Debug" Default="True"/> 16 <Item2 Name="Release"> 17 <CompilerOptions> 18 <Version Value="11"/> 19 <Target> 20 <Filename Value="Demo"/> 21 </Target> 22 <SearchPaths> 23 <IncludeFiles Value="$(ProjOutDir)"/> 24 <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> 25 </SearchPaths> 26 <Parsing> 27 <SyntaxOptions> 28 <SyntaxMode Value="Delphi"/> 29 <CStyleOperator Value="False"/> 30 <AllowLabel Value="False"/> 31 <CPPInline Value="False"/> 32 <CStyleMacros Value="True"/> 33 </SyntaxOptions> 34 </Parsing> 35 <CodeGeneration> 36 <SmartLinkUnit Value="True"/> 37 <Optimizations> 38 <OptimizationLevel Value="3"/> 39 </Optimizations> 40 </CodeGeneration> 41 <Linking> 42 <Debugging> 43 <GenerateDebugInfo Value="False"/> 44 <DebugInfoType Value="dsStabs"/> 45 </Debugging> 46 <LinkSmart Value="True"/> 47 <Options> 48 <Win32> 49 <GraphicApplication Value="True"/> 50 </Win32> 51 </Options> 52 </Linking> 53 <Other> 54 <CompilerMessages> 55 <IgnoredMessages idx5024="True"/> 56 </CompilerMessages> 57 </Other> 58 </CompilerOptions> 59 </Item2> 19 60 </BuildModes> 20 61 <PublishOptions> … … 37 78 </Item2> 38 79 </RequiredPackages> 39 <Units Count=" 83">80 <Units Count="104"> 40 81 <Unit0> 41 82 <Filename Value="Demo.lpr"/> 42 83 <IsPartOfProject Value="True"/> 43 <EditorIndex Value="1 5"/>44 <CursorPos Y="16"/>84 <EditorIndex Value="1"/> 85 <CursorPos X="50" Y="24"/> 45 86 <UsageCount Value="233"/> 46 87 <Loaded Value="True"/> … … 54 95 <ResourceBaseClass Value="Form"/> 55 96 <IsVisibleTab Value="True"/> 56 <EditorIndex Value=" 3"/>57 <TopLine Value=" 219"/>58 <CursorPos X="5 1" Y="237"/>97 <EditorIndex Value="4"/> 98 <TopLine Value="481"/> 99 <CursorPos X="55" Y="515"/> 59 100 <UsageCount Value="233"/> 60 101 <Bookmarks Count="1"> 61 <Item0 X="65" Y="27 7" ID="2"/>102 <Item0 X="65" Y="276" ID="2"/> 62 103 </Bookmarks> 63 104 <Loaded Value="True"/> 105 <LoadedDesigner Value="True"/> 64 106 <DefaultSyntaxHighlighter Value="Delphi"/> 65 107 </Unit1> 66 108 <Unit2> 67 <Filename Value="../Specialized/SpecializedList.pas"/> 68 <TopLine Value="47"/> 69 <CursorPos X="20" Y="60"/> 70 <UsageCount Value="10"/> 71 <DefaultSyntaxHighlighter Value="Delphi"/> 109 <Filename Value="../Specialized/ListDouble.pas"/> 110 <CursorPos Y="11"/> 111 <UsageCount Value="3"/> 72 112 </Unit2> 73 113 <Unit3> 114 <Filename Value="../Specialized/SpecializedList.pas"/> 115 <EditorIndex Value="-1"/> 116 <TopLine Value="7"/> 117 <CursorPos X="15" Y="33"/> 118 <UsageCount Value="15"/> 119 </Unit3> 120 <Unit4> 121 <Filename Value="../Specialized/ListObject.pas"/> 122 <TopLine Value="33"/> 123 <CursorPos X="12" Y="56"/> 124 <UsageCount Value="3"/> 125 </Unit4> 126 <Unit5> 127 <Filename Value="../Specialized/ListPointer.pas"/> 128 <CursorPos X="23" Y="21"/> 129 <UsageCount Value="3"/> 130 </Unit5> 131 <Unit6> 132 <Filename Value="../Specialized/TreeString.pas"/> 133 <CursorPos X="23" Y="24"/> 134 <UsageCount Value="3"/> 135 </Unit6> 136 <Unit7> 137 <Filename Value="../Specialized/TreePointer.pas"/> 138 <CursorPos X="23" Y="13"/> 139 <UsageCount Value="3"/> 140 </Unit7> 141 <Unit8> 142 <Filename Value="../Specialized/TreeObject.pas"/> 143 <CursorPos X="23" Y="24"/> 144 <UsageCount Value="3"/> 145 </Unit8> 146 <Unit9> 147 <Filename Value="../Specialized/TreeInteger.pas"/> 148 <CursorPos X="31" Y="13"/> 149 <UsageCount Value="3"/> 150 </Unit9> 151 <Unit10> 152 <Filename Value="../Specialized/ListString.pas"/> 153 <CursorPos X="29" Y="17"/> 154 <UsageCount Value="3"/> 155 </Unit10> 156 <Unit11> 157 <Filename Value="../Generic/TreeImplementation.tpl"/> 158 <CursorPos Y="4"/> 159 <UsageCount Value="3"/> 160 <DefaultSyntaxHighlighter Value="None"/> 161 </Unit11> 162 <Unit12> 163 <Filename Value="../Generic/TreeInterface.tpl"/> 164 <CursorPos X="21" Y="6"/> 165 <UsageCount Value="3"/> 166 <DefaultSyntaxHighlighter Value="None"/> 167 </Unit12> 168 <Unit13> 169 <Filename Value="../Generic/ListInterface.tpl"/> 170 <UsageCount Value="3"/> 171 <DefaultSyntaxHighlighter Value="None"/> 172 </Unit13> 173 <Unit14> 74 174 <Filename Value="../Generic/ListImplementation.tpl"/> 75 175 <CursorPos X="25" Y="13"/> 176 <UsageCount Value="4"/> 177 <DefaultSyntaxHighlighter Value="None"/> 178 </Unit14> 179 <Unit15> 180 <Filename Value="../Generic/DictionaryImplementation.tpl"/> 181 <TopLine Value="4"/> 182 <CursorPos X="3" Y="6"/> 183 <UsageCount Value="3"/> 184 <DefaultSyntaxHighlighter Value="None"/> 185 </Unit15> 186 <Unit16> 187 <Filename Value="../Generic/DictionaryInterface.tpl"/> 188 <CursorPos X="14" Y="16"/> 189 <UsageCount Value="3"/> 190 <DefaultSyntaxHighlighter Value="None"/> 191 </Unit16> 192 <Unit17> 193 <Filename Value="../Specialized/DictionaryString.pas"/> 194 <CursorPos X="32" Y="18"/> 195 <UsageCount Value="3"/> 196 </Unit17> 197 <Unit18> 198 <Filename Value="../Generic/StackInterface.tpl"/> 199 <CursorPos X="20" Y="12"/> 200 <UsageCount Value="1"/> 201 <DefaultSyntaxHighlighter Value="None"/> 202 </Unit18> 203 <Unit19> 204 <Filename Value="../Specialized/StackString.pas"/> 205 <CursorPos Y="22"/> 206 <UsageCount Value="1"/> 207 </Unit19> 208 <Unit20> 209 <Filename Value="../Generic/StackImplementation.tpl"/> 210 <UsageCount Value="1"/> 211 <DefaultSyntaxHighlighter Value="None"/> 212 </Unit20> 213 <Unit21> 214 <Filename Value="../Generic/QueueImplementation.tpl"/> 215 <CursorPos Y="3"/> 216 <UsageCount Value="1"/> 217 <DefaultSyntaxHighlighter Value="None"/> 218 </Unit21> 219 <Unit22> 220 <Filename Value="../Generic/QueueInterface.tpl"/> 221 <CursorPos Y="3"/> 222 <UsageCount Value="1"/> 223 <DefaultSyntaxHighlighter Value="None"/> 224 </Unit22> 225 <Unit23> 226 <Filename Value="../Specialized/ListChar.pas"/> 227 <TopLine Value="45"/> 228 <CursorPos X="9" Y="79"/> 229 <UsageCount Value="10"/> 230 </Unit23> 231 <Unit24> 232 <Filename Value="../Generic/SetInterface.tpl"/> 233 <CursorPos X="21" Y="4"/> 76 234 <UsageCount Value="5"/> 77 235 <DefaultSyntaxHighlighter Value="None"/> 78 </Unit3> 79 <Unit4> 236 </Unit24> 237 <Unit25> 238 <Filename Value="../Specialized/SetChar.pas"/> 239 <CursorPos Y="25"/> 240 <UsageCount Value="5"/> 241 </Unit25> 242 <Unit26> 243 <Filename Value="../Generic/SetImplementation.tpl"/> 244 <CursorPos Y="3"/> 245 <UsageCount Value="5"/> 246 <DefaultSyntaxHighlighter Value="None"/> 247 </Unit26> 248 <Unit27> 249 <Filename Value="../Generic/RangeInterface.tpl"/> 250 <CursorPos X="7" Y="4"/> 251 <UsageCount Value="5"/> 252 <DefaultSyntaxHighlighter Value="None"/> 253 </Unit27> 254 <Unit28> 255 <Filename Value="../Specialized/RangeDateTime.pas"/> 256 <CursorPos X="14" Y="15"/> 257 <UsageCount Value="5"/> 258 </Unit28> 259 <Unit29> 260 <Filename Value="../Generic/RangeImplementation.tpl"/> 261 <CursorPos X="14" Y="18"/> 262 <UsageCount Value="5"/> 263 <DefaultSyntaxHighlighter Value="None"/> 264 </Unit29> 265 <Unit30> 266 <Filename Value="../Specialized/ListVariant.pas"/> 267 <TopLine Value="2"/> 268 <CursorPos X="30" Y="8"/> 269 <UsageCount Value="5"/> 270 </Unit30> 271 <Unit31> 272 <Filename Value="ListObject.pas"/> 273 <TopLine Value="13"/> 274 <CursorPos X="15" Y="12"/> 275 <UsageCount Value="7"/> 276 <DefaultSyntaxHighlighter Value="Delphi"/> 277 </Unit31> 278 <Unit32> 80 279 <Filename Value="../Generic/GenericList.inc"/> 81 < TopLine Value="359"/>82 < CursorPos X="62" Y="376"/>83 < UsageCount Value="97"/>84 < DefaultSyntaxHighlighter Value="Delphi"/>85 </Unit 4>86 <Unit 5>280 <EditorIndex Value="-1"/> 281 <TopLine Value="42"/> 282 <CursorPos X="15" Y="55"/> 283 <UsageCount Value="107"/> 284 </Unit32> 285 <Unit33> 87 286 <Filename Value="../Generic/GenericDictionary.inc"/> 88 287 <TopLine Value="31"/> 89 288 <CursorPos X="44" Y="47"/> 90 <UsageCount Value="84"/> 91 <DefaultSyntaxHighlighter Value="Delphi"/> 92 </Unit5> 93 <Unit6> 289 <UsageCount Value="93"/> 290 </Unit33> 291 <Unit34> 94 292 <Filename Value="../Generic/GenericObjectList.inc"/> 95 293 <CursorPos X="36" Y="48"/> 96 <UsageCount Value="84"/> 97 <DefaultSyntaxHighlighter Value="Delphi"/> 98 </Unit6> 99 <Unit7> 294 <UsageCount Value="93"/> 295 </Unit34> 296 <Unit35> 100 297 <Filename Value="../Generic/GenericQueue.inc"/> 101 298 <TopLine Value="3"/> 102 299 <CursorPos Y="3"/> 103 <UsageCount Value="84"/> 104 <DefaultSyntaxHighlighter Value="Delphi"/> 105 </Unit7> 106 <Unit8> 300 <UsageCount Value="93"/> 301 </Unit35> 302 <Unit36> 107 303 <Filename Value="../Generic/GenericSet.inc"/> 108 304 <TopLine Value="11"/> 109 305 <CursorPos X="42" Y="11"/> 110 <UsageCount Value="84"/> 111 <DefaultSyntaxHighlighter Value="Delphi"/> 112 </Unit8> 113 <Unit9> 306 <UsageCount Value="93"/> 307 </Unit36> 308 <Unit37> 114 309 <Filename Value="../Generic/GenericStack.inc"/> 115 310 <TopLine Value="3"/> 116 311 <CursorPos Y="3"/> 117 <UsageCount Value="84"/> 118 <DefaultSyntaxHighlighter Value="Delphi"/> 119 </Unit9> 120 <Unit10> 312 <UsageCount Value="93"/> 313 </Unit37> 314 <Unit38> 121 315 <Filename Value="../Generic/GenericTree.inc"/> 122 316 <CursorPos X="22" Y="30"/> 123 <UsageCount Value="84"/> 124 <DefaultSyntaxHighlighter Value="Delphi"/> 125 </Unit10> 126 <Unit11> 317 <UsageCount Value="93"/> 318 </Unit38> 319 <Unit39> 127 320 <Filename Value="../Specialized/SpecializedDictionary.pas"/> 128 < TopLine Value="6"/>129 < CursorPos X="56" Y="36"/>130 < UsageCount Value="83"/>131 < DefaultSyntaxHighlighter Value="Delphi"/>132 </Unit 11>133 <Unit 12>321 <EditorIndex Value="-1"/> 322 <TopLine Value="8"/> 323 <CursorPos X="42" Y="39"/> 324 <UsageCount Value="92"/> 325 </Unit39> 326 <Unit40> 134 327 <Filename Value="../Specialized/SpecializedStack.pas"/> 135 <TopLine Value="27"/> 136 <CursorPos X="50" Y="59"/> 137 <UsageCount Value="82"/> 138 <DefaultSyntaxHighlighter Value="Delphi"/> 139 </Unit12> 140 <Unit13> 328 <EditorIndex Value="-1"/> 329 <CursorPos X="2" Y="19"/> 330 <UsageCount Value="91"/> 331 </Unit40> 332 <Unit41> 141 333 <Filename Value="../Specialized/SpecializedTree.pas"/> 142 < TopLine Value="57"/>143 < CursorPos X="48" Y="85"/>144 < UsageCount Value="82"/>145 < DefaultSyntaxHighlighter Value="Delphi"/>146 </Unit 13>147 <Unit 14>334 <EditorIndex Value="-1"/> 335 <TopLine Value="19"/> 336 <CursorPos X="2" Y="19"/> 337 <UsageCount Value="91"/> 338 </Unit41> 339 <Unit42> 148 340 <Filename Value="../Generic/GenericRange.inc"/> 149 341 <CursorPos X="33" Y="14"/> 150 <UsageCount Value="82"/> 151 <DefaultSyntaxHighlighter Value="Delphi"/> 152 </Unit14> 153 <Unit15> 342 <UsageCount Value="91"/> 343 </Unit42> 344 <Unit43> 154 345 <Filename Value="../Specialized/SpecializedQueue.pas"/> 155 < TopLine Value="52"/>156 < CursorPos Y="81"/>157 < UsageCount Value="82"/>158 < DefaultSyntaxHighlighter Value="Delphi"/>159 </Unit 15>160 <Unit 16>346 <EditorIndex Value="-1"/> 347 <TopLine Value="14"/> 348 <CursorPos X="30" Y="45"/> 349 <UsageCount Value="91"/> 350 </Unit43> 351 <Unit44> 161 352 <Filename Value="../Specialized/SpecializedSet.pas"/> 162 <TopLine Value="29"/> 163 <CursorPos Y="62"/> 164 <UsageCount Value="82"/> 165 <DefaultSyntaxHighlighter Value="Delphi"/> 166 </Unit16> 167 <Unit17> 353 <EditorIndex Value="-1"/> 354 <CursorPos X="2" Y="19"/> 355 <UsageCount Value="91"/> 356 </Unit44> 357 <Unit45> 168 358 <Filename Value="../Specialized/SpecializedObjectList.pas"/> 169 359 <TopLine Value="9"/> 170 360 <CursorPos X="60" Y="36"/> 171 <UsageCount Value="81"/> 172 <DefaultSyntaxHighlighter Value="Delphi"/> 173 </Unit17> 174 <Unit18> 361 <UsageCount Value="90"/> 362 </Unit45> 363 <Unit46> 175 364 <Filename Value="../Generic/GenericMatrix.inc"/> 176 365 <TopLine Value="9"/> 177 366 <CursorPos X="28" Y="23"/> 178 <UsageCount Value="93"/> 179 <DefaultSyntaxHighlighter Value="Delphi"/> 180 </Unit18> 181 <Unit19> 367 <UsageCount Value="102"/> 368 </Unit46> 369 <Unit47> 182 370 <Filename Value="../../../../lazarus/trunk/lcl/graphics.pp"/> 183 371 <UnitName Value="Graphics"/> 184 372 <TopLine Value="2624"/> 185 373 <CursorPos X="37" Y="2636"/> 186 <UsageCount Value="80"/> 187 <DefaultSyntaxHighlighter Value="Delphi"/> 188 </Unit19> 189 <Unit20> 374 <UsageCount Value="89"/> 375 <DefaultSyntaxHighlighter Value="Delphi"/> 376 </Unit47> 377 <Unit48> 378 <Filename Value="../../../../lazarus/trunk/lcl/interfaces/carbon/issues.xml"/> 379 <TopLine Value="94"/> 380 <UsageCount Value="5"/> 381 <DefaultSyntaxHighlighter Value="XML"/> 382 </Unit48> 383 <Unit49> 190 384 <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/classesh.inc"/> 191 385 <TopLine Value="199"/> 192 386 <CursorPos X="14" Y="213"/> 193 <UsageCount Value=" 18"/>194 <DefaultSyntaxHighlighter Value="Delphi"/> 195 </Unit 20>196 <Unit 21>387 <UsageCount Value="27"/> 388 <DefaultSyntaxHighlighter Value="Delphi"/> 389 </Unit49> 390 <Unit50> 197 391 <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/lists.inc"/> 198 392 <TopLine Value="199"/> 199 393 <CursorPos X="3" Y="201"/> 200 <UsageCount Value=" 18"/>201 <DefaultSyntaxHighlighter Value="Delphi"/> 202 </Unit 21>203 <Unit 22>394 <UsageCount Value="27"/> 395 <DefaultSyntaxHighlighter Value="Delphi"/> 396 </Unit50> 397 <Unit51> 204 398 <Filename Value="../Generic/GenericListObject.inc"/> 205 <CursorPos X="21" Y="20"/> 206 <UsageCount Value="9"/> 207 <DefaultSyntaxHighlighter Value="Delphi"/> 208 </Unit22> 209 <Unit23> 399 <EditorIndex Value="-1"/> 400 <TopLine Value="11"/> 401 <CursorPos X="34" Y="24"/> 402 <UsageCount Value="21"/> 403 </Unit51> 404 <Unit52> 210 405 <Filename Value="/usr/share/fpcsrc/rtl/objpas/objpas.pp"/> 211 406 <CursorPos X="27" Y="26"/> 212 <UsageCount Value=" 18"/>213 <DefaultSyntaxHighlighter Value="Delphi"/> 214 </Unit 23>215 <Unit 24>407 <UsageCount Value="27"/> 408 <DefaultSyntaxHighlighter Value="Delphi"/> 409 </Unit52> 410 <Unit53> 216 411 <Filename Value="/usr/share/fpcsrc/rtl/inc/systemh.inc"/> 217 412 <TopLine Value="381"/> 218 413 <CursorPos X="3" Y="398"/> 219 <UsageCount Value="18"/> 220 <DefaultSyntaxHighlighter Value="Delphi"/> 221 </Unit24> 222 <Unit25> 414 <UsageCount Value="27"/> 415 <DefaultSyntaxHighlighter Value="Delphi"/> 416 </Unit53> 417 <Unit54> 418 <Filename Value="/usr/share/fpcsrc/rtl/inc/varianth.inc"/> 419 <TopLine Value="475"/> 420 <CursorPos X="10" Y="503"/> 421 <UsageCount Value="6"/> 422 <DefaultSyntaxHighlighter Value="Delphi"/> 423 </Unit54> 424 <Unit55> 223 425 <Filename Value="../../../../lazarus/trunk/lcl/include/control.inc"/> 224 426 <TopLine Value="2270"/> 225 427 <CursorPos X="22" Y="2273"/> 226 <UsageCount Value=" 9"/>227 <DefaultSyntaxHighlighter Value="Delphi"/> 228 </Unit 25>229 <Unit 26>428 <UsageCount Value="18"/> 429 <DefaultSyntaxHighlighter Value="Delphi"/> 430 </Unit55> 431 <Unit56> 230 432 <Filename Value="../Specialized/SpecializedMatrix.pas"/> 231 <CursorPos X="25" Y="41"/> 232 <UsageCount Value="9"/> 233 <DefaultSyntaxHighlighter Value="Delphi"/> 234 </Unit26> 235 <Unit27> 433 <EditorIndex Value="-1"/> 434 <TopLine Value="27"/> 435 <CursorPos X="2" Y="21"/> 436 <UsageCount Value="19"/> 437 </Unit56> 438 <Unit57> 439 <Filename Value="../ReadMe.txt"/> 440 <EditorIndex Value="-1"/> 441 <CursorPos X="28" Y="10"/> 442 <UsageCount Value="10"/> 443 <DefaultSyntaxHighlighter Value="None"/> 444 </Unit57> 445 <Unit58> 236 446 <Filename Value="../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/dateutil.inc"/> 237 447 <TopLine Value="38"/> 238 448 <CursorPos X="3" Y="50"/> 239 <UsageCount Value="1 "/>240 <DefaultSyntaxHighlighter Value="Delphi"/> 241 </Unit 27>242 <Unit 28>449 <UsageCount Value="10"/> 450 <DefaultSyntaxHighlighter Value="Delphi"/> 451 </Unit58> 452 <Unit59> 243 453 <Filename Value="../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/classesh.inc"/> 244 454 <TopLine Value="649"/> 245 455 <CursorPos X="38" Y="671"/> 246 <UsageCount Value=" 10"/>247 <DefaultSyntaxHighlighter Value="Delphi"/> 248 </Unit 28>249 <Unit 29>456 <UsageCount Value="9"/> 457 <DefaultSyntaxHighlighter Value="Delphi"/> 458 </Unit59> 459 <Unit60> 250 460 <Filename Value="../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/classes/stringl.inc"/> 251 461 <TopLine Value="1185"/> 252 462 <CursorPos X="22" Y="1196"/> 253 <UsageCount Value=" 10"/>254 <DefaultSyntaxHighlighter Value="Delphi"/> 255 </Unit 29>256 <Unit 30>463 <UsageCount Value="9"/> 464 <DefaultSyntaxHighlighter Value="Delphi"/> 465 </Unit60> 466 <Unit61> 257 467 <Filename Value="../../../../Programy/Lazarus/fpc/2.4.3/source/rtl/objpas/types.pp"/> 258 468 <TopLine Value="112"/> 259 469 <CursorPos X="3" Y="124"/> 260 <UsageCount Value=" 10"/>261 <DefaultSyntaxHighlighter Value="Delphi"/> 262 </Unit 30>263 <Unit 31>470 <UsageCount Value="9"/> 471 <DefaultSyntaxHighlighter Value="Delphi"/> 472 </Unit61> 473 <Unit62> 264 474 <Filename Value="../../../../Projekty2/FreePascalManager/trunk/Instance/1/FPC/rtl/objpas/sysutils/sysstrh.inc"/> 265 475 <TopLine Value="71"/> 266 476 <CursorPos X="10" Y="84"/> 267 <UsageCount Value=" 10"/>268 <DefaultSyntaxHighlighter Value="Delphi"/> 269 </Unit 31>270 <Unit 32>477 <UsageCount Value="9"/> 478 <DefaultSyntaxHighlighter Value="Delphi"/> 479 </Unit62> 480 <Unit63> 271 481 <Filename Value="../../../../Projekty2/FreePascalManager/trunk/Instance/1/FPC/rtl/objpas/sysutils/sysstr.inc"/> 272 482 <TopLine Value="148"/> 273 483 <CursorPos X="11" Y="169"/> 274 <UsageCount Value=" 10"/>275 <DefaultSyntaxHighlighter Value="Delphi"/> 276 </Unit 32>277 <Unit 33>484 <UsageCount Value="9"/> 485 <DefaultSyntaxHighlighter Value="Delphi"/> 486 </Unit63> 487 <Unit64> 278 488 <Filename Value="../../../../Projekty2/FreePascalManager/trunk/Instance/1/FPC/rtl/inc/systemh.inc"/> 279 489 <TopLine Value="511"/> 280 490 <CursorPos X="11" Y="524"/> 281 <UsageCount Value=" 10"/>282 <DefaultSyntaxHighlighter Value="Delphi"/> 283 </Unit 33>284 <Unit 34>491 <UsageCount Value="9"/> 492 <DefaultSyntaxHighlighter Value="Delphi"/> 493 </Unit64> 494 <Unit65> 285 495 <Filename Value="../../../../Projekty2/FreePascalManager/trunk/Instance/1/FPC/rtl/i386/i386.inc"/> 286 496 <TopLine Value="411"/> 287 497 <CursorPos X="10" Y="424"/> 288 <UsageCount Value="10"/> 289 <DefaultSyntaxHighlighter Value="Delphi"/> 290 </Unit34> 291 <Unit35> 292 <Filename Value="../Units/GenericList.pas"/> 293 <EditorIndex Value="6"/> 294 <TopLine Value="71"/> 295 <CursorPos X="3" Y="90"/> 296 <UsageCount Value="65"/> 297 <Loaded Value="True"/> 298 </Unit35> 299 <Unit36> 300 <Filename Value="../Units/GenericMatrix.pas"/> 301 <TopLine Value="42"/> 302 <CursorPos X="53" Y="55"/> 303 <UsageCount Value="41"/> 304 <Loaded Value="True"/> 305 </Unit36> 306 <Unit37> 307 <Filename Value="../Units/GenericStream.pas"/> 308 <EditorIndex Value="9"/> 309 <CursorPos X="36" Y="54"/> 310 <UsageCount Value="36"/> 311 <Loaded Value="True"/> 312 </Unit37> 313 <Unit38> 314 <Filename Value="../Units/GenericQueue.pas"/> 315 <EditorIndex Value="13"/> 316 <CursorPos X="24" Y="28"/> 317 <UsageCount Value="10"/> 318 <Loaded Value="True"/> 319 </Unit38> 320 <Unit39> 321 <Filename Value="../Units/GenericDictionary.pas"/> 322 <EditorIndex Value="14"/> 323 <TopLine Value="59"/> 324 <CursorPos Y="96"/> 325 <UsageCount Value="40"/> 326 <Loaded Value="True"/> 327 </Unit39> 328 <Unit40> 329 <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/fpc/2.6.0/source/rtl/objpas/sysutils/sysunih.inc"/> 330 <TopLine Value="9"/> 331 <CursorPos X="10" Y="22"/> 332 <UsageCount Value="37"/> 333 <DefaultSyntaxHighlighter Value="Delphi"/> 334 </Unit40> 335 <Unit41> 336 <Filename Value="../Units/SpecializedList.pas"/> 337 <TopLine Value="45"/> 338 <CursorPos Y="68"/> 339 <UsageCount Value="38"/> 340 </Unit41> 341 <Unit42> 342 <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/fpc/2.7.1/source/rtl/objpas/classes/classesh.inc"/> 343 <TopLine Value="257"/> 344 <CursorPos X="3" Y="270"/> 345 <UsageCount Value="34"/> 346 <DefaultSyntaxHighlighter Value="Delphi"/> 347 </Unit42> 348 <Unit43> 349 <Filename Value="../Units/GenericSet.pas"/> 350 <EditorIndex Value="11"/> 351 <UsageCount Value="10"/> 352 <Loaded Value="True"/> 353 </Unit43> 354 <Unit44> 355 <Filename Value="../Units/GenericStack.pas"/> 356 <EditorIndex Value="10"/> 357 <CursorPos X="14" Y="38"/> 358 <UsageCount Value="10"/> 359 <Loaded Value="True"/> 360 </Unit44> 361 <Unit45> 362 <Filename Value="../Units/GenericRange.pas"/> 363 <EditorIndex Value="12"/> 364 <CursorPos X="33" Y="35"/> 365 <UsageCount Value="40"/> 366 <Loaded Value="True"/> 367 </Unit45> 368 <Unit46> 369 <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/fpc/2.7.1/source/rtl/inc/systemh.inc"/> 370 <TopLine Value="958"/> 371 <CursorPos X="11" Y="971"/> 372 <UsageCount Value="8"/> 373 <DefaultSyntaxHighlighter Value="Delphi"/> 374 </Unit46> 375 <Unit47> 376 <Filename Value="../Units/GenericTree.pas"/> 377 <EditorIndex Value="16"/> 378 <CursorPos X="49" Y="68"/> 379 <UsageCount Value="40"/> 380 <Loaded Value="True"/> 381 </Unit47> 382 <Unit48> 383 <Filename Value="../Units/GenericString.pas"/> 384 <EditorIndex Value="18"/> 385 <CursorPos X="39" Y="62"/> 386 <UsageCount Value="33"/> 387 <Loaded Value="True"/> 388 </Unit48> 389 <Unit49> 390 <Filename Value="../Units/GenericBitmap.pas"/> 391 <EditorIndex Value="17"/> 392 <TopLine Value="140"/> 393 <CursorPos X="34" Y="36"/> 394 <UsageCount Value="32"/> 395 <Loaded Value="True"/> 396 </Unit49> 397 <Unit50> 398 <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/lcl/graphics.pp"/> 399 <UnitName Value="Graphics"/> 400 <TopLine Value="1151"/> 401 <CursorPos X="22" Y="1165"/> 402 <UsageCount Value="28"/> 403 <DefaultSyntaxHighlighter Value="Delphi"/> 404 </Unit50> 405 <Unit51> 406 <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/lcl/include/rasterimage.inc"/> 407 <TopLine Value="310"/> 408 <CursorPos X="22" Y="314"/> 409 <UsageCount Value="28"/> 410 <DefaultSyntaxHighlighter Value="Delphi"/> 411 </Unit51> 412 <Unit52> 413 <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/lcl/include/bitmapcanvas.inc"/> 414 <TopLine Value="53"/> 415 <CursorPos X="3" Y="46"/> 416 <UsageCount Value="28"/> 417 <DefaultSyntaxHighlighter Value="Delphi"/> 418 </Unit52> 419 <Unit53> 420 <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/fpc/2.7.1/source/packages/fcl-image/src/fpcanvas.pp"/> 421 <UnitName Value="FPCanvas"/> 422 <TopLine Value="347"/> 423 <CursorPos X="15" Y="360"/> 424 <UsageCount Value="28"/> 425 <DefaultSyntaxHighlighter Value="Delphi"/> 426 </Unit53> 427 <Unit54> 428 <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/fpc/2.7.1/source/packages/fcl-image/src/fpcanvas.inc"/> 429 <TopLine Value="308"/> 430 <CursorPos X="3" Y="310"/> 431 <UsageCount Value="28"/> 432 <DefaultSyntaxHighlighter Value="Delphi"/> 433 </Unit54> 434 <Unit55> 435 <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/fpc/2.7.1/source/packages/fcl-image/src/fpcdrawh.inc"/> 436 <TopLine Value="54"/> 437 <CursorPos X="3" Y="63"/> 438 <UsageCount Value="28"/> 439 <DefaultSyntaxHighlighter Value="Delphi"/> 440 </Unit55> 441 <Unit56> 442 <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/lcl/include/canvas.inc"/> 443 <TopLine Value="147"/> 444 <CursorPos X="3" Y="152"/> 445 <UsageCount Value="28"/> 446 <DefaultSyntaxHighlighter Value="Delphi"/> 447 </Unit56> 448 <Unit57> 449 <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/lcl/interfacebase.pp"/> 450 <UnitName Value="InterfaceBase"/> 451 <TopLine Value="153"/> 452 <CursorPos X="15" Y="166"/> 453 <UsageCount Value="28"/> 454 <DefaultSyntaxHighlighter Value="Delphi"/> 455 </Unit57> 456 <Unit58> 457 <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/lcl/comctrls.pp"/> 458 <UnitName Value="ComCtrls"/> 459 <TopLine Value="2962"/> 460 <CursorPos X="3" Y="2975"/> 461 <UsageCount Value="27"/> 462 <DefaultSyntaxHighlighter Value="Delphi"/> 463 </Unit58> 464 <Unit59> 465 <Filename Value="../../../../../Lazarus/0.9.31_2.7.1/lcl/include/treeview.inc"/> 466 <TopLine Value="5239"/> 467 <CursorPos X="3" Y="5243"/> 468 <UsageCount Value="27"/> 469 <DefaultSyntaxHighlighter Value="Delphi"/> 470 </Unit59> 471 <Unit60> 472 <Filename Value="../../../../../Lazarus/1.1_2.7.1/fpc/2.7.1/source/rtl/objpas/sysutils/filutilh.inc"/> 473 <TopLine Value="62"/> 474 <CursorPos X="3" Y="75"/> 475 <UsageCount Value="11"/> 476 </Unit60> 477 <Unit61> 478 <Filename Value="../../../../../Lazarus/1.1_2.7.1/fpc/2.7.1/source/rtl/inc/systemh.inc"/> 479 <EditorIndex Value="-1"/> 480 <TopLine Value="582"/> 481 <CursorPos X="11" Y="595"/> 482 <UsageCount Value="13"/> 483 </Unit61> 484 <Unit62> 485 <Filename Value="../../../../../Lazarus/1.1_2.7.1/fpc/2.7.1/source/rtl/win/sysutils.pp"/> 486 <TopLine Value="300"/> 487 <CursorPos Y="302"/> 488 <UsageCount Value="11"/> 489 </Unit62> 490 <Unit63> 491 <Filename Value="../../../../../Lazarus/1.1_2.7.1/fpc/2.7.1/source/rtl/win/wininc/func.inc"/> 492 <TopLine Value="169"/> 493 <CursorPos X="15" Y="177"/> 494 <UsageCount Value="11"/> 495 </Unit63> 496 <Unit64> 497 <Filename Value="../../../../../Lazarus/1.1_2.7.1/fpc/2.7.1/source/rtl/inc/file.inc"/> 498 <TopLine Value="299"/> 499 <CursorPos X="3" Y="304"/> 500 <UsageCount Value="11"/> 501 </Unit64> 502 <Unit65> 503 <Filename Value="../../../../../Lazarus/1.1_2.7.1/fpc/2.7.1/source/rtl/win/sysfile.inc"/> 504 <TopLine Value="133"/> 505 <CursorPos X="11" Y="143"/> 506 <UsageCount Value="11"/> 498 <UsageCount Value="9"/> 499 <DefaultSyntaxHighlighter Value="Delphi"/> 507 500 </Unit65> 508 501 <Unit66> 509 <Filename Value="../../../../../Lazarus/1.1_2.7.1/fpc/2.7.1/source/rtl/win/sysos.inc"/> 510 <TopLine Value="250"/> 511 <CursorPos X="20" Y="268"/> 512 <UsageCount Value="11"/> 502 <Filename Value="../Specialized/SpecializedStream.pas"/> 503 <EditorIndex Value="-1"/> 504 <UsageCount Value="17"/> 513 505 </Unit66> 514 506 <Unit67> 515 <Filename Value="../../../../../Lazarus/1.1_2.7.1/fpc/2.7.1/source/rtl/inc/text.inc"/> 516 <TopLine Value="108"/> 517 <CursorPos X="3" Y="110"/> 518 <UsageCount Value="10"/> 507 <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/lcl/lclclasses.pp"/> 508 <UnitName Value="LCLClasses"/> 509 <TopLine Value="25"/> 510 <CursorPos X="32" Y="40"/> 511 <UsageCount Value="9"/> 512 <DefaultSyntaxHighlighter Value="Delphi"/> 519 513 </Unit67> 520 514 <Unit68> 521 <Filename Value="../../../../../Lazarus/ 1.1_2.7.1/fpc/2.7.1/source/rtl/objpas/sysutils/sysstrh.inc"/>522 < EditorIndex Value="-1"/>523 < TopLine Value="72"/>524 < CursorPos X="10" Y="84"/>525 < UsageCount Value="12"/>515 <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/lcl/controls.pp"/> 516 <UnitName Value="Controls"/> 517 <CursorPos X="39" Y="11"/> 518 <UsageCount Value="9"/> 519 <DefaultSyntaxHighlighter Value="Delphi"/> 526 520 </Unit68> 527 521 <Unit69> 528 <Filename Value="../../../../../Lazarus/ 1.1_2.7.1/fpc/2.7.1/source/rtl/objpas/classes/classesh.inc"/>529 < EditorIndex Value="-1"/>530 < TopLine Value="258"/>531 < CursorPos X="14" Y="270"/>532 < UsageCount Value="12"/>522 <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/fpc/2.6.0/source/rtl/inc/objpash.inc"/> 523 <TopLine Value="179"/> 524 <CursorPos X="23" Y="192"/> 525 <UsageCount Value="10"/> 526 <DefaultSyntaxHighlighter Value="Delphi"/> 533 527 </Unit69> 534 528 <Unit70> 535 <Filename Value="../../../../../Lazarus/ 1.1_2.7.1/fpc/2.7.1/source/rtl/objpas/classes/stringl.inc"/>536 < EditorIndex Value="-1"/>537 < TopLine Value="736"/>538 < CursorPos X="3" Y="738"/>539 < UsageCount Value="12"/>529 <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/fpc/2.6.0/source/rtl/inc/objpas.inc"/> 530 <TopLine Value="265"/> 531 <CursorPos X="9" Y="267"/> 532 <UsageCount Value="10"/> 533 <DefaultSyntaxHighlighter Value="Delphi"/> 540 534 </Unit70> 541 535 <Unit71> 542 <Filename Value="../ ../../../../Lazarus/1.1_2.7.1/fpc/2.7.1/source/rtl/objpas/classes/lists.inc"/>543 <EditorIndex Value="-1"/> 544 <TopLine Value=" 199"/>545 <CursorPos X="31" Y=" 207"/>546 <UsageCount Value="1 2"/>536 <Filename Value="../Generic/GenericStream.inc"/> 537 <EditorIndex Value="-1"/> 538 <TopLine Value="20"/> 539 <CursorPos X="31" Y="40"/> 540 <UsageCount Value="15"/> 547 541 </Unit71> 548 542 <Unit72> 549 <Filename Value="../../../../../Lazarus/1.1_2.7.1/fpc/2.7.1/source/rtl/objpas/sysutils/sysstr.inc"/> 550 <EditorIndex Value="-1"/> 551 <TopLine Value="181"/> 552 <CursorPos X="3" Y="187"/> 553 <UsageCount Value="12"/> 543 <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/fpc/2.6.0/source/rtl/objpas/classes/classesh.inc"/> 544 <EditorIndex Value="-1"/> 545 <TopLine Value="891"/> 546 <CursorPos X="18" Y="908"/> 547 <UsageCount Value="13"/> 548 <DefaultSyntaxHighlighter Value="Delphi"/> 554 549 </Unit72> 555 550 <Unit73> 556 <Filename Value="../../../../../Lazarus/1.1_2.7.1/fpc/2.7.1/source/rtl/i386/i386.inc"/> 557 <EditorIndex Value="-1"/> 558 <TopLine Value="503"/> 559 <CursorPos X="9" Y="503"/> 560 <UsageCount Value="12"/> 551 <Filename Value="../../../../../Lazarus/0.9.31_2.6.0/fpc/2.6.0/source/rtl/objpas/classes/streams.inc"/> 552 <EditorIndex Value="-1"/> 553 <TopLine Value="739"/> 554 <CursorPos X="18" Y="750"/> 555 <UsageCount Value="13"/> 556 <DefaultSyntaxHighlighter Value="Delphi"/> 561 557 </Unit73> 562 558 <Unit74> 563 <Filename Value="../ ../../../../Lazarus/1.1_2.7.1/fpc/2.7.1/source/rtl/inc/system.inc"/>564 <EditorIndex Value="-1"/> 565 <TopLine Value=" 277"/>566 <CursorPos X=" 14" Y="285"/>559 <Filename Value="../Generic/GenericListString.inc"/> 560 <EditorIndex Value="-1"/> 561 <TopLine Value="8"/> 562 <CursorPos X="34" Y="21"/> 567 563 <UsageCount Value="12"/> 568 564 </Unit74> 569 565 <Unit75> 570 <Filename Value="../ReadMe.txt"/> 571 <EditorIndex Value="19"/> 572 <CursorPos X="41" Y="7"/> 573 <UsageCount Value="11"/> 574 <Loaded Value="True"/> 575 <DefaultSyntaxHighlighter Value="None"/> 566 <Filename Value="../Generic/GenericBitmap.pas"/> 567 <EditorIndex Value="-1"/> 568 <CursorPos X="48" Y="13"/> 569 <UsageCount Value="10"/> 576 570 </Unit75> 577 571 <Unit76> 578 <Filename Value="../ Units/GenericPoint.pas"/>579 <EditorIndex Value=" 1"/>580 < CursorPos X="59" Y="19"/>581 < UsageCount Value="10"/>582 < Loaded Value="True"/>572 <Filename Value="../Generic/GenericMatrix.pas"/> 573 <EditorIndex Value="-1"/> 574 <TopLine Value="68"/> 575 <CursorPos X="65" Y="93"/> 576 <UsageCount Value="11"/> 583 577 </Unit76> 584 578 <Unit77> 585 <Filename Value="/usr/share/fpcsrc/3.0.0/rtl/objpas/classes/classesh.inc"/> 586 <EditorIndex Value="4"/> 587 <TopLine Value="229"/> 588 <CursorPos X="14" Y="251"/> 589 <UsageCount Value="10"/> 579 <Filename Value="../Generic/GenericList.pas"/> 580 <TopLine Value="366"/> 581 <CursorPos Y="384"/> 582 <UsageCount Value="12"/> 590 583 <Loaded Value="True"/> 591 584 </Unit77> 592 585 <Unit78> 593 <Filename Value="/usr/share/fpcsrc/3.0. 0/rtl/objpas/classes/lists.inc"/>586 <Filename Value="/usr/share/fpcsrc/3.0.2/rtl/objpas/classes/classesh.inc"/> 594 587 <EditorIndex Value="5"/> 595 <TopLine Value=" 199"/>596 <CursorPos X=" 3" Y="207"/>597 <UsageCount Value="1 0"/>588 <TopLine Value="216"/> 589 <CursorPos X="14" Y="242"/> 590 <UsageCount Value="11"/> 598 591 <Loaded Value="True"/> 599 592 </Unit78> 600 593 <Unit79> 601 <Filename Value="/usr/share/fpcsrc/3.0.0/rtl/inc/systemh.inc"/> 602 <EditorIndex Value="7"/> 603 <TopLine Value="726"/> 604 <CursorPos X="11" Y="749"/> 605 <UsageCount Value="10"/> 606 <Loaded Value="True"/> 594 <Filename Value="../Specialized/SpecializedPoint.pas"/> 595 <EditorIndex Value="-1"/> 596 <CursorPos X="2" Y="17"/> 597 <UsageCount Value="10"/> 607 598 </Unit79> 608 599 <Unit80> 609 <Filename Value="/usr/share/fpcsrc/3.0.0/rtl/x86_64/x86_64.inc"/> 610 <EditorIndex Value="8"/> 611 <TopLine Value="634"/> 612 <CursorPos X="10" Y="657"/> 613 <UsageCount Value="10"/> 614 <Loaded Value="True"/> 600 <Filename Value="../Specialized/SpecializedBitmap.pas"/> 601 <EditorIndex Value="-1"/> 602 <TopLine Value="28"/> 603 <CursorPos X="2" Y="27"/> 604 <UsageCount Value="10"/> 615 605 </Unit80> 616 606 <Unit81> 617 <Filename Value="../Units/GenericRectangle.pas"/> 618 <EditorIndex Value="2"/> 619 <TopLine Value="17"/> 620 <CursorPos X="27" Y="51"/> 621 <UsageCount Value="10"/> 622 <Loaded Value="True"/> 607 <Filename Value="../Generic/GenericStream.pas"/> 608 <EditorIndex Value="-1"/> 609 <TopLine Value="33"/> 610 <CursorPos X="43" Y="85"/> 611 <UsageCount Value="11"/> 623 612 </Unit81> 624 613 <Unit82> 625 <Filename Value="../Additional/UBinarySerializer.pas"/> 626 <EditorIndex Value="20"/> 627 <TopLine Value="55"/> 628 <UsageCount Value="10"/> 614 <Filename Value="../Specialized/SpecializedRectangle.pas"/> 615 <EditorIndex Value="-1"/> 616 <CursorPos X="59" Y="8"/> 617 <UsageCount Value="11"/> 618 </Unit82> 619 <Unit83> 620 <Filename Value="../Generic/GenericTree.pas"/> 621 <EditorIndex Value="-1"/> 622 <CursorPos X="3" Y="43"/> 623 <UsageCount Value="11"/> 624 </Unit83> 625 <Unit84> 626 <Filename Value="../Generic/GenericPoint.pas"/> 627 <EditorIndex Value="-1"/> 628 <CursorPos X="3" Y="13"/> 629 <UsageCount Value="11"/> 630 </Unit84> 631 <Unit85> 632 <Filename Value="../Generic/GenericRectangle.pas"/> 633 <EditorIndex Value="-1"/> 634 <TopLine Value="244"/> 635 <CursorPos X="41" Y="296"/> 636 <UsageCount Value="11"/> 637 </Unit85> 638 <Unit86> 639 <Filename Value="/usr/share/fpcsrc/3.0.2/rtl/objpas/math.pp"/> 640 <EditorIndex Value="-1"/> 641 <TopLine Value="135"/> 642 <CursorPos X="14" Y="180"/> 643 <UsageCount Value="11"/> 644 </Unit86> 645 <Unit87> 646 <Filename Value="../Generic/GenericListString.pas"/> 647 <EditorIndex Value="-1"/> 648 <UsageCount Value="10"/> 649 </Unit87> 650 <Unit88> 651 <Filename Value="../Generic/GenericDictionary.pas"/> 652 <EditorIndex Value="-1"/> 653 <TopLine Value="25"/> 654 <CursorPos X="34" Y="48"/> 655 <UsageCount Value="10"/> 656 </Unit88> 657 <Unit89> 658 <Filename Value="../Generic/GenericFileList.pas"/> 659 <EditorIndex Value="-1"/> 660 <CursorPos X="5"/> 661 <UsageCount Value="11"/> 662 </Unit89> 663 <Unit90> 664 <Filename Value="../Generic/GenericListAbstract.pas"/> 665 <EditorIndex Value="-1"/> 666 <UsageCount Value="10"/> 667 </Unit90> 668 <Unit91> 669 <Filename Value="../Generic/GenericQueue.pas"/> 670 <EditorIndex Value="-1"/> 671 <TopLine Value="20"/> 672 <CursorPos X="38" Y="68"/> 673 <UsageCount Value="11"/> 674 </Unit91> 675 <Unit92> 676 <Filename Value="../Generic/GenericRange.pas"/> 677 <EditorIndex Value="-1"/> 678 <CursorPos X="21" Y="35"/> 679 <UsageCount Value="11"/> 680 </Unit92> 681 <Unit93> 682 <Filename Value="../Generic/GenericSet.pas"/> 683 <EditorIndex Value="-1"/> 684 <CursorPos X="31" Y="25"/> 685 <UsageCount Value="11"/> 686 </Unit93> 687 <Unit94> 688 <Filename Value="../Generic/GenericStack.pas"/> 689 <EditorIndex Value="-1"/> 690 <CursorPos X="13" Y="44"/> 691 <UsageCount Value="11"/> 692 </Unit94> 693 <Unit95> 694 <Filename Value="../Generic/GenericListObject.pas"/> 695 <EditorIndex Value="-1"/> 696 <CursorPos Y="31"/> 697 <UsageCount Value="10"/> 698 </Unit95> 699 <Unit96> 700 <Filename Value="/usr/share/fpcsrc/3.0.2/rtl/objpas/rtlconsts.pp"/> 701 <UnitName Value="RtlConsts"/> 702 <EditorIndex Value="-1"/> 703 <UsageCount Value="11"/> 704 </Unit96> 705 <Unit97> 706 <Filename Value="/usr/share/fpcsrc/3.0.2/rtl/objpas/rtlconst.inc"/> 707 <EditorIndex Value="-1"/> 708 <TopLine Value="13"/> 709 <UsageCount Value="11"/> 710 </Unit97> 711 <Unit98> 712 <Filename Value="/usr/share/fpcsrc/3.0.2/rtl/unix/classes.pp"/> 713 <UnitName Value="Classes"/> 714 <EditorIndex Value="-1"/> 715 <TopLine Value="3"/> 716 <CursorPos X="33" Y="55"/> 717 <UsageCount Value="11"/> 718 </Unit98> 719 <Unit99> 720 <Filename Value="/usr/share/fpcsrc/3.0.2/rtl/objpas/sysutils/sysutilh.inc"/> 721 <EditorIndex Value="-1"/> 722 <TopLine Value="81"/> 723 <CursorPos X="55" Y="113"/> 724 <UsageCount Value="11"/> 725 </Unit99> 726 <Unit100> 727 <Filename Value="/usr/share/fpcsrc/3.0.2/rtl/objpas/fgl.pp"/> 728 <EditorIndex Value="2"/> 729 <TopLine Value="628"/> 730 <CursorPos X="52" Y="637"/> 731 <UsageCount Value="11"/> 629 732 <Loaded Value="True"/> 630 </Unit82> 733 </Unit100> 734 <Unit101> 735 <Filename Value="/usr/share/fpcsrc/3.0.2/rtl/objpas/classes/lists.inc"/> 736 <EditorIndex Value="6"/> 737 <TopLine Value="122"/> 738 <CursorPos X="3" Y="124"/> 739 <UsageCount Value="11"/> 740 <Loaded Value="True"/> 741 </Unit101> 742 <Unit102> 743 <Filename Value="/usr/share/fpcsrc/3.0.2/rtl/inc/systemh.inc"/> 744 <EditorIndex Value="3"/> 745 <TopLine Value="741"/> 746 <CursorPos X="11" Y="767"/> 747 <UsageCount Value="11"/> 748 <Loaded Value="True"/> 749 </Unit102> 750 <Unit103> 751 <Filename Value="/usr/share/fpcsrc/3.0.2/rtl/x86_64/x86_64.inc"/> 752 <EditorIndex Value="-1"/> 753 <TopLine Value="623"/> 754 <CursorPos X="10" Y="634"/> 755 <UsageCount Value="10"/> 756 </Unit103> 631 757 </Units> 632 <JumpHistory Count="30" HistoryIndex="2 9">758 <JumpHistory Count="30" HistoryIndex="28"> 633 759 <Position1> 634 <Filename Value=" Demo.lpr"/>635 <Caret Line=" 16"/>760 <Filename Value="UMainForm.pas"/> 761 <Caret Line="717" TopLine="695"/> 636 762 </Position1> 637 763 <Position2> 638 764 <Filename Value="UMainForm.pas"/> 639 <Caret Line=" 243" TopLine="219"/>765 <Caret Line="716" TopLine="695"/> 640 766 </Position2> 641 767 <Position3> 642 <Filename Value=" ../Units/GenericDictionary.pas"/>643 <Caret Line=" 88" TopLine="59"/>768 <Filename Value="UMainForm.pas"/> 769 <Caret Line="717" TopLine="695"/> 644 770 </Position3> 645 771 <Position4> 646 <Filename Value=" ../Units/GenericDictionary.pas"/>647 <Caret Line=" 89" TopLine="59"/>772 <Filename Value="UMainForm.pas"/> 773 <Caret Line="716" TopLine="695"/> 648 774 </Position4> 649 775 <Position5> 650 <Filename Value=" ../Units/GenericDictionary.pas"/>651 <Caret Line=" 90" TopLine="59"/>776 <Filename Value="UMainForm.pas"/> 777 <Caret Line="717" TopLine="695"/> 652 778 </Position5> 653 779 <Position6> 654 <Filename Value=" ../Units/GenericDictionary.pas"/>655 <Caret Line=" 91" TopLine="59"/>780 <Filename Value="UMainForm.pas"/> 781 <Caret Line="716" TopLine="695"/> 656 782 </Position6> 657 783 <Position7> 658 <Filename Value=" ../Units/GenericDictionary.pas"/>659 <Caret Line=" 94" TopLine="59"/>784 <Filename Value="UMainForm.pas"/> 785 <Caret Line="718" TopLine="695"/> 660 786 </Position7> 661 787 <Position8> 662 <Filename Value=" ../Units/GenericDictionary.pas"/>663 <Caret Line=" 90" TopLine="59"/>788 <Filename Value="UMainForm.pas"/> 789 <Caret Line="719" TopLine="695"/> 664 790 </Position8> 665 791 <Position9> 666 <Filename Value=" ../Units/GenericDictionary.pas"/>667 <Caret Line=" 91" TopLine="59"/>792 <Filename Value="UMainForm.pas"/> 793 <Caret Line="721" TopLine="695"/> 668 794 </Position9> 669 795 <Position10> 670 <Filename Value=" ../Units/GenericDictionary.pas"/>671 <Caret Line=" 94" TopLine="59"/>796 <Filename Value="UMainForm.pas"/> 797 <Caret Line="722" TopLine="695"/> 672 798 </Position10> 673 799 <Position11> 674 <Filename Value=" ../Units/GenericDictionary.pas"/>675 <Caret Line=" 90" TopLine="59"/>800 <Filename Value="UMainForm.pas"/> 801 <Caret Line="723" TopLine="695"/> 676 802 </Position11> 677 803 <Position12> 678 <Filename Value=" ../Units/GenericDictionary.pas"/>679 <Caret Line=" 91" TopLine="59"/>804 <Filename Value="UMainForm.pas"/> 805 <Caret Line="724" TopLine="695"/> 680 806 </Position12> 681 807 <Position13> 682 <Filename Value=" ../Units/GenericDictionary.pas"/>683 <Caret Line=" 94" TopLine="59"/>808 <Filename Value="UMainForm.pas"/> 809 <Caret Line="725" TopLine="695"/> 684 810 </Position13> 685 811 <Position14> 686 <Filename Value=" ../Units/GenericDictionary.pas"/>687 <Caret Line=" 90" TopLine="59"/>812 <Filename Value="UMainForm.pas"/> 813 <Caret Line="730" TopLine="695"/> 688 814 </Position14> 689 815 <Position15> 690 <Filename Value=" ../Units/GenericDictionary.pas"/>691 <Caret Line=" 96" TopLine="59"/>816 <Filename Value="UMainForm.pas"/> 817 <Caret Line="731" TopLine="695"/> 692 818 </Position15> 693 819 <Position16> 694 820 <Filename Value="UMainForm.pas"/> 695 <Caret Line=" 235" Column="60" TopLine="219"/>821 <Caret Line="732" TopLine="695"/> 696 822 </Position16> 697 823 <Position17> 698 824 <Filename Value="UMainForm.pas"/> 699 <Caret Line=" 243" TopLine="219"/>825 <Caret Line="731" TopLine="695"/> 700 826 </Position17> 701 827 <Position18> 702 <Filename Value=" ../Units/GenericDictionary.pas"/>703 <Caret Line=" 87" TopLine="59"/>828 <Filename Value="UMainForm.pas"/> 829 <Caret Line="732" TopLine="695"/> 704 830 </Position18> 705 831 <Position19> 706 <Filename Value=" ../Units/GenericDictionary.pas"/>707 <Caret Line=" 89" TopLine="59"/>832 <Filename Value="UMainForm.pas"/> 833 <Caret Line="731" TopLine="695"/> 708 834 </Position19> 709 835 <Position20> 710 <Filename Value=" ../Units/GenericDictionary.pas"/>711 <Caret Line=" 90" TopLine="59"/>836 <Filename Value="UMainForm.pas"/> 837 <Caret Line="732" TopLine="695"/> 712 838 </Position20> 713 839 <Position21> 714 <Filename Value=" ../Units/GenericDictionary.pas"/>715 <Caret Line=" 91" TopLine="59"/>840 <Filename Value="UMainForm.pas"/> 841 <Caret Line="731" TopLine="695"/> 716 842 </Position21> 717 843 <Position22> 718 <Filename Value=" ../Units/GenericDictionary.pas"/>719 <Caret Line=" 94" TopLine="59"/>844 <Filename Value="UMainForm.pas"/> 845 <Caret Line="732" TopLine="695"/> 720 846 </Position22> 721 847 <Position23> 722 <Filename Value=" ../Units/GenericDictionary.pas"/>723 <Caret Line=" 90" TopLine="59"/>848 <Filename Value="UMainForm.pas"/> 849 <Caret Line="533" TopLine="517"/> 724 850 </Position23> 725 851 <Position24> 726 <Filename Value=" ../Units/GenericDictionary.pas"/>727 <Caret Line=" 91" TopLine="59"/>852 <Filename Value="UMainForm.pas"/> 853 <Caret Line="36" Column="28"/> 728 854 </Position24> 729 855 <Position25> 730 <Filename Value=" ../Units/GenericDictionary.pas"/>731 <Caret Line="9 4" TopLine="59"/>856 <Filename Value="UMainForm.pas"/> 857 <Caret Line="90" Column="38" TopLine="65"/> 732 858 </Position25> 733 859 <Position26> 734 <Filename Value=" ../Units/GenericDictionary.pas"/>735 <Caret Line=" 90" TopLine="59"/>860 <Filename Value="UMainForm.pas"/> 861 <Caret Line="33" Column="15" TopLine="10"/> 736 862 </Position26> 737 863 <Position27> 738 <Filename Value=" ../Units/GenericDictionary.pas"/>739 <Caret Line=" 91" TopLine="59"/>864 <Filename Value="UMainForm.pas"/> 865 <Caret Line="412" Column="32" TopLine="383"/> 740 866 </Position27> 741 867 <Position28> 742 <Filename Value=" ../Units/GenericDictionary.pas"/>743 <Caret Line=" 94" TopLine="59"/>868 <Filename Value="UMainForm.pas"/> 869 <Caret Line="31" Column="15" TopLine="7"/> 744 870 </Position28> 745 871 <Position29> 746 <Filename Value=" ../Units/GenericDictionary.pas"/>747 <Caret Line=" 90" TopLine="59"/>872 <Filename Value="UMainForm.pas"/> 873 <Caret Line="515" Column="55" TopLine="480"/> 748 874 </Position29> 749 875 <Position30> 750 <Filename Value=" ../Units/GenericDictionary.pas"/>751 <Caret Line=" 96" TopLine="59"/>876 <Filename Value="UMainForm.pas"/> 877 <Caret Line="139" Column="3" TopLine="132"/> 752 878 </Position30> 753 879 </JumpHistory> … … 766 892 <SyntaxMode Value="Delphi"/> 767 893 <CStyleOperator Value="False"/> 894 <IncludeAssertionCode Value="True"/> 768 895 <AllowLabel Value="False"/> 769 896 <CPPInline Value="False"/> … … 778 905 <StackChecks Value="True"/> 779 906 </Checks> 907 <VerifyObjMethodCallValidity Value="True"/> 780 908 </CodeGeneration> 781 909 <Linking> … … 790 918 </Options> 791 919 </Linking> 920 <Other> 921 <CompilerMessages> 922 <IgnoredMessages idx5024="True"/> 923 </CompilerMessages> 924 <CustomOptions Value="-dDEBUG"/> 925 </Other> 792 926 </CompilerOptions> 793 927 <Debugging> 794 <BreakPoints Count="1">795 <Item1>796 <Kind Value="bpkSource"/>797 <WatchScope Value="wpsLocal"/>798 <WatchKind Value="wpkWrite"/>799 <Source Value="UMainForm.pas"/>800 <Line Value="657"/>801 </Item1>802 </BreakPoints>803 928 <Exceptions Count="3"> 804 929 <Item1> -
Generics/NativeGenerics/Demo/Demo.lpr
r313 r496 8 8 {$ENDIF}{$ENDIF} 9 9 Interfaces, // this includes the LCL widgetset 10 Forms, SysUtils, UMainForm , NativeGenerics;10 Forms, SysUtils, UMainForm; 11 11 12 12 {$R *.res} 13 13 14 {$IFDEF DEBUG} 14 15 const 15 16 HeapTraceLogFileName = 'heaptrclog.trc'; 17 {$ENDIF} 16 18 begin 19 {$IFDEF DEBUG} 17 20 DeleteFile(ExtractFilePath(ParamStr(0)) + HeapTraceLogFileName); 18 21 SetHeapTraceOutput(ExtractFilePath(ParamStr(0)) + HeapTraceLogFileName); 22 {$ENDIF} 19 23 Application.Initialize; 20 24 Application.CreateForm(TMainForm, MainForm); -
Generics/NativeGenerics/Demo/UMainForm.lfm
r326 r496 1 1 object MainForm: TMainForm 2 Left = 2613 Height = 5204 Top = 1045 Width = 6926 ActiveControl = IntegerListButton7 Caption = ' Template generics demo'8 ClientHeight = 5209 ClientWidth = 6922 Left = 619 3 Height = 678 4 Top = 203 5 Width = 934 6 ActiveControl = ButtonIntegerList 7 Caption = 'Native generics demo' 8 ClientHeight = 678 9 ClientWidth = 934 10 10 OnCreate = FormCreate 11 11 OnDestroy = FormDestroy 12 LCLVersion = ' 0.9.31'13 object IntegerListButton: TButton12 LCLVersion = '1.8.0.4' 13 object ButtonIntegerList: TButton 14 14 Left = 8 15 15 Height = 25 16 16 Top = 8 17 Width = 15218 Caption = 'T List<Integer>'19 OnClick = IntegerListButtonClick17 Width = 264 18 Caption = 'TGList<Integer>' 19 OnClick = ButtonIntegerListClick 20 20 TabOrder = 0 21 21 end 22 object StringListButton: TButton22 object ButtonStringList: TButton 23 23 Left = 8 24 24 Height = 25 25 25 Top = 40 26 Width = 15227 Caption = 'T StringList<string>'28 OnClick = StringListButtonClick26 Width = 264 27 Caption = 'TGList<String>' 28 OnClick = ButtonStringListClick 29 29 TabOrder = 1 30 30 end 31 object DictionaryStringButton: TButton31 object ButtonDictionaryString: TButton 32 32 Left = 8 33 33 Height = 25 34 34 Top = 72 35 Width = 15236 Caption = 'T Dictionary<string,string>'37 OnClick = DictionaryStringButtonClick35 Width = 264 36 Caption = 'TGDictionary<string>' 37 OnClick = ButtonDictionaryStringClick 38 38 TabOrder = 2 39 39 end 40 object QueueIntegerButton: TButton40 object ButtonQueueInteger: TButton 41 41 Left = 8 42 42 Height = 25 43 43 Top = 102 44 Width = 15245 Caption = 'T Queue<Integer>'46 OnClick = QueueIntegerButtonClick44 Width = 264 45 Caption = 'TGQueue<Integer>' 46 OnClick = ButtonQueueIntegerClick 47 47 TabOrder = 3 48 48 end 49 object CharListButton: TButton49 object ButtonCharList: TButton 50 50 Left = 8 51 51 Height = 25 52 52 Top = 134 53 Width = 15254 Caption = 'T String<Char>'55 OnClick = CharListButtonClick53 Width = 264 54 Caption = 'TListChar(TString)' 55 OnClick = ButtonCharListClick 56 56 TabOrder = 4 57 57 end … … 59 59 Left = 8 60 60 Height = 24 61 Top = 45662 Width = 15261 Top = 614 62 Width = 264 63 63 Anchors = [akLeft, akBottom] 64 Caption = 'T StringList<string>'64 Caption = 'TGList<string>' 65 65 OnClick = ButtonBenchmarkListStringClick 66 66 TabOrder = 5 67 67 end 68 object ListObjectButton: TButton68 object ButtonListObject: TButton 69 69 Left = 8 70 70 Height = 25 71 71 Top = 163 72 Width = 15273 Caption = 'T ObjectList<Object>'74 OnClick = ListObjectButtonClick72 Width = 264 73 Caption = 'TGListObject<TObject>' 74 OnClick = ButtonListObjectClick 75 75 TabOrder = 6 76 76 end … … 78 78 Left = 8 79 79 Height = 25 80 Top = 42481 Width = 15280 Top = 582 81 Width = 264 82 82 Anchors = [akLeft, akBottom] 83 Caption = 'T Dictionary<string,string>'83 Caption = 'TGDictionary<string,string>' 84 84 OnClick = ButtonBenchmarkDictionaryClick 85 85 TabOrder = 7 86 86 end 87 object MatrixIntegerButton: TButton87 object ButtonMatrixInteger: TButton 88 88 Left = 8 89 89 Height = 25 90 90 Top = 192 91 Width = 15292 Caption = 'T Matrix<Integer>'93 OnClick = MatrixIntegerButtonClick91 Width = 264 92 Caption = 'TGMatrix<Integer>' 93 OnClick = ButtonMatrixIntegerClick 94 94 TabOrder = 8 95 95 end 96 96 object ListViewOutput: TListView 97 Left = 16898 Height = 49197 Left = 280 98 Height = 649 99 99 Top = 24 100 Width = 518100 Width = 648 101 101 Anchors = [akTop, akLeft, akRight, akBottom] 102 102 Columns = < … … 107 107 item 108 108 Caption = 'Value' 109 Width = 321109 Width = 428 110 110 end> 111 111 ReadOnly = True … … 114 114 end 115 115 object LabelTestName: TLabel 116 Left = 1 68117 Height = 14116 Left = 144 117 Height = 26 118 118 Top = 8 119 Width = 1 0119 Width = 15 120 120 Caption = ' ' 121 121 ParentColor = False 122 122 end 123 123 object Label1: TLabel 124 Left = 8125 Height = 14126 Top = 408127 Width = 62124 Left = 10 125 Height = 26 126 Top = 554 127 Width = 111 128 128 Anchors = [akLeft, akBottom] 129 129 Caption = 'Benchmarks:' … … 133 133 Left = 8 134 134 Height = 24 135 Top = 488136 Width = 152135 Top = 646 136 Width = 264 137 137 Anchors = [akLeft, akBottom] 138 Caption = 'T List<Pointer>'138 Caption = 'TGList<Pointer>' 139 139 OnClick = ButtonBenchmarkListPointerClick 140 140 TabOrder = 10 141 141 end 142 object StreamByteButton: TButton143 Left = 8142 object ButtonStreamByte: TButton 143 Left = 10 144 144 Height = 25 145 145 Top = 224 146 Width = 152147 Caption = 'T Stream<Byte>'148 OnClick = StreamByteButtonClick146 Width = 264 147 Caption = 'TMemoryStreamByte' 148 OnClick = ButtonStreamByteClick 149 149 TabOrder = 11 150 150 end 151 object TreeButton: TButton152 Left = 8153 Height = 25154 Top = 256155 Width = 152156 Caption = 'TTree<string>'157 OnClick = TreeButtonClick158 TabOrder = 12159 end160 151 end -
Generics/NativeGenerics/Demo/UMainForm.pas
r481 r496 7 7 uses 8 8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, 9 ComCtrls, GenericList, GenericDictionary, GenericQueue, GenericStream,10 DateUtils, GenericString, GenericTree;9 ComCtrls, DateUtils, GenericList, GenericMatrix, GenericQueue, fgl, 10 GenericDictionary, SpecializedStream, SpecializedList; 11 11 12 12 type … … 15 15 16 16 TMainForm = class(TForm) 17 TreeButton: TButton; 18 StreamByteButton: TButton; 17 ButtonStreamByte: TButton; 19 18 ButtonBenchmarkDictionary: TButton; 20 19 ButtonBenchmarkListPointer: TButton; 21 ListObjectButton: TButton;20 ButtonListObject: TButton; 22 21 ButtonBenchmarkListString: TButton; 23 CharListButton: TButton;24 MatrixIntegerButton: TButton;25 QueueIntegerButton: TButton;26 DictionaryStringButton: TButton;27 IntegerListButton: TButton;28 StringListButton: TButton;22 ButtonCharList: TButton; 23 ButtonMatrixInteger: TButton; 24 ButtonQueueInteger: TButton; 25 ButtonDictionaryString: TButton; 26 ButtonIntegerList: TButton; 27 ButtonStringList: TButton; 29 28 Label1: TLabel; 30 29 LabelTestName: TLabel; … … 33 32 procedure ButtonBenchmarkListPointerClick(Sender: TObject); 34 33 procedure ButtonBenchmarkListStringClick(Sender: TObject); 35 procedure CharListButtonClick(Sender: TObject);36 procedure DictionaryStringButtonClick(Sender: TObject);37 procedure IntegerListButtonClick(Sender: TObject);38 procedure MatrixIntegerButtonClick(Sender: TObject);39 procedure ListObjectButtonClick(Sender: TObject);40 procedure QueueIntegerButtonClick(Sender: TObject);41 procedure StreamByteButtonClick(Sender: TObject);42 procedure StringListButtonClick(Sender: TObject);34 procedure ButtonCharListClick(Sender: TObject); 35 procedure ButtonDictionaryStringClick(Sender: TObject); 36 procedure ButtonIntegerListClick(Sender: TObject); 37 procedure ButtonMatrixIntegerClick(Sender: TObject); 38 procedure ButtonListObjectClick(Sender: TObject); 39 procedure ButtonQueueIntegerClick(Sender: TObject); 40 procedure ButtonStringListClick(Sender: TObject); 41 procedure ButtonStreamByteClick(Sender: TObject); 43 42 procedure FormCreate(Sender: TObject); 44 43 procedure FormDestroy(Sender: TObject); 45 procedure TreeButtonClick(Sender: TObject);46 private47 44 public 48 45 MeasureDuration: TDateTime; 46 Bitmap: TBitmap; 49 47 procedure UpdateButtonState(Enabled: Boolean); 50 48 procedure WriteOutput(Text1: string = ''; Text2: string = ''); … … 65 63 end; 66 64 67 procedure TMainForm. IntegerListButtonClick(Sender: TObject);65 procedure TMainForm.ButtonIntegerListClick(Sender: TObject); 68 66 var 69 67 List: TGList<Integer>; … … 72 70 begin 73 71 ListViewOutput.Clear; 74 LabelTestName.Caption := 'T GList<Integer>test';72 LabelTestName.Caption := 'TListInteger test'; 75 73 List := TGList<Integer>.Create; 76 74 List2 := TGList<Integer>.Create; … … 87 85 WriteOutput('First', IntToStr(First)); 88 86 WriteOutput('Last', IntToStr(Last)); 87 WriteOutput('IndexOf(7)', IntToStr(IndexOf(7))); 89 88 MoveItems(3, 2, 3); 90 89 WriteOutput('MoveItems(3, 2, 3)', Implode(',', IntToStr)); … … 107 106 end; 108 107 109 procedure TMainForm.MatrixIntegerButtonClick(Sender: TObject); 110 //var 111 // Matrix: TGMatrix<Integer, Integer, Integer>; 112 begin 113 (* ListViewOutput.Clear; 114 LabelTestName.Caption := 'TGMatrix<Integer> test'; 115 Matrix := TGMatrix<Integer, Integer, Integer>.Create; 108 procedure TMainForm.ButtonMatrixIntegerClick(Sender: TObject); 109 var 110 Matrix: TGMatrix<Integer>; 111 I: Integer; 112 begin 113 ListViewOutput.Clear; 114 LabelTestName.Caption := 'TMatrixInteger test'; 115 Matrix := TGMatrix<Integer>.Create; 116 116 with Matrix do try 117 117 Count := CreateIndex(2, 2); … … 127 127 finally 128 128 Free; 129 end; *) 130 end; 131 132 function ObjectToStr(Obj: TObject): string; 133 begin 134 Result := Obj.ClassName; 135 end; 136 137 procedure TMainForm.ListObjectButtonClick(Sender: TObject); 138 var 139 List: TGObjectList<TObject>; 140 I: Integer; 141 begin 142 ListViewOutput.Clear; 143 LabelTestName.Caption := 'TObjectList<TObject> test'; 144 List := TGObjectList<TObject>.Create; 145 with List do try 146 AddArray([TObject.Create, TObject.Create, TObject.Create, TObject.Create]); 147 WriteOutput('AddArray([TObject.Create, TObject.Create, TObject.Create, TObject.Create])', Implode(',', ObjectToStr)); 148 Clear; 149 WriteOutput('Clear', Implode(',', ObjectToStr)); 150 for I := 0 to 10 do Add(TObject.Create); 151 WriteOutput('for I := 0 to 10 do Add(TObject.Create)', Implode(',', ObjectToStr)); 152 WriteOutput('Count', IntToStr(Count)); 153 Reverse; 154 WriteOutput('Reverse', Implode(',', ObjectToStr)); 155 MoveItems(3, 2, 3); 156 WriteOutput('MoveItems(3, 2, 3)', Implode(',', ObjectToStr)); 157 finally 158 Free; 159 end; 160 end; 161 162 procedure TMainForm.QueueIntegerButtonClick(Sender: TObject); 163 var 164 Queue: TGQueue<Integer>; 165 begin 166 ListViewOutput.Clear; 167 LabelTestName.Caption := 'TGQueue<Integer> test'; 168 Queue := TGQueue<Integer>.Create; 169 with Queue do try 170 Enqueue(1); 171 Enqueue(2); 172 Enqueue(3); 173 WriteOutput('Enqueue(1),Enqueue(2),Enqueue(3) ', List.Implode(',', IntToStr)); 174 Enqueue(4); 175 WriteOutput('Enqueue(4)', List.Implode(',', IntToStr)); 176 WriteOutput('Dequeued item', IntToStr(Dequeue)); 177 WriteOutput('Dequeue', List.Implode(',', IntToStr)); 178 finally 179 Free; 180 end; 181 end; 182 183 procedure TMainForm.StreamByteButtonClick(Sender: TObject); 184 var 185 Stream: TGStream<Byte>; 129 end; 130 end; 131 132 procedure TMainForm.ButtonStreamByteClick(Sender: TObject); 133 var 134 Stream: TMemoryStreamByte; 186 135 I: Integer; 187 136 ByteArray: array of Byte; … … 189 138 begin 190 139 ListViewOutput.Clear; 191 LabelTestName.Caption := 'T GStream<Byte>test';192 Stream := T GStream<Byte>.Create;140 LabelTestName.Caption := 'TStreamByte test'; 141 Stream := TMemoryStreamByte.Create; 193 142 with Stream do try 194 143 WriteOutput('Size := ', IntToStr(Stream.Size)); … … 218 167 end; 219 168 220 function StringPairToStr(Pair: TGPair<String, String>): string; 169 function ObjectToStr(Obj: TObject): string; 170 begin 171 Result := Obj.ClassName; 172 end; 173 174 procedure TMainForm.ButtonListObjectClick(Sender: TObject); 175 var 176 List: TGListObject<TObject>; 177 I: Integer; 178 begin 179 ListViewOutput.Clear; 180 LabelTestName.Caption := 'TListObject test'; 181 List := TGListObject<TObject>.Create; 182 with List do try 183 AddArray([TObject.Create, TObject.Create, TObject.Create, TObject.Create]); 184 WriteOutput('AddArray([TObject.Create, TObject.Create, TObject.Create, TObject.Create])', Implode(',', ObjectToStr)); 185 Clear; 186 WriteOutput('Clear', Implode(',', ObjectToStr)); 187 for I := 0 to 10 do Add(TObject.Create); 188 WriteOutput('for I := 0 to 10 do Add(TObject.Create)', Implode(',', ObjectToStr)); 189 WriteOutput('Count', IntToStr(Count)); 190 Reverse; 191 WriteOutput('Reverse', Implode(',', ObjectToStr)); 192 MoveItems(3, 2, 3); 193 WriteOutput('MoveItems(3, 2, 3)', Implode(',', ObjectToStr)); 194 finally 195 Free; 196 end; 197 end; 198 199 procedure TMainForm.ButtonQueueIntegerClick(Sender: TObject); 200 var 201 Queue: TGQueue<Integer>; 202 I: Integer; 203 begin 204 ListViewOutput.Clear; 205 LabelTestName.Caption := 'TQueueInteger test'; 206 Queue := TGQueue<Integer>.Create; 207 with Queue do try 208 Enqueue(1); 209 Enqueue(2); 210 Enqueue(3); 211 WriteOutput('Enqueue(1),Enqueue(2),Enqueue(3) ', List.Implode(',', IntToStr)); 212 Enqueue(4); 213 WriteOutput('Enqueue(4)', List.Implode(',', IntToStr)); 214 WriteOutput('Dequeued item', IntToStr(Dequeue)); 215 WriteOutput('Dequeue', List.Implode(',', IntToStr)); 216 finally 217 Free; 218 end; 219 end; 220 221 function StringPairToStr(Pair: TGPair<string,string>): string; 221 222 begin 222 223 Result := Pair.Key + ':' + Pair.Value; 223 224 end; 224 225 225 procedure TMainForm.DictionaryStringButtonClick(Sender: TObject); 226 //type 227 // TPairStringString = TGPair<string, string>; 226 procedure TMainForm.ButtonDictionaryStringClick(Sender: TObject); 228 227 var 229 228 Dictionary: TGDictionary<string, string>; 230 229 begin 231 230 ListViewOutput.Clear; 232 LabelTestName.Caption := 'T GDictionary<string, string>test';231 LabelTestName.Caption := 'TDictionaryString test'; 233 232 Dictionary := TGDictionary<string, string>.Create; 234 233 with Dictionary do try … … 241 240 Values['Key2'] := 'None'; 242 241 WriteOutput('Values[Key2]', Values['Key2']); 243 WriteOutput(' Index of Key0', IntToStr(SearchKey('Key0')));242 WriteOutput('Values[Key0]', Values['Key0']); 244 243 WriteOutput('Keys[2]', Keys[2]); 245 244 finally … … 253 252 end; 254 253 255 procedure TMainForm. CharListButtonClick(Sender: TObject);256 var 257 List: T GString<Char>;258 List2: T GString<Char>;259 begin 260 ListViewOutput.Clear; 261 LabelTestName.Caption := 'T GString<Char>test';262 List := T GString<Char>.Create;263 List2 := T GString<Char>.Create;254 procedure TMainForm.ButtonCharListClick(Sender: TObject); 255 var 256 List: TListChar; 257 List2: TListChar; 258 begin 259 ListViewOutput.Clear; 260 LabelTestName.Caption := 'TListChar test'; 261 List := TListChar.Create; 262 List2 := TListChar.Create; 264 263 with List do try 265 264 AddArray([' ', ' ', 'A', 'b', 'c', 'd', ' ']); … … 287 286 procedure TMainForm.ButtonBenchmarkListStringClick(Sender: TObject); 288 287 var 289 List: TGList< String>;288 List: TGList<string>; 290 289 List2: TStringList; 291 290 StartTime: TDateTime; … … 295 294 SampleCount: Integer = 100000; 296 295 begin 297 LabelTestName.Caption := 'Generic specialized T GStringList<string>vs. classic non-generic TStringList benchmark';296 LabelTestName.Caption := 'Generic specialized TListString vs. classic non-generic TStringList benchmark'; 298 297 ListViewOutput.Clear; 299 298 try 300 299 UpdateButtonState(False); 301 List := TGList< String>.Create;300 List := TGList<string>.Create; 302 301 List2 := TStringList.Create; 303 302 … … 306 305 List.Add(SampleText); 307 306 until (Now - StartTime) > MeasureDuration; 308 WriteOutput('T ListString.Add', IntToStr(List.Count) + ' ops');307 WriteOutput('TGList<String>.Add', IntToStr(List.Count) + ' ops'); 309 308 List.Clear; 310 309 Application.ProcessMessages; … … 322 321 List.Insert(0, SampleText); 323 322 until (Now - StartTime) > MeasureDuration; 324 WriteOutput('T ListString.Insert', IntToStr(List.Count) + ' ops');323 WriteOutput('TGList<String>.Insert', IntToStr(List.Count) + ' ops'); 325 324 List.Clear; 326 325 Application.ProcessMessages; … … 342 341 Inc(I); 343 342 until (Now - StartTime) > MeasureDuration; 344 WriteOutput('T ListString.Delete', IntToStr(I) + ' ops');343 WriteOutput('TGList<String>.Delete', IntToStr(I) + ' ops'); 345 344 List.Clear; 346 345 Application.ProcessMessages; … … 365 364 Inc(I); 366 365 until (Now - StartTime) > MeasureDuration; 367 WriteOutput('T ListString.Move', IntToStr(I) + ' ops');366 WriteOutput('TGList<String>.Move', IntToStr(I) + ' ops'); 368 367 List.Clear; 369 368 Application.ProcessMessages; … … 388 387 Inc(I); 389 388 until (Now - StartTime) > MeasureDuration; 390 WriteOutput('T ListString.Exchange', IntToStr(I) + ' ops');389 WriteOutput('TGList<String>.Exchange', IntToStr(I) + ' ops'); 391 390 List.Clear; 392 391 Application.ProcessMessages; … … 411 410 Inc(I); 412 411 until (Now - StartTime) > MeasureDuration; 413 WriteOutput('T ListString.IndexOf', IntToStr(I) + ' ops');412 WriteOutput('TGList<String>.IndexOf', IntToStr(I) + ' ops'); 414 413 List.Clear; 415 414 Application.ProcessMessages; … … 434 433 435 434 procedure TMainForm.ButtonBenchmarkDictionaryClick(Sender: TObject); 436 //type 437 // TPairStringString = TGPair<String, String>; 438 var 439 Dictionary: TGDictionary<string, string>; 435 var 436 Dictionary: TGDictionary<string,string>; 440 437 Dictionary2: TStringList; 441 438 StartTime: TDateTime; … … 443 440 R: string; 444 441 begin 445 LabelTestName.Caption := 'Generic specialized T GDictionary<string,string>vs. classic non-generic TStringList benchmark';442 LabelTestName.Caption := 'Generic specialized TDictionaryStringString vs. classic non-generic TStringList benchmark'; 446 443 ListViewOutput.Clear; 447 444 try 448 445 UpdateButtonState(False); 449 Dictionary := TGDictionary<string, 446 Dictionary := TGDictionary<string,string>.Create; 450 447 Dictionary2 := TStringList.Create; 451 448 Dictionary2.NameValueSeparator := '|'; … … 457 454 I := I + 1; 458 455 until (Now - StartTime) > MeasureDuration; 459 WriteOutput('T DictionaryStringString.Add', IntToStr(Dictionary.List.Count) + ' ops');456 WriteOutput('TGDictionary<string,string>.Add', IntToStr(Dictionary.Count) + ' ops'); 460 457 Application.ProcessMessages; 461 458 … … 472 469 StartTime := Now; 473 470 repeat 474 R := Dictionary.Values[IntToStr(I mod Dictionary. List.Count)];471 R := Dictionary.Values[IntToStr(I mod Dictionary.Count)]; 475 472 I := I + 1; 476 473 until (Now - StartTime) > MeasureDuration; 477 WriteOutput('T DictionaryStringString.Values', IntToStr(I) + ' ops');474 WriteOutput('TGDictionary<string,string>.Values', IntToStr(I) + ' ops'); 478 475 Application.ProcessMessages; 479 476 … … 490 487 StartTime := Now; 491 488 repeat 492 R := Dictionary.Keys[I mod Dictionary. List.Count];489 R := Dictionary.Keys[I mod Dictionary.Count]; 493 490 I := I + 1; 494 491 until (Now - StartTime) > MeasureDuration; 495 WriteOutput('T DictionaryStringString.Keys', IntToStr(I) + ' ops');492 WriteOutput('TGDictionary<string,string>.Keys', IntToStr(I) + ' ops'); 496 493 Application.ProcessMessages; 497 494 … … 508 505 StartTime := Now; 509 506 repeat 510 R := Dictionary.List.Items[I mod Dictionary. List.Count].Value;507 R := Dictionary.List.Items[I mod Dictionary.Count].Value; 511 508 I := I + 1; 512 509 until (Now - StartTime) > MeasureDuration; 513 WriteOutput('T DictionaryStringString.Items', IntToStr(I) + ' ops');510 WriteOutput('TGDictionary<string,string>.Items', IntToStr(I) + ' ops'); 514 511 Application.ProcessMessages; 515 512 … … 534 531 List: TGList<Pointer>; 535 532 List2: TFPList; 533 List3: TFPGList<Pointer>; 534 S: TList; 536 535 StartTime: TDateTime; 537 536 I: Integer; 537 K: Integer; 538 538 const 539 539 SampleCount: Integer = 100000; 540 540 begin 541 LabelTestName.Caption := 'Generic specialized T GObjectList<Object>vs. classic non-generic TFPList benchmark';541 LabelTestName.Caption := 'Generic specialized TListObject vs. classic non-generic TFPList benchmark'; 542 542 ListViewOutput.Clear; 543 543 try … … 545 545 List := TGList<Pointer>.Create; 546 546 List2 := TFPList.Create; 547 548 WriteOutput('TListPointer.InstanceSize', IntToStr(TGList<Pointer>.InstanceSize) + ' bytes'); 547 List3 := TFPGList<Pointer>.Create; 548 549 WriteOutput('TGList<Pointer>.InstanceSize', IntToStr(TGList<Pointer>.InstanceSize) + ' bytes'); 549 550 WriteOutput('TFPList.InstanceSize', IntToStr(TFPList.InstanceSize) + ' bytes'); 551 WriteOutput('TFPGList<Pointer>.InstanceSize', IntToStr(TFPGList<Pointer>.InstanceSize) + ' bytes'); 550 552 551 553 StartTime := Now; … … 553 555 List.Add(Pointer(1)); 554 556 until (Now - StartTime) > MeasureDuration; 555 WriteOutput('T ListPointer.Add', IntToStr(List.Count) + ' ops');557 WriteOutput('TGList<Pointer>.Add', IntToStr(List.Count) + ' ops'); 556 558 List.Clear; 557 559 Application.ProcessMessages; … … 567 569 StartTime := Now; 568 570 repeat 571 List3.Add(Pointer(1)); 572 until (Now - StartTime) > MeasureDuration; 573 WriteOutput('TFPGList<Pointer>.Add', IntToStr(List3.Count) + ' ops'); 574 List3.Clear; 575 Application.ProcessMessages; 576 577 StartTime := Now; 578 repeat 569 579 List.Insert(0, Pointer(1)); 570 580 until (Now - StartTime) > MeasureDuration; 571 WriteOutput('T ListPointer.Insert', IntToStr(List.Count) + ' ops');581 WriteOutput('TGList<Pointer>.Insert', IntToStr(List.Count) + ' ops'); 572 582 List.Clear; 573 583 Application.ProcessMessages; … … 581 591 Application.ProcessMessages; 582 592 593 StartTime := Now; 594 repeat 595 List3.Insert(0, Pointer(1)); 596 until (Now - StartTime) > MeasureDuration; 597 WriteOutput('TFPGList<Pointer>.Insert', IntToStr(List3.Count) + ' ops'); 598 List3.Clear; 599 Application.ProcessMessages; 600 583 601 for I := 0 to SampleCount - 1 do 584 602 List.Add(Pointer(1)); … … 589 607 Inc(I); 590 608 until (Now - StartTime) > MeasureDuration; 591 WriteOutput('T ListPointer.Delete', IntToStr(I) + ' ops');609 WriteOutput('TGList<Pointer>.Delete', IntToStr(I) + ' ops'); 592 610 List.Clear; 593 611 Application.ProcessMessages; … … 605 623 606 624 for I := 0 to SampleCount - 1 do 625 List3.Add(Pointer(1)); 626 StartTime := Now; 627 I := 0; 628 repeat 629 List3.Delete(0); 630 Inc(I); 631 until (Now - StartTime) > MeasureDuration; 632 WriteOutput('TFPGList<Pointer>.Delete', IntToStr(I) + ' ops'); 633 Application.ProcessMessages; 634 635 for I := 0 to SampleCount - 1 do 607 636 List.Add(Pointer(1)); 608 637 StartTime := Now; … … 612 641 Inc(I); 613 642 until (Now - StartTime) > MeasureDuration; 614 WriteOutput('T ListPointer.Move', IntToStr(I) + ' ops');615 List.Clear; 616 Application.ProcessMessages; 617 618 for I := 0 to SampleCount - 1 do 619 List2.Add(Pointer(1));643 WriteOutput('TGList<Pointer>.Move', IntToStr(I) + ' ops'); 644 List.Clear; 645 Application.ProcessMessages; 646 647 for I := 0 to SampleCount - 1 do 648 List2.Add(Pointer(1)); 620 649 StartTime := Now; 621 650 I := 0; … … 628 657 629 658 for I := 0 to SampleCount - 1 do 659 List3.Add(Pointer(1)); 660 StartTime := Now; 661 I := 0; 662 repeat 663 List3.Move(Round(SampleCount * 0.3), Round(SampleCount * 0.7)); 664 Inc(I); 665 until (Now - StartTime) > MeasureDuration; 666 WriteOutput('TFPGList<Pointer>.Move', IntToStr(I) + ' ops'); 667 Application.ProcessMessages; 668 669 for I := 0 to SampleCount - 1 do 630 670 List.Add(Pointer(1)); 631 671 StartTime := Now; … … 635 675 Inc(I); 636 676 until (Now - StartTime) > MeasureDuration; 637 WriteOutput('TListPointer.Exchange', IntToStr(I) + ' ops'); 638 List.Clear; 639 Application.ProcessMessages; 640 641 for I := 0 to SampleCount - 1 do 642 List2.Add(Pointer(1)); 677 WriteOutput('TGList<Pointer>.Exchange', IntToStr(I) + ' ops'); 678 Application.ProcessMessages; 679 680 for I := 0 to SampleCount - 1 do 681 List2.Add(Pointer(1)); 643 682 StartTime := Now; 644 683 I := 0; … … 651 690 652 691 for I := 0 to SampleCount - 1 do 692 List3.Add(Pointer(1)); 693 StartTime := Now; 694 I := 0; 695 repeat 696 List3.Exchange(Round(SampleCount * 0.3), Round(SampleCount * 0.7)); 697 Inc(I); 698 until (Now - StartTime) > MeasureDuration; 699 WriteOutput('TFPGList<Pointer>.Exchange', IntToStr(I) + ' ops'); 700 Application.ProcessMessages; 701 702 for I := 0 to SampleCount - 1 do 703 List.Add(Pointer(I)); 704 StartTime := Now; 705 I := 0; 706 repeat 707 K := List.IndexOf(Pointer(I mod List.Count)); 708 Inc(I); 709 until (Now - StartTime) > MeasureDuration; 710 WriteOutput('TGList<Pointer>.IndexOf', IntToStr(I) + ' ops'); 711 List.Clear; 712 Application.ProcessMessages; 713 714 for I := 0 to SampleCount - 1 do 715 List2.Add(Pointer(I)); 716 StartTime := Now; 717 I := 0; 718 repeat 719 K := List2.IndexOf(Pointer(I mod List2.Count)); 720 Inc(I); 721 until (Now - StartTime) > MeasureDuration; 722 WriteOutput('TFPList.IndexOf', IntToStr(I) + ' ops'); 723 Application.ProcessMessages; 724 725 for I := 0 to SampleCount - 1 do 726 List3.Add(Pointer(I)); 727 StartTime := Now; 728 I := 0; 729 repeat 730 K := List3.IndexOf(Pointer(I mod List3.Count)); 731 Inc(I); 732 until (Now - StartTime) > MeasureDuration; 733 WriteOutput('TFPGList<Pointer>.IndexOf', IntToStr(I) + ' ops'); 734 Application.ProcessMessages; 735 736 for I := 0 to SampleCount - 1 do 653 737 List.Add(Pointer(1)); 654 738 StartTime := Now; 655 739 I := 0; 656 740 repeat 657 List.IndexOf(Pointer(I mod List.Count)); 658 Inc(I); 659 until (Now - StartTime) > MeasureDuration; 660 WriteOutput('TListPointer.IndexOf', IntToStr(I) + ' ops'); 661 List.Clear; 662 Application.ProcessMessages; 663 664 for I := 0 to SampleCount - 1 do 665 List2.Add(Pointer(1)); 666 StartTime := Now; 667 I := 0; 668 repeat 669 List2.IndexOf(Pointer(I mod List2.Count)); 670 Inc(I); 671 until (Now - StartTime) > MeasureDuration; 672 WriteOutput('TFPList.IndexOf', IntToStr(I) + ' ops'); 741 List[I mod List.Count] := Pointer(1); 742 Inc(I); 743 until (Now - StartTime) > MeasureDuration; 744 WriteOutput('TGList<Pointer>[I] write', IntToStr(I) + ' ops'); 745 List.Clear; 746 Application.ProcessMessages; 747 748 for I := 0 to SampleCount - 1 do 749 List2.Add(Pointer(1)); 750 StartTime := Now; 751 I := 0; 752 repeat 753 List2[I mod List2.Count] := Pointer(1); 754 Inc(I); 755 until (Now - StartTime) > MeasureDuration; 756 WriteOutput('TFPList[I] write', IntToStr(I) + ' ops'); 757 Application.ProcessMessages; 758 759 for I := 0 to SampleCount - 1 do 760 List3.Add(Pointer(1)); 761 StartTime := Now; 762 I := 0; 763 repeat 764 List3[I mod List3.Count] := Pointer(1); 765 Inc(I); 766 until (Now - StartTime) > MeasureDuration; 767 WriteOutput('TFPGList<Pointer>[I] write', IntToStr(I) + ' ops'); 673 768 Application.ProcessMessages; 674 769 … … 678 773 I := 0; 679 774 repeat 680 List[I mod List.Count] := Pointer(1);681 Inc(I);682 until (Now - StartTime) > MeasureDuration;683 WriteOutput('TListPointer[I] write', IntToStr(I) + ' ops');684 List.Clear;685 Application.ProcessMessages;686 687 for I := 0 to SampleCount - 1 do688 List2.Add(Pointer(1));689 StartTime := Now;690 I := 0;691 repeat692 List2[I mod List2.Count] := Pointer(1);693 Inc(I);694 until (Now - StartTime) > MeasureDuration;695 WriteOutput('TFPList[I] write', IntToStr(I) + ' ops');696 Application.ProcessMessages;697 698 for I := 0 to SampleCount - 1 do699 List.Add(Pointer(1));700 StartTime := Now;701 I := 0;702 repeat703 775 List[I mod List.Count]; 704 776 Inc(I); 705 777 until (Now - StartTime) > MeasureDuration; 706 WriteOutput('T ListPointer[I] read', IntToStr(I) + ' ops');707 List.Clear; 708 Application.ProcessMessages; 709 710 for I := 0 to SampleCount - 1 do 711 List2.Add(Pointer(1));778 WriteOutput('TGList<Pointer>[I] read', IntToStr(I) + ' ops'); 779 List.Clear; 780 Application.ProcessMessages; 781 782 for I := 0 to SampleCount - 1 do 783 List2.Add(Pointer(1)); 712 784 StartTime := Now; 713 785 I := 0; … … 718 790 WriteOutput('TFPList[I] read', IntToStr(I) + ' ops'); 719 791 Application.ProcessMessages; 792 793 for I := 0 to SampleCount - 1 do 794 List3.Add(Pointer(1)); 795 StartTime := Now; 796 I := 0; 797 repeat 798 List3[I mod List3.Count]; 799 Inc(I); 800 until (Now - StartTime) > MeasureDuration; 801 WriteOutput('TFPGList<Pointer>[I] read', IntToStr(I) + ' ops'); 802 Application.ProcessMessages; 803 720 804 finally 721 805 UpdateButtonState(True); 722 806 List.Free; 723 807 List2.Free; 808 List3.Free; 724 809 end; 725 810 end; … … 730 815 end; 731 816 732 procedure TMainForm. StringListButtonClick(Sender: TObject);733 var 734 List: TGList< String>;735 begin 736 ListViewOutput.Clear; 737 WriteOutput('T GList<string>test');738 List := TGList< String>.Create;817 procedure TMainForm.ButtonStringListClick(Sender: TObject); 818 var 819 List: TGList<string>; 820 begin 821 ListViewOutput.Clear; 822 WriteOutput('TListString test'); 823 List := TGList<string>.Create; 739 824 with List do try 740 825 AddArray(['One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven']); … … 761 846 end; 762 847 763 procedure TMainForm.TreeButtonClick(Sender: TObject);764 var765 //Tree: TGTree<string>;766 //Tree2: TGTree<string>;767 I: Integer;768 begin769 (* ListViewOutput.Clear;770 LabelTestName.Caption := 'TGTree<string> test';771 Tree := TGTree<string>.Create;772 Tree2 := TGTree<string>.Create;773 with Tree do try774 Tree.TopItem.Add('test');775 AddArray([10, 20, 30, 40]);776 WriteOutput('AddArray([10, 20, 30, 40])', Implode(',', IntToStr));777 Clear;778 WriteOutput('Clear', Implode(',', IntToStr));779 for I := 0 to 10 do Add(I);780 WriteOutput('for I := 0 to 10 do Add(I)', Implode(',', IntToStr));781 WriteOutput('Count', IntToStr(Count));782 Reverse;783 WriteOutput('Reverse', Implode(',', IntToStr));784 WriteOutput('First', IntToStr(First));785 WriteOutput('Last', IntToStr(Last));786 MoveItems(3, 2, 3);787 WriteOutput('MoveItems(3, 2, 3)', Implode(',', IntToStr));788 Insert(5, 11);789 WriteOutput('Insert(5, 11)', Implode(',', IntToStr));790 DeleteItems(0, 10);791 WriteOutput('Delete(0, 10)', Implode(',', IntToStr));792 List2.SetArray([1, 0]);793 WriteOutput('EqualTo([6, 11])', BoolToStr(EqualTo(List2)));794 List2.SetArray([2, 0]);795 WriteOutput('EqualTo([7, 11])', BoolToStr(EqualTo(List2)));796 InsertCount(0, 3);797 WriteOutput('InsertCount(0, 3)', Implode(',', IntToStr));798 Fill(0, 3, 9);799 WriteOutput('Fill(0, 3, 9)', Implode(',', IntToStr));800 finally801 Free;802 Tree2.Free;803 end; *)804 end;805 806 848 procedure TMainForm.UpdateButtonState(Enabled: Boolean); 807 849 begin 808 850 ButtonBenchmarkDictionary.Enabled := Enabled; 809 851 ButtonBenchmarkListString.Enabled := Enabled; 810 CharListButton.Enabled := Enabled;811 DictionaryStringButton.Enabled := Enabled;812 IntegerListButton.Enabled := Enabled;813 ListObjectButton.Enabled := Enabled;814 MatrixIntegerButton.Enabled := Enabled;815 QueueIntegerButton.Enabled := Enabled;816 StringListButton.Enabled := Enabled;852 ButtonCharList.Enabled := Enabled; 853 ButtonDictionaryString.Enabled := Enabled; 854 ButtonIntegerList.Enabled := Enabled; 855 ButtonListObject.Enabled := Enabled; 856 ButtonMatrixInteger.Enabled := Enabled; 857 ButtonQueueInteger.Enabled := Enabled; 858 ButtonStringList.Enabled := Enabled; 817 859 end; 818 860 -
Generics/NativeGenerics/NativeGenerics.lpk
r458 r496 1 <?xml version="1.0" ?>1 <?xml version="1.0" encoding="UTF-8"?> 2 2 <CONFIG> 3 3 <Package Version="4"> 4 <PathDelim Value="\"/>5 4 <Name Value="NativeGenerics"/> 6 <AddToProjectUsesSection Value="True"/> 7 <Author Value="Chronos (robie@centrum.cz)"/> 5 <Type Value="RunAndDesignTime"/> 8 6 <CompilerOptions> 9 7 <Version Value="11"/> 10 <PathDelim Value="\"/>11 8 <SearchPaths> 12 <OtherUnitFiles Value="Units;Additional"/> 13 <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 9 <IncludeFiles Value="Generic"/> 10 <OtherUnitFiles Value="Generic;Specialized;Additional"/> 11 <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)/"/> 14 12 </SearchPaths> 15 <CodeGeneration>16 <Checks>17 <IOChecks Value="True"/>18 <RangeChecks Value="True"/>19 <OverflowChecks Value="True"/>20 <StackChecks Value="True"/>21 </Checks>22 </CodeGeneration>23 <Other>24 <CompilerPath Value="$(CompPath)"/>25 </Other>26 13 </CompilerOptions> 27 <Description Value="Native generics library. 28 Require FPC 2.7.1"/> 29 <License Value="GNU/GPLv3"/> 30 <Version Minor="2"/> 31 <Files Count="15"> 14 <Files Count="17"> 32 15 <Item1> 33 <Filename Value=" ReadMe.txt"/>34 < Type Value="Text"/>16 <Filename Value="Generic/GenericBitmap.pas"/> 17 <UnitName Value="GenericBitmap"/> 35 18 </Item1> 36 19 <Item2> 37 <Filename Value=" Units\GenericList.pas"/>38 <UnitName Value="Generic List"/>20 <Filename Value="Generic/GenericDictionary.pas"/> 21 <UnitName Value="GenericDictionary"/> 39 22 </Item2> 40 23 <Item3> 41 <Filename Value=" Units\GenericTree.pas"/>42 < UnitName Value="GenericTree"/>24 <Filename Value="Generic/GenericFileList.pas"/> 25 <Type Value="Include"/> 43 26 </Item3> 44 27 <Item4> 45 <Filename Value=" Units\GenericDictionary.pas"/>46 <UnitName Value="Generic Dictionary"/>28 <Filename Value="Generic/GenericList.pas"/> 29 <UnitName Value="GenericList"/> 47 30 </Item4> 48 31 <Item5> 49 <Filename Value=" Units\GenericQueue.pas"/>50 <UnitName Value="Generic Queue"/>32 <Filename Value="Generic/GenericMatrix.pas"/> 33 <UnitName Value="GenericMatrix"/> 51 34 </Item5> 52 35 <Item6> 53 <Filename Value=" Units\GenericRange.pas"/>54 <UnitName Value="Generic Range"/>36 <Filename Value="Generic/GenericPoint.pas"/> 37 <UnitName Value="GenericPoint"/> 55 38 </Item6> 56 39 <Item7> 57 <Filename Value=" Units\GenericSet.pas"/>58 <UnitName Value="Generic Set"/>40 <Filename Value="Generic/GenericQueue.pas"/> 41 <UnitName Value="GenericQueue"/> 59 42 </Item7> 60 43 <Item8> 61 <Filename Value=" Units\GenericStack.pas"/>62 <UnitName Value="Generic Stack"/>44 <Filename Value="Generic/GenericRange.pas"/> 45 <UnitName Value="GenericRange"/> 63 46 </Item8> 64 47 <Item9> 65 <Filename Value=" Units\GenericStream.pas"/>66 <UnitName Value="Generic Stream"/>48 <Filename Value="Generic/GenericRectangle.pas"/> 49 <UnitName Value="GenericRectangle"/> 67 50 </Item9> 68 51 <Item10> 69 <Filename Value=" Units\GenericMatrix.pas"/>70 <UnitName Value="Generic Matrix"/>52 <Filename Value="Generic/GenericSet.pas"/> 53 <UnitName Value="GenericSet"/> 71 54 </Item10> 72 55 <Item11> 73 <Filename Value=" Units\GenericString.pas"/>74 <UnitName Value="GenericSt ring"/>56 <Filename Value="Generic/GenericStack.pas"/> 57 <UnitName Value="GenericStack"/> 75 58 </Item11> 76 59 <Item12> 77 <Filename Value=" Units\GenericBitmap.pas"/>78 <UnitName Value="Generic Bitmap"/>60 <Filename Value="Generic/GenericStream.pas"/> 61 <UnitName Value="GenericStream"/> 79 62 </Item12> 80 63 <Item13> 81 <Filename Value=" Units\GenericRectangle.pas"/>82 <UnitName Value="Generic Rectangle"/>64 <Filename Value="Generic/GenericTree.pas"/> 65 <UnitName Value="GenericTree"/> 83 66 </Item13> 84 67 <Item14> 85 <Filename Value=" Units\GenericPoint.pas"/>86 <UnitName Value=" GenericPoint"/>68 <Filename Value="Specialized/SpecializedList.pas"/> 69 <UnitName Value="SpecializedList"/> 87 70 </Item14> 88 71 <Item15> 89 <Filename Value="Additional\UBinarySerializer.pas"/> 72 <Filename Value="Specialized/SpecializedRectangle.pas"/> 73 <UnitName Value="SpecializedRectangle"/> 74 </Item15> 75 <Item16> 76 <Filename Value="Specialized/SpecializedStream.pas"/> 77 <UnitName Value="SpecializedStream"/> 78 </Item16> 79 <Item17> 80 <Filename Value="Additional/UBinarySerializer.pas"/> 90 81 <UnitName Value="UBinarySerializer"/> 91 </Item1 5>82 </Item17> 92 83 </Files> 93 <Type Value="RunAndDesignTime"/> 94 <RequiredPkgs Count="2"> 84 <RequiredPkgs Count="1"> 95 85 <Item1> 96 <PackageName Value=" LCL"/>86 <PackageName Value="FCL"/> 97 87 </Item1> 98 <Item2>99 <PackageName Value="FCL"/>100 <MinVersion Major="1" Valid="True"/>101 </Item2>102 88 </RequiredPkgs> 103 89 <UsageOptions> -
Generics/NativeGenerics/NativeGenerics.pas
r425 r496 5 5 unit NativeGenerics; 6 6 7 {$warn 5023 off : no warning about unused units} 7 8 interface 8 9 9 10 uses 10 Generic List, GenericTree, GenericDictionary, GenericQueue, GenericRange,11 Generic Set, GenericStack, GenericStream, GenericMatrix, GenericString,12 Generic Bitmap, GenericRectangle, GenericPoint, UBinarySerializer,13 LazarusPackageIntf;11 GenericBitmap, GenericDictionary, GenericList, GenericMatrix, GenericPoint, 12 GenericQueue, GenericRange, GenericRectangle, GenericSet, GenericStack, 13 GenericStream, GenericTree, SpecializedList, SpecializedRectangle, 14 SpecializedStream, UBinarySerializer, LazarusPackageIntf; 14 15 15 16 implementation -
Generics/NativeGenerics/ReadMe.txt
r481 r496 1 Native generics library 2 ================= ======1 Template generics 2 ================= 3 3 4 4 Tutorial and basic information: 5 http://wiki.freepascal.org/ Generics5 http://wiki.freepascal.org/Templates 6 6 7 Version: 0. 28 Release date: 201 2-09-257 Version: 0.3 8 Release date: 2011-01-01 9 9 Author: Chronos 10 10 Email: robie@centrum.cz … … 12 12 13 13 Main subversion repository: 14 http://svn.zdechov.net/svn/PascalClassLibrary/Generics/NativeGenerics 15 16 17 Require FPC version 3.0.0 and newer 18 14 http://svn.zdechov.net/svn/PascalClassLibrary/Generics/TemplateGenerics
Note:
See TracChangeset
for help on using the changeset viewer.