├── .gitignore ├── C4D.DiretivasCompilacao.dpr ├── C4D.DiretivasCompilacao.dproj ├── C4D.DiretivasCompilacao.res ├── C4D.inc ├── Includes └── arquivo_inc_teste.inc ├── README.en.md ├── README.md └── Src ├── Utils.pas ├── View.Main.dfm └── View.Main.pas /.gitignore: -------------------------------------------------------------------------------- 1 | # Uncomment these types if you want even more clean repository. But be careful. 2 | # It can make harm to an existing project source. Read explanations below. 3 | # 4 | # Resource files are binaries containing manifest, project icon and version info. 5 | # They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. 6 | #*.res 7 | # 8 | # Type library file (binary). In old Delphi versions it should be stored. 9 | # Since Delphi 2009 it is produced from .ridl file and can safely be ignored. 10 | #*.tlb 11 | # 12 | # Diagram Portfolio file. Used by the diagram editor up to Delphi 7. 13 | # Uncomment this if you are not using diagrams or use newer Delphi version. 14 | #*.ddp 15 | # 16 | # Visual LiveBindings file. Added in Delphi XE2. 17 | # Uncomment this if you are not using LiveBindings Designer. 18 | #*.vlb 19 | # 20 | # Deployment Manager configuration file for your project. Added in Delphi XE2. 21 | # Uncomment this if it is not mobile development and you do not use remote debug feature. 22 | #*.deployproj 23 | # 24 | # C++ object files produced when C/C++ Output file generation is configured. 25 | # Uncomment this if you are not using external objects (zlib library for example). 26 | #*.obj 27 | # 28 | 29 | # Delphi compiler-generated binaries (safe to delete) 30 | *.exe 31 | *.dll 32 | *.bpl 33 | *.bpi 34 | *.dcp 35 | *.so 36 | *.apk 37 | *.drc 38 | *.map 39 | *.dres 40 | *.rsm 41 | *.tds 42 | *.dcu 43 | *.lib 44 | *.a 45 | *.o 46 | *.ocx 47 | 48 | # Delphi autogenerated files (duplicated info) 49 | *.cfg 50 | *.hpp 51 | *Resource.rc 52 | 53 | # Delphi local files (user-specific info) 54 | *.local 55 | *.identcache 56 | *.projdata 57 | *.tvsconfig 58 | *.dsk 59 | 60 | # Delphi history and backups 61 | __history/ 62 | __recovery/ 63 | *.~* 64 | 65 | # Castalia statistics file (since XE7 Castalia is distributed with Delphi) 66 | *.stat 67 | 68 | # Boss dependency manager vendor folder https://github.com/HashLoad/boss 69 | modules/ 70 | -------------------------------------------------------------------------------- /C4D.DiretivasCompilacao.dpr: -------------------------------------------------------------------------------- 1 | program C4D.DiretivasCompilacao; 2 | 3 | uses 4 | Vcl.Forms, 5 | View.Main in 'Src\View.Main.pas' {ViewMain}, 6 | Utils in 'Src\Utils.pas'; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.MainFormOnTaskbar := True; 13 | Application.CreateForm(TViewMain, ViewMain); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /C4D.DiretivasCompilacao.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {2669814D-8A47-4CAC-BB61-A5D548E15C60} 4 | 18.8 5 | VCL 6 | C4D.DiretivasCompilacao.dpr 7 | True 8 | Debug 9 | Win32 10 | 3 11 | Application 12 | 13 | 14 | true 15 | 16 | 17 | true 18 | Base 19 | true 20 | 21 | 22 | true 23 | Base 24 | true 25 | 26 | 27 | true 28 | Base 29 | true 30 | 31 | 32 | true 33 | Cfg_1 34 | true 35 | true 36 | 37 | 38 | true 39 | Cfg_1 40 | true 41 | true 42 | 43 | 44 | true 45 | Base 46 | true 47 | 48 | 49 | true 50 | Cfg_2 51 | true 52 | true 53 | 54 | 55 | true 56 | Cfg_2 57 | true 58 | true 59 | 60 | 61 | .\$(Platform)\$(Config) 62 | .\$(Platform)\$(Config) 63 | false 64 | false 65 | false 66 | false 67 | false 68 | System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) 69 | $(BDS)\bin\delphi_PROJECTICON.ico 70 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 71 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 72 | C4D_DiretivasCompilacao 73 | 1046 74 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 75 | ACBR_NAS_OPCOES_DO_PROJETO;$(DCC_Define) 76 | 77 | 78 | DBXSqliteDriver;DBXDb2Driver;vclactnband;vclFireDAC;tethering;FireDACADSDriver;ACBr_BoletoFPDF;ACBr_BPeDabpeESCPOS;ACBr_BPe;HcRest;MEngineFireDAC;FireDACMSSQLDriver;vcltouch;ACBr_NFe;ACBr_NFeDanfeFR;vcldb;svn;ACBr_NFeDanfeESCPOS;ACBr_PAFNFCe;ACBr_OFX;vclib;frxTee26;ACBr_SATExtratoFR;FireDACDBXDriver;HcServer;ACBr_NFSeDanfseFR;vclx;HcEngineFireDAC;ACBr_SATExtratoRL;ACBr_GTIN;RESTBackendComponents;ACBr_Reinf;VCLRESTComponents;fsTee26;vclie;bindengine;CloudService;ACBr_PAF;FireDACMySQLDriver;fsIBX26;ACBr_SATECFVirtual;frx26;HcEngine;C4DMaskEdit;DataSnapClient;ACBr_OpenDelivery;bindcompdbx;ACBr_CTeDacteRL;ACBr_TCP;DBXSybaseASEDriver;IndyIPServer;ACBr_CTe;IndySystem;frxDBX26;fsADO26;ACBr_PagFor;dsnapcon;VirtualTreesR;ACBre_Social;FireDACMSAccDriver;FireDACInfxDriver;fmxFireDAC;vclimg;ACBr_SPEDImportar;bsfd103Rio;mydacvcl260;ACBr_SPED;ACBr_MDFe;emshosting;ACBr_BoletoRL;ACBr_LFD;DBXOdbcDriver;FireDACTDataDriver;FMXTee;crcontrols260;soaprtl;DbxCommonDriver;ACBr_CIOT;C4DWizard;ACBr_NFSeDanfseRL;xmlrtl;DataSnapNativeClient;soapmidas;fmxobj;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;pkItemMenuHelpDelphi;ACBr_Convenio115;appanalytics;ACBr_DebitoAutomatico;IndyIPClient;bindcompvcl;TeeUI;ACBr_NFSeXDANFSeFR;VclSmp;FireDACODBCDriver;mydacfmx260;DataSnapIndy10ServerTransport;HcMemTable;ACBr_Boleto;DataSnapProviderClient;ACBr_SEF2;FireDACMongoDBDriver;ACBr_MDFeDamdfeFR;ACBr_NFSe;RESTComponents;ZComponent;DBXInterBaseDriver;ACBr_NF3e;ZCore;ACBr_TEFD;HcCommons;emsclientfiredac;dacfmx260;DataSnapFireDAC;svnui;FMXAdvancedControls;ACBr_SATWS;DBXMSSQLDriver;ACBr_MDFeDamdfeRL;DatasnapConnectorsFreePascal;PngComponentsD;ACBr_EDI;ACBr_ONE;DBXOracleDriver;inetdb;ACBr_Diversos;ACBr_GNREGuiaFR;FmxTeeUI;emsedge;ACBr_LCDPR;FireDACIBDriver;fmx;fmxdae;DSPack_DXE2;ACBr_CTeDacteFR;MSNPopUp_D104;ZipMasterR;MJ4dl;dacvcl260;ACBr_Ponto;fs26;dbexpress;IndyCore;frxIntIO26;ZParseSql;dsnap;DataSnapCommon;emsclient;FireDACCommon;frxcs26;ACBr_NFSeX;DataSnapConnectors;ACBR_DeSTDA;soapserver;ACBr_SAT;FireDACOracleDriver;DBXMySQLDriver;DBXFirebirdDriver;ACBr_Sintegra;FireDACCommonODBC;FireDACCommonDriver;ACBr_ADRCST;ACBr_GNRE;frxIntIOIndy26;inet;IndyIPCommon;vcl;ACBr_NFeDanfeRL;ACBr_SATExtratoESCPOS;frxDB26;FireDACDb2Driver;ACBr_Integrador;fsDB26;HcClientDataSet;ZDbc;TeeDB;FireDAC;mydac260;HcBaseDataSet;ACBr_Comum;frxe26;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;ACBr_GNREGuiaRL;C4DDateEdit;frxIBX26;MEngine;VDOPrint;ibxpress;Tee;DataSnapServer;ibxbindings;BossExperts;dac260;FireDACDSDriver;vclwinx;mysqlmon260;ACBr_OpenSSL;frxADO26;CustomIPTransport;vcldsnap;ACBr_PIXCD;bindcomp;ZPlain;ACBr_Serial;DBXInformixDriver;frce;ACBr_NFSeXDanfseRL;ACBr_BlocoX;dbxcds;ACBr_NFCeECFVirtual;adortl;ACBr_BoletoFR;ACBr_ANe;dsnapxml;dbrtl;IndyProtocols;inetdbxpress;ACBr_NF3eDANF3eESCPOS;ACBr_MTER;fmxase;$(DCC_UsePackage) 79 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 80 | Debug 81 | true 82 | 1033 83 | $(BDS)\bin\default_app.manifest 84 | 85 | 86 | DBXSqliteDriver;DBXDb2Driver;vclactnband;vclFireDAC;tethering;FireDACADSDriver;HcRest;MEngineFireDAC;FireDACMSSQLDriver;vcltouch;vcldb;vclib;FireDACDBXDriver;HcServer;vclx;HcEngineFireDAC;RESTBackendComponents;VCLRESTComponents;vclie;bindengine;CloudService;FireDACMySQLDriver;HcEngine;DataSnapClient;bindcompdbx;DBXSybaseASEDriver;IndyIPServer;IndySystem;dsnapcon;VirtualTreesR;FireDACMSAccDriver;FireDACInfxDriver;fmxFireDAC;vclimg;emshosting;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;DataSnapNativeClient;soapmidas;fmxobj;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;appanalytics;IndyIPClient;bindcompvcl;TeeUI;VclSmp;FireDACODBCDriver;DataSnapIndy10ServerTransport;HcMemTable;DataSnapProviderClient;FireDACMongoDBDriver;RESTComponents;ZComponent;DBXInterBaseDriver;ZCore;HcCommons;emsclientfiredac;DataSnapFireDAC;DBXMSSQLDriver;DatasnapConnectorsFreePascal;PngComponentsD;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;FireDACIBDriver;fmx;fmxdae;DSPack_DXE2;MJ4dl;dbexpress;IndyCore;ZParseSql;dsnap;DataSnapCommon;emsclient;FireDACCommon;DataSnapConnectors;soapserver;FireDACOracleDriver;DBXMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;inet;IndyIPCommon;vcl;FireDACDb2Driver;HcClientDataSet;ZDbc;TeeDB;FireDAC;HcBaseDataSet;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;MEngine;ibxpress;Tee;DataSnapServer;ibxbindings;FireDACDSDriver;vclwinx;CustomIPTransport;vcldsnap;bindcomp;ZPlain;DBXInformixDriver;dbxcds;adortl;dsnapxml;dbrtl;IndyProtocols;inetdbxpress;fmxase;$(DCC_UsePackage) 87 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) 88 | Debug 89 | true 90 | 1033 91 | $(BDS)\bin\default_app.manifest 92 | 93 | 94 | true 95 | false 96 | true 97 | true 98 | true 99 | DEBUG;$(DCC_Define) 100 | 101 | 102 | false 103 | true 104 | PerMonitorV2 105 | true 106 | 1033 107 | 108 | 109 | true 110 | PerMonitorV2 111 | true 112 | 1033 113 | 114 | 115 | false 116 | RELEASE;$(DCC_Define) 117 | 0 118 | 0 119 | 120 | 121 | true 122 | PerMonitorV2 123 | true 124 | 1033 125 | 126 | 127 | true 128 | PerMonitorV2 129 | true 130 | 1033 131 | 132 | 133 | 134 | MainSource 135 | 136 | 137 |
ViewMain
138 | dfm 139 |
140 | 141 | 142 | Cfg_2 143 | Base 144 | 145 | 146 | Base 147 | 148 | 149 | Cfg_1 150 | Base 151 | 152 |
153 | 154 | Delphi.Personality.12 155 | Application 156 | 157 | 158 | 159 | C4D.DiretivasCompilacao.dpr 160 | 161 | 162 | HcComponentes - HcConnection 163 | Embarcadero DBExpress DataSnap Native Server Components 164 | Embarcadero LiveBindings Components FireMonkey 165 | Microsoft Office 2000 Sample Automation Server Wrapper Components 166 | Microsoft Office XP Sample Automation Server Wrapper Components 167 | 168 | 169 | 170 | 171 | 172 | C4D_DiretivasCompilacao.exe 173 | true 174 | 175 | 176 | 177 | 178 | 1 179 | 180 | 181 | Contents\MacOS 182 | 1 183 | 184 | 185 | 0 186 | 187 | 188 | 189 | 190 | classes 191 | 1 192 | 193 | 194 | classes 195 | 1 196 | 197 | 198 | 199 | 200 | res\xml 201 | 1 202 | 203 | 204 | res\xml 205 | 1 206 | 207 | 208 | 209 | 210 | library\lib\armeabi-v7a 211 | 1 212 | 213 | 214 | 215 | 216 | library\lib\armeabi 217 | 1 218 | 219 | 220 | library\lib\armeabi 221 | 1 222 | 223 | 224 | 225 | 226 | library\lib\armeabi-v7a 227 | 1 228 | 229 | 230 | 231 | 232 | library\lib\mips 233 | 1 234 | 235 | 236 | library\lib\mips 237 | 1 238 | 239 | 240 | 241 | 242 | library\lib\armeabi-v7a 243 | 1 244 | 245 | 246 | library\lib\arm64-v8a 247 | 1 248 | 249 | 250 | 251 | 252 | library\lib\armeabi-v7a 253 | 1 254 | 255 | 256 | 257 | 258 | res\drawable 259 | 1 260 | 261 | 262 | res\drawable 263 | 1 264 | 265 | 266 | 267 | 268 | res\values 269 | 1 270 | 271 | 272 | res\values 273 | 1 274 | 275 | 276 | 277 | 278 | res\values-v21 279 | 1 280 | 281 | 282 | res\values-v21 283 | 1 284 | 285 | 286 | 287 | 288 | res\values 289 | 1 290 | 291 | 292 | res\values 293 | 1 294 | 295 | 296 | 297 | 298 | res\drawable 299 | 1 300 | 301 | 302 | res\drawable 303 | 1 304 | 305 | 306 | 307 | 308 | res\drawable-xxhdpi 309 | 1 310 | 311 | 312 | res\drawable-xxhdpi 313 | 1 314 | 315 | 316 | 317 | 318 | res\drawable-ldpi 319 | 1 320 | 321 | 322 | res\drawable-ldpi 323 | 1 324 | 325 | 326 | 327 | 328 | res\drawable-mdpi 329 | 1 330 | 331 | 332 | res\drawable-mdpi 333 | 1 334 | 335 | 336 | 337 | 338 | res\drawable-hdpi 339 | 1 340 | 341 | 342 | res\drawable-hdpi 343 | 1 344 | 345 | 346 | 347 | 348 | res\drawable-xhdpi 349 | 1 350 | 351 | 352 | res\drawable-xhdpi 353 | 1 354 | 355 | 356 | 357 | 358 | res\drawable-mdpi 359 | 1 360 | 361 | 362 | res\drawable-mdpi 363 | 1 364 | 365 | 366 | 367 | 368 | res\drawable-hdpi 369 | 1 370 | 371 | 372 | res\drawable-hdpi 373 | 1 374 | 375 | 376 | 377 | 378 | res\drawable-xhdpi 379 | 1 380 | 381 | 382 | res\drawable-xhdpi 383 | 1 384 | 385 | 386 | 387 | 388 | res\drawable-xxhdpi 389 | 1 390 | 391 | 392 | res\drawable-xxhdpi 393 | 1 394 | 395 | 396 | 397 | 398 | res\drawable-xxxhdpi 399 | 1 400 | 401 | 402 | res\drawable-xxxhdpi 403 | 1 404 | 405 | 406 | 407 | 408 | res\drawable-small 409 | 1 410 | 411 | 412 | res\drawable-small 413 | 1 414 | 415 | 416 | 417 | 418 | res\drawable-normal 419 | 1 420 | 421 | 422 | res\drawable-normal 423 | 1 424 | 425 | 426 | 427 | 428 | res\drawable-large 429 | 1 430 | 431 | 432 | res\drawable-large 433 | 1 434 | 435 | 436 | 437 | 438 | res\drawable-xlarge 439 | 1 440 | 441 | 442 | res\drawable-xlarge 443 | 1 444 | 445 | 446 | 447 | 448 | res\values 449 | 1 450 | 451 | 452 | res\values 453 | 1 454 | 455 | 456 | 457 | 458 | 1 459 | 460 | 461 | Contents\MacOS 462 | 1 463 | 464 | 465 | 0 466 | 467 | 468 | 469 | 470 | Contents\MacOS 471 | 1 472 | .framework 473 | 474 | 475 | Contents\MacOS 476 | 1 477 | .framework 478 | 479 | 480 | 0 481 | 482 | 483 | 484 | 485 | 1 486 | .dylib 487 | 488 | 489 | 1 490 | .dylib 491 | 492 | 493 | 1 494 | .dylib 495 | 496 | 497 | Contents\MacOS 498 | 1 499 | .dylib 500 | 501 | 502 | Contents\MacOS 503 | 1 504 | .dylib 505 | 506 | 507 | 0 508 | .dll;.bpl 509 | 510 | 511 | 512 | 513 | 1 514 | .dylib 515 | 516 | 517 | 1 518 | .dylib 519 | 520 | 521 | 1 522 | .dylib 523 | 524 | 525 | Contents\MacOS 526 | 1 527 | .dylib 528 | 529 | 530 | Contents\MacOS 531 | 1 532 | .dylib 533 | 534 | 535 | 0 536 | .bpl 537 | 538 | 539 | 540 | 541 | 0 542 | 543 | 544 | 0 545 | 546 | 547 | 0 548 | 549 | 550 | 0 551 | 552 | 553 | 0 554 | 555 | 556 | Contents\Resources\StartUp\ 557 | 0 558 | 559 | 560 | Contents\Resources\StartUp\ 561 | 0 562 | 563 | 564 | 0 565 | 566 | 567 | 568 | 569 | 1 570 | 571 | 572 | 1 573 | 574 | 575 | 1 576 | 577 | 578 | 579 | 580 | 1 581 | 582 | 583 | 1 584 | 585 | 586 | 1 587 | 588 | 589 | 590 | 591 | 1 592 | 593 | 594 | 1 595 | 596 | 597 | 1 598 | 599 | 600 | 601 | 602 | 1 603 | 604 | 605 | 1 606 | 607 | 608 | 1 609 | 610 | 611 | 612 | 613 | 1 614 | 615 | 616 | 1 617 | 618 | 619 | 1 620 | 621 | 622 | 623 | 624 | 1 625 | 626 | 627 | 1 628 | 629 | 630 | 1 631 | 632 | 633 | 634 | 635 | 1 636 | 637 | 638 | 1 639 | 640 | 641 | 1 642 | 643 | 644 | 645 | 646 | 1 647 | 648 | 649 | 1 650 | 651 | 652 | 1 653 | 654 | 655 | 656 | 657 | 1 658 | 659 | 660 | 1 661 | 662 | 663 | 1 664 | 665 | 666 | 667 | 668 | 1 669 | 670 | 671 | 1 672 | 673 | 674 | 1 675 | 676 | 677 | 678 | 679 | 1 680 | 681 | 682 | 1 683 | 684 | 685 | 1 686 | 687 | 688 | 689 | 690 | 1 691 | 692 | 693 | 1 694 | 695 | 696 | 1 697 | 698 | 699 | 700 | 701 | 1 702 | 703 | 704 | 1 705 | 706 | 707 | 1 708 | 709 | 710 | 711 | 712 | 1 713 | 714 | 715 | 1 716 | 717 | 718 | 1 719 | 720 | 721 | 722 | 723 | 1 724 | 725 | 726 | 1 727 | 728 | 729 | 1 730 | 731 | 732 | 733 | 734 | 1 735 | 736 | 737 | 1 738 | 739 | 740 | 1 741 | 742 | 743 | 744 | 745 | 1 746 | 747 | 748 | 1 749 | 750 | 751 | 1 752 | 753 | 754 | 755 | 756 | 1 757 | 758 | 759 | 1 760 | 761 | 762 | 1 763 | 764 | 765 | 766 | 767 | 1 768 | 769 | 770 | 1 771 | 772 | 773 | 1 774 | 775 | 776 | 777 | 778 | 1 779 | 780 | 781 | 1 782 | 783 | 784 | 1 785 | 786 | 787 | 788 | 789 | 1 790 | 791 | 792 | 1 793 | 794 | 795 | 1 796 | 797 | 798 | 799 | 800 | 1 801 | 802 | 803 | 1 804 | 805 | 806 | 1 807 | 808 | 809 | 810 | 811 | 1 812 | 813 | 814 | 1 815 | 816 | 817 | 1 818 | 819 | 820 | 821 | 822 | 1 823 | 824 | 825 | 1 826 | 827 | 828 | 1 829 | 830 | 831 | 832 | 833 | 1 834 | 835 | 836 | 1 837 | 838 | 839 | 840 | 841 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 842 | 1 843 | 844 | 845 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 846 | 1 847 | 848 | 849 | 850 | 851 | 1 852 | 853 | 854 | 1 855 | 856 | 857 | 858 | 859 | ..\ 860 | 1 861 | 862 | 863 | ..\ 864 | 1 865 | 866 | 867 | 868 | 869 | 1 870 | 871 | 872 | 1 873 | 874 | 875 | 1 876 | 877 | 878 | 879 | 880 | 1 881 | 882 | 883 | 1 884 | 885 | 886 | 1 887 | 888 | 889 | 890 | 891 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 892 | 1 893 | 894 | 895 | 896 | 897 | ..\ 898 | 1 899 | 900 | 901 | ..\ 902 | 1 903 | 904 | 905 | 906 | 907 | Contents 908 | 1 909 | 910 | 911 | Contents 912 | 1 913 | 914 | 915 | 916 | 917 | Contents\Resources 918 | 1 919 | 920 | 921 | Contents\Resources 922 | 1 923 | 924 | 925 | 926 | 927 | library\lib\armeabi-v7a 928 | 1 929 | 930 | 931 | library\lib\arm64-v8a 932 | 1 933 | 934 | 935 | 1 936 | 937 | 938 | 1 939 | 940 | 941 | 1 942 | 943 | 944 | 1 945 | 946 | 947 | Contents\MacOS 948 | 1 949 | 950 | 951 | Contents\MacOS 952 | 1 953 | 954 | 955 | 0 956 | 957 | 958 | 959 | 960 | library\lib\armeabi-v7a 961 | 1 962 | 963 | 964 | 965 | 966 | 1 967 | 968 | 969 | 1 970 | 971 | 972 | 973 | 974 | Assets 975 | 1 976 | 977 | 978 | Assets 979 | 1 980 | 981 | 982 | 983 | 984 | Assets 985 | 1 986 | 987 | 988 | Assets 989 | 1 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | 999 | 1000 | 1001 | 1002 | 1003 | 1004 | True 1005 | True 1006 | 1007 | 1008 | 12 1009 | 1010 | 1011 | 1012 | 1013 |
1014 | -------------------------------------------------------------------------------- /C4D.DiretivasCompilacao.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code4Delphi/diretivas-de-compilacao-delphi/3791dd9d071b5f0ba21de1768c8818fc9720fcc7/C4D.DiretivasCompilacao.res -------------------------------------------------------------------------------- /C4D.inc: -------------------------------------------------------------------------------- 1 | {$DEFINE ACBR_C4D} 2 | {.$WARNINGS OFF} 3 | {.$HINTS OFF} 4 | -------------------------------------------------------------------------------- /Includes/arquivo_inc_teste.inc: -------------------------------------------------------------------------------- 1 | {$DEFINE DIRETIVA_TESTE} 2 | 3 | {$IF CompilerVersion < 35.0)} 4 | {$DEFINE DIRETIVA_TESTE_35} 5 | {$ENDIF} 6 | -------------------------------------------------------------------------------- /README.en.md: -------------------------------------------------------------------------------- 1 | ### Change the language 2 | [![Static Badge](https://img.shields.io/badge/Portugu%C3%AAs-(ptBR)-green)](https://github.com/Code4Delphi/diretivas-de-compilacao-delphi) 3 | [![Static Badge](https://img.shields.io/badge/English-(en)-red)](https://github.com/Code4Delphi/diretivas-de-compilacao-delphi/blob/master/README.en.md) 4 | 5 | # Compilation directives in **Delphi** 6 | 7 |

8 | 9 | Code4Delphi 10 | 11 |

12 | 13 | In this repository/post you will find several examples of using compilation directives with Delphi. 14 | 15 | Below we describe several examples of use, and in the project you will find complete and practical examples of use of the directives. 16 | 17 | 18 | 19 | ## 📞 Contacts 20 | 21 |

22 | 23 | 24 | 25 |   26 | 27 | 28 | 29 |   30 | 31 | 32 | 33 |   34 | 35 | 36 | 37 |

38 | 39 |
40 | 41 | ## ▶️ Demo video 42 | * [Access demo video](https://www.youtube.com/watch?v=ZoKMIpF2lG0&list=PLLHSz4dOnnN1Hx0KtSwqN1Ory9HP7IDJn&index=2) 43 | 44 |
45 | 46 | ## Summary 47 | - [WHAT ARE COMPILATION DIRECTIVES](#what-are-compilation-directives) 48 | - [SET/UNDEFINE DIRECTIVES](#defineindefine) 49 | - [IF, ELSEIF AND ELSE CONDITIONS](#if-elseif-and-else-conditions) 50 | - [CONSTANTS](#constants) 51 | - [MESSAGES](#messages) 52 | - [OPERATING SYSTEMS](#operating-systems) 53 | - [PLATFORMS](#platforms) 54 | - [FRAMEWORK](#framework) 55 | - [DELPHI VERSION](#delphi-version) 56 | - [SCOPEDENUMS](#scopedenums) 57 | - [HINTS](#hints) 58 | - [WARNINGS](#warnings) 59 | - [WARNING MESSAGES](#warning-messages) 60 | - [REGION](#region) 61 | - [.inc FILES](#inc-files) 62 | - [USING THE IDE](#using-the-ide) 63 | - [USEFUL LINKS](#links-%C3%BAteis) 64 | - [CONTRIBUTIONS / IDEAS / BUG FIXES](#contributions--ideas--bug-fixes) 65 | 66 | 67 | ## 🚀 DIRECTIVES 68 | 69 | ## WHAT ARE COMPILATION DIRECTIVES 70 | A compiler directive is a comment with a special syntax. The compiler directive starts with a $ (dollar-sign) as the first character after the opening comment delimiter, immediately followed by a name (one or more letters) that designates the particular directive. You can include comments after the directive and any necessary parameters. 71 | 72 | Compiler directives can be placed wherever comments are allowed. 73 | Examples of directives: 74 | ``` 75 | {$hints off} 76 | (*$hints off*) 77 | ``` 78 | 79 | ## DEFINE/UNDEFINE 80 | * CREATE/SET A POLICY 81 | ``` 82 | {$DEFINE NAME_DIRECTIVE_TEST} 83 | ``` 84 | 85 | * DISABLE/UNDEFINE A POLICY 86 | ``` 87 | {$UNDEF NAME_DIRECTIVE_TEST} 88 | ``` 89 | 90 | ## IF, ELSEIF AND ELSE CONDITIONS 91 | * IF and ELSE TO TEST IF THE DIRECTIVE IS DEFINED 92 | ~~~delphi 93 | {$IFDEF NAME_DIRECTIVE_TEST} 94 | Memo1.Lines.Add('NAME_DIRECTIVE_TEST directive is defined'); 95 | {$ELSE} 96 | Memo1.Lines.Add('NAME_DIRECTIVE_TEST directive is NOT defined'); 97 | {$ENDIF} 98 | ~~~ 99 | 100 | * IF, ELSEIF and ELSE 101 | ~~~delphi 102 | {$DEFINE VALUE_02} 103 | {$IFDEF VALUE_01} 104 | Memo1.Lines.Add('Directive VALUE_01 set to TRUE'); 105 | {$ELSEIF DEFINED(VALUE_02)} 106 | Memo1.Lines.Add('Directive VALUE_02 set to TRUE'); 107 | {$ELSEIF DEFINED(VALUE_03)} 108 | Memo1.Lines.Add('Directive VALUE_03 set to TRUE'); 109 | {$ELSE} 110 | Memo1.Lines.Add('Directive VALUE_01, VALUE_02 AND VALUE_03 do not exist or are set to FALSE'); 111 | {$ENDIF} 112 | ~~~ 113 | 114 | ## CONSTANTS 115 | * Check the value of a constant 116 | ~~~delphi 117 | procedure TViewMain.btnComContantesClick(Sender: TObject); 118 | const 119 | VERSION = 6.8; 120 | begin 121 | {$IF VERSION <= 5} 122 | Memo1.Lines.Add('Value of the VERSION constant is less than or equal to 5'); 123 | {$ELSEIF (VERSION > 5) AND (VERSION <= 10)} 124 | Memo1.Lines.Add('Value of the VERSION constant is greater than 5 and less than 10'); 125 | {$ELSE} 126 | Memo1.Lines.Add('Value of the VERSION constant is greater than 10'); 127 | {$IFEND} 128 | end; 129 | ~~~ 130 | 131 | * Check the value of an Integer constant 132 | ~~~delphi 133 | procedure TViewMain.btnComContantesIntegerClick(Sender: TObject); 134 | const 135 | TEST_INTEGER: Integer = 3; 136 | begin 137 | {$IF SizeOf(TEST_INTEGER) <= 5} 138 | Memo1.Lines.Add('Value of the TEST_INTEGER constant is less than or equal to 5'); 139 | {$ELSE} 140 | Memo1.Lines.Add('Value of constant TEST_INTEGER is greater than 5'); 141 | {$IFEND} 142 | end; 143 | ~~~ 144 | 145 | * Allow **changing the value of constants** 146 | ~~~delphi 147 | procedure TViewMain.btnChangeConstantValueClick(Sender: TObject); 148 | // DOES NOT ALLOW YOU TO CHANGE CONSTANTS (IT IS THE IDE DEFAULT): {$J-} OR {$WRITEABLECONST OFF} 149 | {$J-} 150 | 151 | // ALLOWS TO CHANGE CONSTANTS: {$J+} OR {$WRITEABLECONST ON} 152 | {$WRITEABLECONST ON} 153 | const 154 | MY_CONST: Integer = 2023; 155 | begin 156 | Memo1.Lines.Add('Constant value is: ' + MY_CONST.ToString); 157 | MY_CONST := 2024; 158 | Memo1.Lines.Add('Constant value after change is: ' + MY_CONST.ToString); 159 | end; 160 | ~~~ 161 | 162 | * When setting a constant value 163 | ~~~delphi 164 | procedure TViewMain.btnAoDefinirValorDeConstantesClick(Sender: TObject); 165 | const 166 | {$IFDEF DEBUG} 167 | DEBUG_OR_RELEASE = 'Debug'; 168 | {$ELSE} 169 | DEBUG_OR_RELEASE = 'Release'; 170 | {$ENDIF} 171 | begin 172 | Memo1.Lines.Add('The IDE is in mode: ' + DEBUG_OR_RELEASE); 173 | end; 174 | 175 | ~~~ 176 | 177 | ## MESSAGES 178 | * Generate Messages when compiling or building the project (the generated messages are displayed in the "Build" and "Output" tabs) 179 | ``` 180 | //EMITS A HINT 181 | {$MESSAGE 'My Hint test when compiling'} 182 | 183 | //EMITS A HINT 184 | {$MESSAGE Hint 'Another Hint when compiling'} 185 | 186 | //EMITS A WARNING 187 | {$MESSAGE Warn 'My test warning when compiling.'} 188 | 189 | //EMITS AN ERROR, CONTINUES COMPILING 190 | {$Message Error 'Displays an error message, and does not allow compilation to continue'} 191 | 192 | //EMITS AN ERROR, TERMINATES COMPILER 193 | {$Message Fatal 'Displays a terminate message, and does not allow compilation to continue'} 194 | ``` 195 | 196 | ## OPERATIONAL SYSTEMS 197 | * Check the Operating System 198 | ~~~delphi 199 | procedure TViewMain.btnSOClick(Sender: TObject); 200 | var 201 | LSO: string; 202 | begin 203 | {$IF LINUX} 204 | LSO := 'LINUX'; 205 | {$ELSEIF DEFINED(MSWINDOWS)} 206 | LSO := 'MSWINDOWS'; 207 | {$ELSEIF DEFINED(ANDROID)} 208 | LSO := 'ANDROID'; 209 | {$ELSEIF DEFINED(IOS)} 210 | LSO := 'IOS'; 211 | {$ELSEIF DEFINED(MACOS)} 212 | LSO := 'MACOS'; 213 | {$ELSEIF DEFINED(POSIX)} 214 | LSO := 'POSIX'; 215 | {$ELSE} 216 | LSO := 'Not found'; 217 | {$ENDIF} 218 | 219 | Memo1.Lines.Add('Selected operating system: ' + LSO); 220 | end; 221 | ~~~ 222 | 223 | ## PLATFORMS 224 | * Check which platform 225 | ~~~delphi 226 | procedure TViewMain.btnPlataformasClick(Sender: TObject); 227 | var 228 | LPlatform: string; 229 | begin 230 | {$IFDEF CONSOLE} 231 | LPlatform := 'CONSOLE'; 232 | {$ELSEIF DEFINED(WIN32)} 233 | LPlatform := 'WIN32'; 234 | {$ELSEIF DEFINED(WIN64)} 235 | LPlatform := 'WIN64'; 236 | {$ELSEIF DEFINED(LINUX32)} 237 | LPlatform := 'LINUX32'; 238 | {$ELSEIF DEFINED(LINUX64)} 239 | LPlatform := 'LINUX64'; 240 | {$ELSEIF DEFINED(ANDROID32)} 241 | LPlatform := 'ANDROID32'; 242 | {$ELSEIF DEFINED(ANDROID64)} 243 | LPlatform := 'ANDROID64'; 244 | {$ELSEIF DEFINED(IOS64)} 245 | LPlatform := 'IOS64'; 246 | {$ELSEIF DEFINED(MACOS32)} 247 | LPlatform := 'MACOS32'; 248 | {$ELSEIF DEFINED(MACOS64)} 249 | LPlatform := 'MACOS64'; 250 | {$ELSE} 251 | LPlatform := 'Not found'; 252 | {$ENDIF} 253 | 254 | Memo1.Lines.Add('Current platform: ' + LPlatform); 255 | end; 256 | ~~~ 257 | 258 | ## FRAMEWORK 259 | * Check the Framework (VCL or FMX) 260 | ~~~delphi 261 | procedure TViewMain.btnVclOuFmxClick(Sender: TObject); 262 | var 263 | LFramework: string; 264 | begin 265 | //THE FOLLOWING CONDITIONALS ARE AVAILABLE FROM RAD STUDIO 11.1 Alexandria, Release 1 266 | //FRAMEWORK_VCL: Defined if the project uses the VCL framework 267 | //FRAMEWORK_FMX: Defined if the project uses the FMX framework 268 | 269 | //FOR VERSIONS BEFORE 11.1 Alexandria, CAN BE DEFINED MANUALLY. EXAMPLE: 270 | {$IF CompilerVersion < 35.0)} 271 | {$DEFINE FRAMEWORK_VCL} 272 | {$ENDIF} 273 | 274 | {$IFDEF FRAMEWORK_VCL} 275 | LFramework := 'VCL'; 276 | {$ELSEIF DEFINED(FRAMEWORK_FMX)} 277 | LFramework := 'FMX'; 278 | {$ELSE} 279 | LFramework := 'Not found'; 280 | {$ENDIF} 281 | 282 | Memo1.Lines.Add('Current platform: ' + LFramework); 283 | end; 284 | ~~~ 285 | 286 | ## DELPHI VERSION 287 | * Check the version of Delphi (VERXX) 288 | ~~~delphi 289 | procedure TViewMain.btnVersaoDelphiVERXXClick(Sender: TObject); 290 | var 291 | LNameVersion: string; 292 | begin 293 | {$IFDEF VER300} 294 | LNameVersion := 'Delphi 10 Seattle (VER300)'; 295 | {$ELSEIF DEFINED(VER310)} 296 | LVersionName := 'Delphi 10.1 Berlin (VER310)'; 297 | {$ELSEIF DEFINED(VER320)} 298 | LNameVersion := 'Delphi 10.2 Tokyo (VER320)'; 299 | {$ELSEIF DEFINED(VER330)} 300 | LVersionName := 'Delphi 10.3 Rio (VER330)'; 301 | {$ELSEIF DEFINED(VER340)} 302 | LNameVersion := 'Delphi 10.4 Sydney (VER340)'; 303 | {$ELSEIF DEFINED(VER350)} 304 | LNameVersion := 'Delphi 11.0 Alexandria (VER350)'; 305 | {$ELSEIF DEFINED(VER360)} 306 | LNameVersion := 'Delphi 12.0 Athens (VER360)'; 307 | {$ELSE} 308 | LNameVersion := 'Version PREVIOUS to Delphi 10 Seattle ' + sLineBreak + 'Your version is: ' + CompilerVersion.ToString; 309 | {$ENDIF} 310 | 311 | Memo1.Lines.Add('The version of your Delphi is: ' + LNameVersion); 312 | end; 313 | ~~~ 314 | 315 | * Check the Delphi version (CompilerVersion) 316 | ~~~delphi 317 | procedure TViewMain.btnVersaoDelphiCompilerVersionClick(Sender: TObject); 318 | var 319 | LNameVersion: string; 320 | begin 321 | {$IF CompilerVersion = 30.0} 322 | LNameVersion := 'Delphi 10 Seattle'; 323 | {$ELSEIF CompilerVersion = 31.0)} 324 | LNameVersion := 'Delphi 10.1 Berlin'; 325 | {$ELSEIF CompilerVersion = 32.0)} 326 | LNameVersion := 'Delphi 10.2 Tokyo'; 327 | {$ELSEIF CompilerVersion = 33.0)} 328 | LNameVersion := 'Delphi 10.3 Rio'; 329 | {$ELSEIF CompilerVersion = 34.0)} 330 | LNameVersion := 'Delphi 10.4 Sydney'; 331 | {$ELSEIF CompilerVersion = 35.0)} 332 | LNameVersion := 'Delphi 11.0 Alexandria'; 333 | {$ELSEIF CompilerVersion = 36.0)} 334 | LNameVersion := 'Delphi 12.0 Athens'; 335 | {$ELSEIF CompilerVersion >= 37.0)} 336 | LNameVersion := 'Delphi greater than or equal to 37.0'; 337 | {$ELSE} 338 | LNameVersion := 'Version PREVIOUS to Delphi 10 Seattle'; 339 | {$ENDIF} 340 | Memo1.Lines.Add('The version of your Delphi is: ' + LNameVersion + ' - CompilerVersion Number: ' + CompilerVersion.ToString); 341 | 342 | if(CompilerVersion = 33)then 343 | Memo1.Lines.Add('Function CompilerVersion = 33. Your Delphi version is 10.3 Rio') 344 | else 345 | Memo1.Lines.Add('Function CompilerVersion = ' + CompilerVersion.ToString); 346 | end; 347 | ~~~ 348 | 349 | * Check the Delphi version (RTLVersion) 350 | ~~~delphi 351 | procedure TViewMain.btnVersaoDelphiRTLVersionClick(Sender: TObject); 352 | var 353 | LNameVersion: string; 354 | begin 355 | {$IF RTLVersion = 30.0} 356 | LNameVersion := 'Delphi 10 Seattle'; 357 | {$ELSEIF RTLVersion = 31.0)} 358 | LNameVersion := 'Delphi 10.1 Berlin'; 359 | {$ELSEIF RTLVersion = 32.0)} 360 | LNameVersion := 'Delphi 10.2 Tokyo'; 361 | {$ELSEIF RTLVersion = 33.0)} 362 | LNameVersion := 'Delphi 10.3 Rio'; 363 | {$ELSEIF RTLVersion = 34.0)} 364 | LNameVersion := 'Delphi 10.4 Sydney'; 365 | {$ELSEIF RTLVersion = 35.0)} 366 | LNameVersion := 'Delphi 11.0 Alexandria'; 367 | {$ELSEIF RTLVersion = 36.0)} 368 | LNameVersion := 'Delphi 12.0 Athens'; 369 | {$ELSEIF RTLVersion >= 37.0)} 370 | LNameVersion := 'Delphi greater than or equal to 37.0'; 371 | {$ELSE} 372 | LNameVersion := 'Version PREVIOUS to Delphi 10 Seattle'; 373 | {$ENDIF} 374 | 375 | Memo1.Lines.Add('The version of your Delphi is: ' + LNameVersion + ' - RTLVersion number: ' + FloatToStr(RTLVersion)); 376 | end; 377 | ~~~ 378 | 379 | ## SCOPEDENUMS 380 | * In the {$SCOPEDENUMS ON} state, enumerations are scoped and enum values are not added to the global scope 381 | ``` 382 | {$SCOPEDENUMS ON} 383 | Signed = (Yes, No); 384 | TEsent = (Yes, No); 385 | {$SCOPEDENUMS OFF} 386 | ``` 387 | 388 | ## HINTS 389 | * Disables Hints when compiling, that is, no Hints will be displayed from the point where the directive is, unless there is a {$HINTS ON} directive in the same scope 390 | ``` 391 | {$HINTS OFF} 392 | ``` 393 | * Enable Hints when compiling 394 | ``` 395 | {$HINTS ON} 396 | ``` 397 | 398 | ## WARNINGS 399 | * Disable Warnings when compiling, that is, no Warning will be displayed from the point the directive is 400 | ``` 401 | {$WARNINGS OFF} 402 | ``` 403 | * Enable Warnings when compiling 404 | ``` 405 | {$WARNINGS ON} 406 | ``` 407 | 408 | ## WARNING MESSAGES 409 | * These directives give control over individual warning messages 410 | 411 | Syntax:
412 |    {$WARN identifier ON | OFF | ERROR | DEFAULT}
413 |    {$WARN identifier ON} Allows the compiler to display the warning specified by the identifier
414 |    {$WARN identifier OFF} The specified warning is not displayed
415 |    {$WARN identifier ERROR} The specified warning is treated as an error
416 |    {$WARN identifier DEFAULT} Uses the default settings from the Project Options dialog box
417 | 418 | Examples: 419 | ``` 420 | // ENABLES SYMBOL_EXPERIMENTAL TYPE WARNINGS 421 | {$WARN SYMBOL_EXPERIMENTAL ON} 422 | 423 | // DISABLE SYMBOL_EXPERIMENTAL TYPE WARNINGS 424 | {$WARN SYMBOL_EXPERIMENTAL OFF} 425 | 426 | //TURNS SYMBOL_EXPERIMENTAL TYPE WARINGS INTO ERRORS 427 | {$WARN SYMBOL_EXPERIMENTAL ERROR} 428 | ``` 429 | Full list: [https://docwiki.embarcadero.com/RADStudio/Athens/en/Warning_messages_(Delphi)](https://docwiki.embarcadero.com/RADStudio/Athens/en/Warning_messages_(Delphi)) 430 | 431 | > [!TIP] 432 | > Starting with Delphi version 10.3, if you use a custom attribute that is not known to the compiler (because you typed it incorrectly or a unit is missing in the uses statement), you will receive a Warning: 433 | > ``` 434 | > Warning: W1074 Unknown custom attribute 435 | > ``` 436 | > It is recommended to transform this Warning into an error, so that correction is mandatory, to do so enter: 437 | > ``` 438 | > {$WARN UNKNOWN_CUSTOM_ATTRIBUTE ERROR} 439 | > ``` 440 | 441 | ## REGION 442 | * Controls the display of collapsible regions 443 | ~~~delphi 444 | {$REGION 'My region'} 445 | procedure DisplayTestMsg; 446 | begin 447 | ShowMessage('My test message'); 448 | end; 449 | {$ENDREGION} 450 | ~~~ 451 | 452 | ## .inc FILES 453 | * I included a .inc file where various compilation directives can be inserted. (usually declared right after the unit name) 454 | 455 | Syntax:
456 |    {$I file.inc} OR {$INCLUDE file.inc}; 457 | 458 | Examples: 459 | ``` 460 | {$I C4D.inc} 461 | {$INCLUDE Includes\arquivo_inc_teste.inc} 462 | ``` 463 | > [!NOTE] 464 | > The file named "arquivo_inc_teste.inc" is inside a directory named "Includes". And in this file you can place different compilation directives, such as: 465 | > ``` 466 | > {$DEFINE TEST_DIRECTIVE} 467 | > 468 | > {$IF CompilerVersion < 35.0)} 469 | > {$DEFINE DIRECTIVE_TESTE_35} 470 | > {$ENDIF} 471 | > ``` 472 | 473 | ## USING THE IDE 474 | * You can define many of the compiler directives in the IDE dialog box under **Project > Options > Delphi Compiler > Conditional defines**. These directives affect all units whenever their source code is recompiled. 475 | 476 | * If you're working in the Code Editor and want a quick way to see the compiler directives in effect, press **Ctrl + O + O**. The current directive settings are entered on a horizontal line at the top of your file, along with other current settings such as compiler warnings (the $WARN directive settings). These lists are added to the beginning of your source file unless you manually undo (__Ctrl + Z__) or delete the list: 477 | ![image](https://github.com/Code4Delphi/diretivas-de-compilacao-delphi/assets/33873267/d077a6e6-4135-426b-bf6b-7f22ef272026) 478 | 479 | ## 🔗USEFUL LINKS 480 | - [Delphi compilation directives](https://docwiki.embarcadero.com/RADStudio/Athens/en/Delphi_compiler_directives) 481 | - [List of compilation directives](https://docwiki.embarcadero.com/RADStudio/Athens/en/Delphi_Compiler_Directives_(List)_Index) 482 | - [Conditional compilation](https://docwiki.embarcadero.com/RADStudio/Athens/en/Conditional_compilation_(Delphi)) 483 | - [List of Compiler Versions](https://docwiki.embarcadero.com/RADStudio/Athens/en/Compiler_Versions) 484 | - [List of Warning Messages](https://docwiki.embarcadero.com/RADStudio/Athens/en/Warning_messages_(Delphi)) 485 | ‌ 486 | ## 💬Contributions / Ideas / Bug Fixes 487 | To submit a pull request, follow these steps: 488 | 489 | 1. Fork the project 490 | 2. Create a new branch (`git checkout -b my-new-feature`) 491 | 3. Make your changes 492 | 4. Make the commit (`git commit -am 'Functionality or adjustment message'`) 493 | 5. Push the branch (`git push origin Message about functionality or adjustment`) 494 | 6. Open a pull request 495 | 496 | > [!IMPORTANT] 497 | > ⭐ Don't forget to leave your **star** to help propagate the directory. 498 | 499 | [Back to Top](#compilation-directives-in-delphi)       [Return to Summary](#summary) 500 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### Alterar idioma 2 | [![Static Badge](https://img.shields.io/badge/Portugu%C3%AAs-(ptBR)-green)](https://github.com/Code4Delphi/diretivas-de-compilacao-delphi) 3 | [![Static Badge](https://img.shields.io/badge/English-(en)-red)](https://github.com/Code4Delphi/diretivas-de-compilacao-delphi/blob/master/README.en.md) 4 | 5 | 6 | # Diretivas de compilação no **Delphi** 7 | 8 |

9 | Code4Delphi 10 |

11 | 12 | Nesse repositório/artigo você encontrara vários exemplos do uso de diretivas de compilação com o Delphi. 13 | 14 | Abaixo descrevemos diversos exemplo de uso, e no projeto você encontrara exemplos completos e práticos de uso das diretivas. 15 | 16 | 17 | ## 📞 Contatos 18 | 19 |

20 | 21 | 22 | 23 |   24 | 25 | 26 | 27 |   28 | 29 | 30 | 31 |   32 | 33 | 34 | 35 |

36 | 37 |
38 | 39 | ## ▶️ Vídeo de demonstração 40 | * [Acessar vídeo de demonstração](https://www.youtube.com/watch?v=ZoKMIpF2lG0&list=PLLHSz4dOnnN1Hx0KtSwqN1Ory9HP7IDJn&index=2) 41 | 42 |
43 | 44 | ## Sumário 45 | - [O QUE SÃO DIRETIVAS DE COMPILAÇÃO](#o-que-s%C3%A3o-diretivas-de-compila%C3%A7%C3%A3o) 46 | - [DEFINIR/INDEFINIR DIRETIVAS](#definirindefinir) 47 | - [CONDIÇÕES IF, ELSEIF E ELSE](#condi%C3%A7%C3%B5es-if-elseif-e-else) 48 | - [CONSTANTES](#constantes) 49 | - [MESSAGES](#messages) 50 | - [DEBUG OU RELEASE](#debug-ou-release) 51 | - [SISTEMAS OPERACIONAIS](#sistemas-operacionais) 52 | - [PLATAFORMAS](#plataformas) 53 | - [FRAMEWORK](#framework) 54 | - [VERSÃO DO DELPHI](#vers%C3%A3o-do-delphi) 55 | - [SCOPEDENUMS](#scopedenums) 56 | - [HINTS](#hints) 57 | - [WARNINGS](#warnings) 58 | - [WARNING MESSAGES](#warning-messages) 59 | - [REGION](#region) 60 | - [ARQUIVOS .inc](#arquivos-inc) 61 | - [USANDO O IDE](#usando-o-ide) 62 | - [LINKS ÚTEIS](#links-%C3%BAteis) 63 | - [CONTRIBUTIONS / IDEAS / BUG FIXES](#contributions--ideas--bug-fixes) 64 | 65 | 66 | ## 🚀 DIRETIVAS 67 | 68 | ## O QUE SÃO DIRETIVAS DE COMPILAÇÃO 69 | Uma diretiva de compilação é um comentário com uma sintaxe especial. A diretiva de compilação começa com um $ (sinal de dólar) como o primeiro caractere após o delimitador de comentário de abertura, imediatamente seguido por um nome (uma ou mais letras) que designa a diretiva específica. Você pode incluir comentários após a diretiva e quaisquer parâmetros necessários. 70 | 71 | As diretivas de compilação podem ser colocadas onde quer que os comentários sejam permitidos. 72 | Exemplos de diretivas: 73 | ``` 74 | {$hints off} 75 | (*$hints off*) 76 | ``` 77 | 78 | ## DEFINIR/INDEFINIR 79 | * CRIAR/DEFINIR UMA DIRETIVA 80 | ``` 81 | {$DEFINE NAME_DIRECTIVE_TEST} 82 | ``` 83 | 84 | * DESATIVAR/INDEFINIR UMA DIRETIVA 85 | ``` 86 | {$UNDEF NAME_DIRECTIVE_TEST} 87 | ``` 88 | 89 | ## CONDIÇÕES IF, ELSEIF E ELSE 90 | * IF e ELSE PARA TESTAR SE A DIRETIVA ESTA DEFINIDA 91 | ~~~delphi 92 | {$IFDEF NAME_DIRECTIVE_TEST} 93 | Memo1.Lines.Add('Diretiva NAME_DIRECTIVE_TEST está definida'); 94 | {$ELSE} 95 | Memo1.Lines.Add('Diretiva NAME_DIRECTIVE_TEST NÃO está definida'); 96 | {$ENDIF} 97 | ~~~ 98 | 99 | * IF, ELSEIF e ELSE 100 | ~~~delphi 101 | {$DEFINE VALOR_02} 102 | {$IFDEF VALOR_01} 103 | Memo1.Lines.Add('Diretiva VALOR_01 definida'); 104 | {$ELSEIF DEFINED(VALOR_02)} 105 | Memo1.Lines.Add('Diretiva VALOR_02 definida'); 106 | {$ELSEIF DEFINED(VALOR_03)} 107 | Memo1.Lines.Add('Diretiva VALOR_03 definida'); 108 | {$ELSE} 109 | Memo1.Lines.Add('Diretivas VALOR_01, VALOR_02 E VALOR_03 não estão definidas'); 110 | {$ENDIF} 111 | ~~~ 112 | 113 | * IF com NOT 114 | ~~~delphi 115 | {$IF NOT DEFINED(DIRETIVA_NOT)} 116 | Memo1.Lines.Add('Diretiva DIRETIVA_NOT não definida'); 117 | {$ELSE} 118 | Memo1.Lines.Add('Diretiva DIRETIVA_NOT definida'); 119 | {$ENDIF} 120 | ~~~ 121 | 122 | ## CONSTANTES 123 | * Verificar o valor de uma constantes 124 | ~~~delphi 125 | procedure TViewMain.btnComContantesClick(Sender: TObject); 126 | const 127 | VERSAO = 6.8; 128 | begin 129 | {$IF VERSAO <= 5} 130 | Memo1.Lines.Add('Valor da constante VERSAO é menor ou igual 5'); 131 | {$ELSEIF (VERSAO > 5) AND (VERSAO <= 10)} 132 | Memo1.Lines.Add('Valor da constante VERSAO é maior que 5 e menor que 10'); 133 | {$ELSE} 134 | Memo1.Lines.Add('Valor da constante VERSAO é maior que 10'); 135 | {$IFEND} 136 | end; 137 | ~~~ 138 | 139 | * Verificar o valor de uma constantes Integer 140 | ~~~delphi 141 | procedure TViewMain.btnComContantesIntegerClick(Sender: TObject); 142 | const 143 | TEST_INTEGER: Integer = 3; 144 | begin 145 | {$IF SizeOf(TEST_INTEGER) <= 5} 146 | Memo1.Lines.Add('Valor da constante TEST_INTEGER é menor ou igual 5'); 147 | {$ELSE} 148 | Memo1.Lines.Add('Valor da constante TEST_INTEGER é maior que 5'); 149 | {$IFEND} 150 | end; 151 | ~~~ 152 | 153 | * Permitir a **alteração do valor de constantes** 154 | ~~~delphi 155 | procedure TViewMain.btnAlterarValorConstantesClick(Sender: TObject); 156 | //NAO PERMITE ALTERAR CONSTANTES (E O PADRAO DA IDE) : {$J-} OU {$WRITEABLECONST OFF} 157 | {$J-} 158 | 159 | //PERMITE ALTERAR CONSTANTES : {$J+} OU {$WRITEABLECONST ON} 160 | {$WRITEABLECONST ON} 161 | const 162 | MINHA_CONST: Integer = 2023; 163 | begin 164 | Memo1.Lines.Add('Valor da constante é: ' + MINHA_CONST.ToString); 165 | MINHA_CONST := 2024; 166 | Memo1.Lines.Add('Valor constante após alteração é: ' + MINHA_CONST.ToString); 167 | end; 168 | ~~~ 169 | 170 | * Ao definir um valor de constante 171 | ~~~delphi 172 | procedure TViewMain.btnAoDefinirValorDeConstantesClick(Sender: TObject); 173 | const 174 | {$IFDEF DEBUG} 175 | DEBUG_OR_RELEASE = 'Debug'; 176 | {$ELSE} 177 | DEBUG_OR_RELEASE = 'Release'; 178 | {$ENDIF} 179 | begin 180 | Memo1.Lines.Add('A IDE esta em modo: ' + DEBUG_OR_RELEASE); 181 | end; 182 | 183 | ~~~ 184 | 185 | ## MESSAGES 186 | * Gerar Messages ao compilar ou dar build no projeto (as mensagens geradas sao exibidas nas abas "Build" e "Output") 187 | ``` 188 | //EMITS A HINT 189 | {$MESSAGE 'Meu Hint teste ao compilar'} 190 | 191 | //EMITS A HINT 192 | {$MESSAGE Hint 'Mais um Hint ao compilar'} 193 | 194 | //EMITS A WARNING 195 | {$MESSAGE Warn 'Meu Warning teste ao compilar.'} 196 | 197 | //EMITS AN ERROR, CONTINUES COMPILING 198 | {$Message Error 'Exibe uma mensagem de erro, e não permite a continuação da compilação'} 199 | 200 | //EMITS AN ERROR, TERMINATES COMPILER 201 | {$Message Fatal 'Exibe uma mensagem de terminate, e não permite a continuação da compilação'} 202 | ``` 203 | 204 | ## SISTEMAS OPERACIONAIS 205 | * Verificar qual o Sistema Operacional 206 | ~~~delphi 207 | procedure TViewMain.btnSOClick(Sender: TObject); 208 | var 209 | LSO: string; 210 | begin 211 | {$IF LINUX} 212 | LSO := 'LINUX'; 213 | {$ELSEIF DEFINED(MSWINDOWS)} 214 | LSO := 'MSWINDOWS'; 215 | {$ELSEIF DEFINED(ANDROID)} 216 | LSO := 'ANDROID'; 217 | {$ELSEIF DEFINED(IOS)} 218 | LSO := 'IOS'; 219 | {$ELSEIF DEFINED(MACOS)} 220 | LSO := 'MACOS'; 221 | {$ELSEIF DEFINED(POSIX)} 222 | LSO := 'POSIX'; 223 | {$ELSE} 224 | LSO := 'Não encontrada'; 225 | {$ENDIF} 226 | 227 | Memo1.Lines.Add('Sistema operacional selecionado: ' + LSO); 228 | end; 229 | ~~~ 230 | 231 | 232 | ## DEBUG OU RELEASE 233 | * Verificar se IDE está em Debug ou Release 234 | ~~~delphi 235 | procedure TViewMain.btnIdeEmDebugOuReleaseClick(Sender: TObject); 236 | begin 237 | {$IFDEF DEBUG} 238 | Memo1.Lines.Add('Modo de Debug'); 239 | {$ELSEIF DEFINED(RELEASE)} 240 | Memo1.Lines.Add('Modo de Release'); 241 | {$ELSE} 242 | Memo1.Lines.Add('Modo diferente de Debug e Release'); 243 | {$ENDIF} 244 | end; 245 | ~~~ 246 | 247 | ## PLATAFORMAS 248 | * Verificar qual a Plataforma 249 | ~~~delphi 250 | procedure TViewMain.btnPlataformasClick(Sender: TObject); 251 | var 252 | LPlataforma: string; 253 | begin 254 | {$IFDEF CONSOLE} 255 | LPlataforma := 'CONSOLE'; 256 | {$ELSEIF DEFINED(WIN32)} 257 | LPlataforma := 'WIN32'; 258 | {$ELSEIF DEFINED(WIN64)} 259 | LPlataforma := 'WIN64'; 260 | {$ELSEIF DEFINED(LINUX32)} 261 | LPlataforma := 'LINUX32'; 262 | {$ELSEIF DEFINED(LINUX64)} 263 | LPlataforma := 'LINUX64'; 264 | {$ELSEIF DEFINED(ANDROID32)} 265 | LPlataforma := 'ANDROID32'; 266 | {$ELSEIF DEFINED(ANDROID64)} 267 | LPlataforma := 'ANDROID64'; 268 | {$ELSEIF DEFINED(IOS64)} 269 | LPlataforma := 'IOS64'; 270 | {$ELSEIF DEFINED(MACOS32)} 271 | LPlataforma := 'MACOS32'; 272 | {$ELSEIF DEFINED(MACOS64)} 273 | LPlataforma := 'MACOS64'; 274 | {$ELSE} 275 | LPlataforma := 'Não encontrada'; 276 | {$ENDIF} 277 | 278 | Memo1.Lines.Add('Plataforma atual: ' + LPlataforma); 279 | end; 280 | ~~~ 281 | 282 | ## FRAMEWORK 283 | * Verificar qual o Framework (VCL ou FMX) 284 | ~~~delphi 285 | procedure TViewMain.btnVclOuFmxClick(Sender: TObject); 286 | var 287 | LFramework: string; 288 | begin 289 | //AS SEGUINTES CONDICIONAIS ESTÃO DISPONÍVEIS A PARTIR DO RAD STUDIO 11.1 Alexandria, Release 1 290 | //FRAMEWORK_VCL : Definido se o projeto usa o framework VCL 291 | //FRAMEWORK_FMX : Definido se o projeto usa o framework FMX 292 | 293 | //PARA VERSOES ANTERIORES AO 11.1 Alexandria, PODE SER DEFIDA MANUALMENTE. EXEMPLO: 294 | {$IF CompilerVersion < 35.0)} 295 | {$DEFINE FRAMEWORK_VCL} 296 | {$ENDIF} 297 | 298 | {$IFDEF FRAMEWORK_VCL} 299 | LFramework := 'VCL'; 300 | {$ELSEIF DEFINED(FRAMEWORK_FMX)} 301 | LFramework := 'FMX'; 302 | {$ELSE} 303 | LFramework := 'Não encontrado'; 304 | {$ENDIF} 305 | 306 | Memo1.Lines.Add('Plataforma atual: ' + LFramework); 307 | end; 308 | ~~~ 309 | 310 | ## VERSÃO DO DELPHI 311 | * Verificar qual a versão do Delphi (VERXX) 312 | ~~~delphi 313 | procedure TViewMain.btnVersaoDelphiVERXXClick(Sender: TObject); 314 | var 315 | LNomeVersao: string; 316 | begin 317 | {$IFDEF VER300} 318 | LNomeVersao := 'Delphi 10 Seattle (VER300)'; 319 | {$ELSEIF DEFINED(VER310)} 320 | LNomeVersao := 'Delphi 10.1 Berlin (VER310)'; 321 | {$ELSEIF DEFINED(VER320)} 322 | LNomeVersao := 'Delphi 10.2 Tokyo (VER320)'; 323 | {$ELSEIF DEFINED(VER330)} 324 | LNomeVersao := 'Delphi 10.3 Rio (VER330)'; 325 | {$ELSEIF DEFINED(VER340)} 326 | LNomeVersao := 'Delphi 10.4 Sydney (VER340)'; 327 | {$ELSEIF DEFINED(VER350)} 328 | LNomeVersao := 'Delphi 11.0 Alexandria (VER350)'; 329 | {$ELSEIF DEFINED(VER360)} 330 | LNomeVersao := 'Delphi 12.0 Athens (VER360)'; 331 | {$ELSE} 332 | LNomeVersao := 'Versão ANTERIOR a Delphi 10 Seattle ' + sLineBreak + 'Sua versão é a: ' + CompilerVersion.ToString; 333 | {$ENDIF} 334 | 335 | Memo1.Lines.Add('A versão do seu Delphi é a: ' + LNomeVersao); 336 | end; 337 | ~~~ 338 | 339 | * Verificar qual a versão Delphi (CompilerVersion) 340 | ~~~delphi 341 | procedure TViewMain.btnVersaoDelphiCompilerVersionClick(Sender: TObject); 342 | var 343 | LNomeVersao: string; 344 | begin 345 | {$IF CompilerVersion = 30.0} 346 | LNomeVersao := 'Delphi 10 Seattle'; 347 | {$ELSEIF CompilerVersion = 31.0)} 348 | LNomeVersao := 'Delphi 10.1 Berlin'; 349 | {$ELSEIF CompilerVersion = 32.0)} 350 | LNomeVersao := 'Delphi 10.2 Tokyo'; 351 | {$ELSEIF CompilerVersion = 33.0)} 352 | LNomeVersao := 'Delphi 10.3 Rio'; 353 | {$ELSEIF CompilerVersion = 34.0)} 354 | LNomeVersao := 'Delphi 10.4 Sydney'; 355 | {$ELSEIF CompilerVersion = 35.0)} 356 | LNomeVersao := 'Delphi 11.0 Alexandria'; 357 | {$ELSEIF CompilerVersion = 36.0)} 358 | LNomeVersao := 'Delphi 12.0 Athens'; 359 | {$ELSEIF CompilerVersion >= 37.0)} 360 | LNomeVersao := 'Delphi maior ou igual a 37.0'; 361 | {$ELSE} 362 | LNomeVersao := 'Versão ANTERIOR a Delphi 10 Seattle'; 363 | {$ENDIF} 364 | Memo1.Lines.Add('A versão do seu Delphi é a: ' + LNomeVersao + ' - Número da CompilerVersion: ' + CompilerVersion.ToString); 365 | 366 | if(CompilerVersion = 33)then 367 | Memo1.Lines.Add('Function CompilerVersion = 33. Versão do seu delphi é 10.3 Rio') 368 | else 369 | Memo1.Lines.Add('Function CompilerVersion = ' + CompilerVersion.ToString); 370 | end; 371 | ~~~ 372 | 373 | * Verificar qual a versão Delphi (RTLVersion) 374 | ~~~delphi 375 | procedure TViewMain.btnVersaoDelphiRTLVersionClick(Sender: TObject); 376 | var 377 | LNomeVersao: string; 378 | begin 379 | {$IF RTLVersion = 30.0} 380 | LNomeVersao := 'Delphi 10 Seattle'; 381 | {$ELSEIF RTLVersion = 31.0)} 382 | LNomeVersao := 'Delphi 10.1 Berlin'; 383 | {$ELSEIF RTLVersion = 32.0)} 384 | LNomeVersao := 'Delphi 10.2 Tokyo'; 385 | {$ELSEIF RTLVersion = 33.0)} 386 | LNomeVersao := 'Delphi 10.3 Rio'; 387 | {$ELSEIF RTLVersion = 34.0)} 388 | LNomeVersao := 'Delphi 10.4 Sydney'; 389 | {$ELSEIF RTLVersion = 35.0)} 390 | LNomeVersao := 'Delphi 11.0 Alexandria'; 391 | {$ELSEIF RTLVersion = 36.0)} 392 | LNomeVersao := 'Delphi 12.0 Athens'; 393 | {$ELSEIF RTLVersion >= 37.0)} 394 | LNomeVersao := 'Delphi maior ou igual a 37.0'; 395 | {$ELSE} 396 | LNomeVersao := 'Versão ANTERIOR a Delphi 10 Seattle'; 397 | {$ENDIF} 398 | 399 | Memo1.Lines.Add('A versão do seu Delphi é a: ' + LNomeVersao + ' - Número da RTLVersion: ' + FloatToStr(RTLVersion)); 400 | end; 401 | ~~~ 402 | 403 | ## SCOPEDENUMS 404 | * No estado {$SCOPEDENUMS ON}, as enumerações têm escopo e os valores de enum não são adicionados ao escopo global 405 | ``` 406 | {$SCOPEDENUMS ON} 407 | TAssinado = (Sim, Nao); 408 | TEnviado = (Sim, Nao); 409 | {$SCOPEDENUMS OFF} 410 | ``` 411 | 412 | ## HINTS 413 | * Desabilita Hints ao compilar, ou seja, não será exibido nenhum Hints a partir do ponto que a diretiva estiver, a não ser que exista a diretiva {$HINTS ON} no mesmo escopo 414 | ``` 415 | {$HINTS OFF} 416 | ``` 417 | * Habilitar Hints ao compilar 418 | ``` 419 | {$HINTS ON} 420 | ``` 421 | 422 | ## WARNINGS 423 | * Desabilitar Warnings ao compilar, ou seja, não será exibido nenhum Warning a partir do ponto que a diretiva estiver 424 | ``` 425 | {$WARNINGS OFF} 426 | ``` 427 | * Habilitar Warnings ao compilar 428 | ``` 429 | {$WARNINGS ON} 430 | ``` 431 | 432 | ## WARNING MESSAGES 433 | * Estas diretivas dão um controle sobre mensagens de avisos (warnings) individuais 434 | 435 | Sintaxe:
436 |    {$WARN identifier ON | OFF | ERROR | DEFAULT}
437 |    {$WARN identifier ON} Permite que o compilador exiba o aviso especificado pelo identificador
438 |    {$WARN identifier OFF} O aviso especificado não é exibido
439 |    {$WARN identifier ERROR} O aviso especificado é tratado como erro
440 |    {$WARN identifier DEFAULT} Usa as configurações padrão da caixa de diálogo Opções do Projeto
441 | 442 | Exemplos: 443 | ``` 444 | //HABILITA OS WARNINGS DO TIPO SYMBOL_EXPERIMENTAL 445 | {$WARN SYMBOL_EXPERIMENTAL ON} 446 | 447 | //DESABILITA OS WARNINGS DO TIPO SYMBOL_EXPERIMENTAL 448 | {$WARN SYMBOL_EXPERIMENTAL OFF} 449 | 450 | //TRANSFORMA OS WARINGS TIPO SYMBOL_EXPERIMENTAL EM ERROS 451 | {$WARN SYMBOL_EXPERIMENTAL ERROR} 452 | ``` 453 | Lista completa: [https://docwiki.embarcadero.com/RADStudio/Athens/en/Warning_messages_(Delphi)](https://docwiki.embarcadero.com/RADStudio/Athens/en/Warning_messages_(Delphi)) 454 | 455 | > [!TIP] 456 | > A partir da versão 10.3 do Delphi, se você usar um custom attribute que não for conhecido pelo compilador (porque você o digitou incorretamente ou uma unidade estiver faltando na instrução uses), você irá receber um Warning: 457 | > ``` 458 | > Warning: W1074 Unknown custom attribute 459 | > ``` 460 | > É recomendado transformar esse Warning em um erro, para que seja obrigatório a correção, para isso insira: 461 | > ``` 462 | > {$WARN UNKNOWN_CUSTOM_ATTRIBUTE ERROR} 463 | > ``` 464 | 465 | ## REGION 466 | * Controla a exibição de regiões recolhíveis 467 | ~~~delphi 468 | {$REGION 'Minha região'} 469 | procedure ExibirMsgTeste; 470 | begin 471 | ShowMessage('Minha mensagem de teste'); 472 | end; 473 | {$ENDREGION} 474 | ~~~ 475 | 476 | ## ARQUIVOS .inc 477 | * Incluí um arquivo .inc onde podem ser inseridas diversas diretivas de compilação. (normalmente declarado logo após o nome da unit) 478 | 479 | Sintaxe:
480 |    {$I arquivo.inc} OU {$INCLUDE arquivo.inc}; 481 | 482 | Exemplos: 483 | ``` 484 | {$I C4D.inc} 485 | {$INCLUDE Includes\arquivo_inc_teste.inc} 486 | ``` 487 | > [!NOTE] 488 | > O arquivo com nome "arquivo_inc_teste.inc" está dentro de um diretório com o nome "Includes". E nesse arquivo pode-se colocar diversar diretivas de compilação como por exemplo: 489 | > ``` 490 | > {$DEFINE DIRETIVA_TESTE} 491 | > 492 | > {$IF CompilerVersion < 35.0)} 493 | > {$DEFINE DIRETIVA_TESTE_35} 494 | > {$ENDIF} 495 | > ``` 496 | 497 | 498 | ## USANDO O IDE 499 | * Você pode definir muitas das diretivas de compilação na caixa de diálogo da IDE em **Project > Options > Delphi Compiler > Conditional defines**. Essas diretivas afetam todas as unidades sempre que seu código-fonte é recompilado. 500 | 501 | * Se você estiver trabalhando no Editor de Código e quiser uma maneira rápida de ver as diretivas de compilação em vigor, pressione **Ctrl + O + O**. As configurações atuais das diretivas são inseridas em uma linha horizontal no topo do seu arquivo, junto com outras configurações atuais, como avisos do compilador (as configurações da diretiva $WARN). Essas listas são adicionadas ao início do seu arquivo de origem, a menos que você desfaça (__Ctrl + Z__) ou exclua manualmente a lista: 502 | ![image](https://github.com/Code4Delphi/diretivas-de-compilacao-delphi/assets/33873267/d077a6e6-4135-426b-bf6b-7f22ef272026) 503 | 504 | 505 | ## 🔗LINKS ÚTEIS 506 | - [Diretivas de compilação Delphi](https://docwiki.embarcadero.com/RADStudio/Athens/en/Delphi_compiler_directives) 507 | - [Lista de diretivas de compilação](https://docwiki.embarcadero.com/RADStudio/Athens/en/Delphi_Compiler_Directives_(List)_Index) 508 | - [Conditional compilation](https://docwiki.embarcadero.com/RADStudio/Athens/en/Conditional_compilation_(Delphi)) 509 | - [Lista de Compiler Versions](https://docwiki.embarcadero.com/RADStudio/Athens/en/Compiler_Versions) 510 | - Lista de Warning Messages 511 | 512 | > [!IMPORTANT] 513 | > ⭐ Não se esqueça de deixar sua **estrela** para ajudar a propagar o repositório. 514 | 515 | 516 | [Voltar para o Topo](#diretivas-de-compila%C3%A7%C3%A3o-no-delphi)       [Voltar para o Sumário](#sum%C3%A1rio) 517 | -------------------------------------------------------------------------------- /Src/Utils.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code4Delphi/diretivas-de-compilacao-delphi/3791dd9d071b5f0ba21de1768c8818fc9720fcc7/Src/Utils.pas -------------------------------------------------------------------------------- /Src/View.Main.dfm: -------------------------------------------------------------------------------- 1 | object ViewMain: TViewMain 2 | Left = 0 3 | Top = 0 4 | Caption = 'Code4Delphi - Diretivas de compila'#231#227'o exemplos' 5 | ClientHeight = 606 6 | ClientWidth = 934 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poScreenCenter 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | object Memo1: TMemo 18 | Left = 0 19 | Top = 141 20 | Width = 934 21 | Height = 338 22 | TabStop = False 23 | Align = alClient 24 | BevelInner = bvNone 25 | BorderStyle = bsNone 26 | Color = clWhite 27 | Font.Charset = DEFAULT_CHARSET 28 | Font.Color = clWindowText 29 | Font.Height = -11 30 | Font.Name = 'Arial' 31 | Font.Style = [fsBold] 32 | ParentFont = False 33 | ReadOnly = True 34 | ScrollBars = ssVertical 35 | TabOrder = 0 36 | end 37 | object Panel6: TPanel 38 | Left = 0 39 | Top = 479 40 | Width = 934 41 | Height = 127 42 | Align = alBottom 43 | BevelOuter = bvNone 44 | Padding.Left = 3 45 | Padding.Top = 3 46 | Padding.Right = 3 47 | Padding.Bottom = 3 48 | ParentBackground = False 49 | TabOrder = 1 50 | DesignSize = ( 51 | 934 52 | 127) 53 | object btnLimparLog: TButton 54 | Left = 855 55 | Top = 6 56 | Width = 75 57 | Height = 25 58 | Cursor = crHandPoint 59 | Anchors = [akTop, akRight] 60 | Caption = 'Limpar log' 61 | TabOrder = 0 62 | OnClick = btnLimparLogClick 63 | end 64 | object pnBackLogoELinks: TPanel 65 | Left = 3 66 | Top = 3 67 | Width = 566 68 | Height = 121 69 | Align = alLeft 70 | BevelOuter = bvNone 71 | TabOrder = 1 72 | object GroupBox1: TGroupBox 73 | Left = 115 74 | Top = 0 75 | Width = 451 76 | Height = 121 77 | Align = alClient 78 | Caption = ' Links '#250'teis / materiais utilizados como refer'#234'ncias ' 79 | Font.Charset = DEFAULT_CHARSET 80 | Font.Color = clWindowText 81 | Font.Height = -11 82 | Font.Name = 'Tahoma' 83 | Font.Style = [fsBold] 84 | ParentFont = False 85 | TabOrder = 0 86 | object pnBackLinks01: TPanel 87 | Left = 2 88 | Top = 15 89 | Width = 232 90 | Height = 104 91 | Align = alLeft 92 | BevelOuter = bvNone 93 | Padding.Left = 5 94 | Padding.Top = 3 95 | TabOrder = 0 96 | object Label1: TLabel 97 | Left = 5 98 | Top = 63 99 | Width = 227 100 | Height = 20 101 | Cursor = crHandPoint 102 | Hint = 103 | 'https://docwiki.embarcadero.com/RADStudio/Athens/en/Compiler_Ver' + 104 | 'sions' 105 | Align = alTop 106 | AutoSize = False 107 | Caption = 'Lista de Compiler Versions' 108 | Font.Charset = ANSI_CHARSET 109 | Font.Color = clBlue 110 | Font.Height = -12 111 | Font.Name = 'Segoe UI' 112 | Font.Style = [fsBold] 113 | ParentFont = False 114 | ParentShowHint = False 115 | ShowHint = True 116 | Layout = tlCenter 117 | OnClick = lbYoutubeClick 118 | ExplicitLeft = 6 119 | ExplicitTop = 57 120 | ExplicitWidth = 243 121 | end 122 | object Label2: TLabel 123 | Left = 5 124 | Top = 3 125 | Width = 227 126 | Height = 20 127 | Cursor = crHandPoint 128 | Hint = 129 | 'https://docwiki.embarcadero.com/RADStudio/Athens/en/Delphi_compi' + 130 | 'ler_directives' 131 | Align = alTop 132 | AutoSize = False 133 | Caption = 'Diretivas de compila'#231#227'o Delphi' 134 | Font.Charset = ANSI_CHARSET 135 | Font.Color = clBlue 136 | Font.Height = -12 137 | Font.Name = 'Segoe UI' 138 | Font.Style = [fsBold] 139 | ParentFont = False 140 | ParentShowHint = False 141 | ShowHint = True 142 | Layout = tlCenter 143 | OnClick = lbYoutubeClick 144 | ExplicitLeft = 4 145 | ExplicitTop = -3 146 | end 147 | object Label3: TLabel 148 | Left = 5 149 | Top = 43 150 | Width = 227 151 | Height = 20 152 | Cursor = crHandPoint 153 | Hint = 154 | 'https://docwiki.embarcadero.com/RADStudio/Athens/en/Conditional_' + 155 | 'compilation_(Delphi)' 156 | Align = alTop 157 | AutoSize = False 158 | Caption = 'Conditional compilation' 159 | Font.Charset = ANSI_CHARSET 160 | Font.Color = clBlue 161 | Font.Height = -12 162 | Font.Name = 'Segoe UI' 163 | Font.Style = [fsBold] 164 | ParentFont = False 165 | ParentShowHint = False 166 | ShowHint = True 167 | Layout = tlCenter 168 | OnClick = lbYoutubeClick 169 | ExplicitTop = 28 170 | ExplicitWidth = 243 171 | end 172 | object Label4: TLabel 173 | Left = 5 174 | Top = 23 175 | Width = 227 176 | Height = 20 177 | Cursor = crHandPoint 178 | Hint = 179 | 'https://docwiki.embarcadero.com/RADStudio/Athens/en/Delphi_Compi' + 180 | 'ler_Directives_(List)_Index' 181 | Align = alTop 182 | AutoSize = False 183 | Caption = 'Lista de diretivas de compila'#231#227'o' 184 | Font.Charset = ANSI_CHARSET 185 | Font.Color = clBlue 186 | Font.Height = -12 187 | Font.Name = 'Segoe UI' 188 | Font.Style = [fsBold] 189 | ParentFont = False 190 | ParentShowHint = False 191 | ShowHint = True 192 | Layout = tlCenter 193 | OnClick = lbYoutubeClick 194 | ExplicitLeft = 6 195 | ExplicitTop = 3 196 | ExplicitWidth = 243 197 | end 198 | object Label5: TLabel 199 | Left = 5 200 | Top = 83 201 | Width = 227 202 | Height = 20 203 | Cursor = crHandPoint 204 | Hint = 205 | 'https://docwiki.embarcadero.com/RADStudio/Athens/en/Warning_mess' + 206 | 'ages_(Delphi)' 207 | Align = alTop 208 | AutoSize = False 209 | Caption = 'Lista de Warning Messages' 210 | Font.Charset = ANSI_CHARSET 211 | Font.Color = clBlue 212 | Font.Height = -12 213 | Font.Name = 'Segoe UI' 214 | Font.Style = [fsBold] 215 | ParentFont = False 216 | ParentShowHint = False 217 | ShowHint = True 218 | Layout = tlCenter 219 | OnClick = lbYoutubeClick 220 | ExplicitLeft = 6 221 | ExplicitTop = 97 222 | ExplicitWidth = 243 223 | end 224 | end 225 | object pnBackLinks02: TPanel 226 | Left = 234 227 | Top = 15 228 | Width = 215 229 | Height = 104 230 | Align = alClient 231 | BevelOuter = bvNone 232 | ParentBackground = False 233 | TabOrder = 1 234 | object lbYoutube: TLabel 235 | Left = 0 236 | Top = 0 237 | Width = 215 238 | Height = 20 239 | Cursor = crHandPoint 240 | Hint = 'https://www.youtube.com/@code4delphi' 241 | Align = alTop 242 | AutoSize = False 243 | Caption = 'Canal do Youtube da Code4Delphi' 244 | Font.Charset = ANSI_CHARSET 245 | Font.Color = clWindowText 246 | Font.Height = -12 247 | Font.Name = 'Segoe UI' 248 | Font.Style = [fsBold] 249 | ParentFont = False 250 | ParentShowHint = False 251 | ShowHint = True 252 | Layout = tlCenter 253 | OnClick = lbYoutubeClick 254 | ExplicitTop = 8 255 | ExplicitWidth = 277 256 | end 257 | object lbTelegram: TLabel 258 | Left = 0 259 | Top = 20 260 | Width = 215 261 | Height = 20 262 | Cursor = crHandPoint 263 | Hint = 'https://telegram.me/Code4Delphi' 264 | Align = alTop 265 | AutoSize = False 266 | Caption = 'Grupo do telegram da Code4Delphi' 267 | Font.Charset = ANSI_CHARSET 268 | Font.Color = clWindowText 269 | Font.Height = -12 270 | Font.Name = 'Segoe UI' 271 | Font.Style = [fsBold] 272 | ParentFont = False 273 | ParentShowHint = False 274 | ShowHint = True 275 | Layout = tlCenter 276 | OnClick = lbYoutubeClick 277 | ExplicitLeft = 5 278 | ExplicitTop = 85 279 | ExplicitWidth = 243 280 | end 281 | object lbGitHub: TLabel 282 | Left = 0 283 | Top = 40 284 | Width = 215 285 | Height = 20 286 | Cursor = crHandPoint 287 | Hint = 'https://github.com/Code4Delphi' 288 | Align = alTop 289 | AutoSize = False 290 | Caption = 'GitHub da Code4Delphi' 291 | Font.Charset = ANSI_CHARSET 292 | Font.Color = clWindowText 293 | Font.Height = -12 294 | Font.Name = 'Segoe UI' 295 | Font.Style = [fsBold] 296 | ParentFont = False 297 | ParentShowHint = False 298 | ShowHint = True 299 | Layout = tlCenter 300 | OnClick = lbYoutubeClick 301 | ExplicitLeft = 5 302 | ExplicitTop = 104 303 | ExplicitWidth = 243 304 | end 305 | end 306 | end 307 | object pnBackLogo: TPanel 308 | AlignWithMargins = True 309 | Left = 0 310 | Top = 6 311 | Width = 115 312 | Height = 115 313 | Margins.Left = 0 314 | Margins.Top = 6 315 | Margins.Right = 0 316 | Margins.Bottom = 0 317 | Align = alLeft 318 | BevelKind = bkTile 319 | BevelOuter = bvNone 320 | TabOrder = 1 321 | object Image1: TImage 322 | Left = 0 323 | Top = 0 324 | Width = 111 325 | Height = 111 326 | Align = alClient 327 | Center = True 328 | Picture.Data = { 329 | 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000640000 330 | 0064080600000070E295540000000473424954080808087C0864880000000970 331 | 48597300000AF000000AF00142AC349800000016744558744372656174696F6E 332 | 2054696D650030382F33302F3232B6AAD0790000001C74455874536F66747761 333 | 72650041646F62652046697265776F726B732043533406B2D3A0000021EF4944 334 | 415478DAED5D076054C5D6FEB66FB29B1E12BA059E88A25810E9BD57014540A4 335 | 0A88A0A8C8439E5204692A0A8A3F22A014A54540513A282045902A4A51442094 336 | 74D293CDB6FF9CB9BB9BDD645B6093F0BF9FF3DE78C3DD7BA77D33A7CD99B932 337 | ABD58A3B74FB90ECFF0A2037EE6F1843970729D5A5741FA55A94A22955A5A4B0 338 | 3D66A67485520AA57394FEA47492D21F11670F2695771BFCA1DB1210EAFC60BA 339 | 3C40E9314A8F4002803B3E8A928E928A92D24736264A464A3994522101C5009D 340 | A0748CD2690229B7BCDB5A946E1B4008847BE8D28E52474A4F52AA58CA452650 341 | 3A44690BA5ED04CE3FE5DD074CE50A0881C02CA707A5672935A5A42EA7AA1450 342 | FA99D21A4A1B089C94F2EA937201848060363482D23390D8D0ED44CCDEE2282D 343 | 24604E9475E1650A0801D1882E6329F52CEB86DE24ADA7348780395056059609 344 | 2004441DBA4CA6F47459352CC0F40DA5A904CCA9D22EA854012120C2E83291D2 345 | 18F8D68A6E7762AD6D1E2460324BAB90520384C060613D87D23DA555F97222D6 346 | C6C612281B4A23F380034240B09D3097D20BA5DF37E54A8B29BD4AC0E40432D3 347 | 80024260D4A3CB324846DDFF073A4D69208172245019060C100263005D3EA7A4 348 | 299FBE293732501A4EA02C0F4466010184C0984697B7CBB963CA9BDE255026DE 349 | 6A26B70C0881B10845E585C5026B7E3ED9BF46FA9BF297C900851CB2202DD9E2 350 | 648C3B97C9CFE6D1B346DBB3FC9C862699B6C844A33CACB97980D95CBC12727A 351 | 47454A9C4A55EC1D1414C06A28F0587FB92E18567ECE674F51F9F906A99EB67F 352 | CB83838ABEBB984019562E8010107C590DC9EDE1206B6616757C10140F3F0045 353 | AD1A908584884E315F4B84F5CC9FB02626C1A25050C9F46C063D4B1DA27CF421 354 | 28EEAB01D07B969454984EFE01333DABA07F5B353600093845AD9A9085863801 355 | 2A7586352707966B095446026143E0E87510ED329920AF5209F2AA955D07811D 356 | 2CCAD3F2C7395878F0D07B5E89409557AB42A9B2F46F1A1896DFCFC2C200B982 357 | C2EE973E044C9903C2EE051743CF9A9E0175C7D6D0BE3612CA878BCBF573ABBF 358 | 41C1A8F1B83B2616C61BE950B56B89E0F12F43F1E0FD2ECF5909C09C0D9B9135 359 | ED030465E5C04A338B6747E8772B0478EEC84265171C3A86EC055F4046574578 360 | 182CA969089A300641541FB77D4CE940C3B6A89B900A39CD4A8F3D2166BC01A1 361 | 9B574159A7B6B8956B32E2F0936DF0C80D52B2D4AAA2EF7E43803C5366801018 362 | 4BE932B030179ACE69E9D00CED07DD0CCFA264F7CAD530BE341E8D824260EDD9 363 | 19FA4F677B2D27FDC429A4F61E820AC4A54C341243BEF902AAFA8F797DC76432 364 | E3CAB031D06DFD094A6A9BF68D9710F4C668B7CF32F35BFE4433744FCE825CAB 365 | 750F08B72DF506D4CF7687FE93598EDB69D959D8D8B00D9ECA31BB0384691981 366 | 32A8D4012130B817FFED7C8F47AFB2CEFD08DDB4CA65FA666466E2AF2347A1A4 367 | 7B551E7C00BFEFFE19E681A3D0E49147A1D9B94EB02B3B5D3E7F1EC9F1F1A8D3 368 | BC39344EECE38FF99F4337F97D44E874088E5B02D5938F8BFB468301C777EC42 369 | 705828EE6BDAC4C54D9C9E96860B4D3BA3068D7CF59BAF20685C2120670EFC82 370 | 1BD713A024999343A3FCC2C4E9E865A03A2B95EE01319281AE54206CC7379057 371 | AF5AD80F5999D8D4B81DBA649B3C01C2F41E8132BED400213058607D5EF4BE95 372 | D88F7EC10750D3A8B7D3F13D7B11377804EE4FC94005A506CACAB1488F0C478D 373 | 9367F0F0D4B7A01C33DCF1ECAFDB7760DD33CFE3F13C231E1C3114B53F790F76 374 | 5893939371BA71073C965380A0F54BA1B40192949080C5B51F47BD022B22BA75 375 | 44DDC51F43ADD339F2FC71D4EBA8F9F94AC4CE9C08CD1BA31CF73F6CDA0655F6 376 | ED41843A12662AE4AECA555059A385A77EB0924C0BA659AF1D3EC0B52FFC0384 377 | 8955E245010784C0684097FD945CA51F6B3DA4DD8811440294299F46EFAC279B 378 | A1CBA524D4AD5419262AC34C232DDF5840050261715F50C74AAC874BFFA8F353 379 | 68B6FF041E8DAD8CF4BC1C84EEDA00D5BFEE95B2A7B4A9634F3438740A515B56 380 | 43610324313111BB9B74404F9A1BE9098950CF9B8EB021CF39AAB5E7D385D08F 381 | 7E1375DF9F0E25B12D3B25FEF63B6232B2492B53A1E0CA35244D980ABD4C01AB 382 | BC88A6C5AC8A069AB2694384AE5D2CFE7DF9CC5954AE712F94A4299600100BA5 383 | C604CA2F010384C00887B4365DBDD88F248065156311B66B9DD0AE982E5DB880 384 | ED242CFB87C780B9814327B258C43564EB1A28EEBD5BFC9D47807ED5A0057A24 385 | 654345C2DB9C9109FD8AFF81BA4D734711717D07A1FEA6DDA8B6633DE4362019 386 | 905D4DDAA3AB550D535636D4FD9F866ECE54C73B3FAF5809F3809168FAFE4C28 387 | 9C0071A68B57AEE02809E60EFA7014386B4A5CE73C8360A96134089855A511E8 388 | ABC74DC0C8658B212396CA80FCD0A82DBA3220A409FAE8C5CB94EA1228E98102 389 | 84DDCFBDDCFEE806902462337BEBB7420745108C4A45E1B3361B2274338D74DB 390 | 0C28A0F2D737EF8036FF105FA70EB01020A1EB8835357AC2F1DAF2EEBDD16CF7 391 | AFA8BE7D5D7140A08131ED06096E12DE135E75BCB3ED7F1642356A1C5ABC3F0B 392 | F22280B0DB965B7DFEDC391C6FD90DDD43225C01E1814349BF700E54AD9BD19F 393 | 162C787E082A5F88478F83BBA43E2140363E410329C7426A76B0E0023E681D01 394 | E273F9C1272004467FBAACF0F80077320944C1B2AA4A3A3AE77864C214C47EBC 395 | 04A1A16162CEC24A7604D924D6DC5C042F9BEF3203F64D998198191F2346A707 396 | C8D6E0BC64217AF15B36B1BFA5F59AA2775216A2367EE56059092443B63DDA14 397 | 3DC8843047840A854251FB3E479E5F8E188D3A8B56E1D1F7A6B9B02CBE5FF0F3 398 | 2FD0515D72F3F3502B35138F132046ABC5F18C95669CAA555384D04C959A68C6 399 | A54334202AC440691B4826BA977EE61C70F838B226CD42A45E0F0B7C527F02E5 400 | EB9B0684C0A800299C26C25B2616E2B5C173A723A86FE142208FAA1B4B5741BD 401 | EF10640498AA717DA493D695FBE63454183E08FA8FA6399E35104829B3E621EC 402 | F235B2615E84B2EE8385606DDE82D3BD07E3B9A84AD0102FB70BF534D2A48EBE 403 | F82A9AE823A01AFE3C940DEA39DE49BD71030B1F6D842119058878EB7517A1BE 404 | 69EC04D4397116217A32301532A81292614A4A119A940310326E559DDA2264F1 405 | 473E7BF8F4C993F8BB4537B4A95805F9BE67C90D4AB50894E49B05843DB703E0 406 | 8BC8683255AD84886D7182ED78A29FE3D6C138640CEA45C740B17A1174B6CEF5 407 | 44396441CF6ADC12CF5C4BC7BD6AAD0044E5E31DA60F870EC7BD719BD04E170E 408 | D9EBC4CAC68DF2F8ECC157DF44A5AFD723222A9A46B8AD2FF2F2C9B07D100923 409 | 9F478AD9080509153359FDE13131A8DD587828C4BF4FFEB81B677E3984884F97 410 | A26564057F00615A4E800CF4F4A34740080C0EC5F14B33101A09F1FEEC26F511 411 | 366F06C22AB98FE039B0612372068D4613AA7C6AA80EAAF9B311DBB4A1DB67AF 412 | 5FBF8ECF87BE883AFB8EA25395BB90979D8DF02D6B20AF73BFC76A24262561D5 413 | 5B93A1FA7A1DFA57AF010BCB96B75F87F695E11EDF59F3CA583CF4D5B7A8161B 414 | 5B2807A83D32D20AFF4A4F43B20D1013CDEEE84EEDF0E4F7ABC523EC1D9B53BD 415 | 161ECFC843ED8A95104A9A9AC597682FA40604CAA19202B28F2E8DFD2D41468D 416 | 600DE95A8508E4F6222BBC4943E868D6C8140AE4120B48FAFB028EAF5A8B8607 417 | 4EE0A1886814109B4AB69890D6B935823BB783BEC63D9093FA9876F51ACED0C8 418 | FB73C56AD44FCD42F3CAD56064214BCA83E9B511B870771558A8CECE4A6A36B1 419 | AFCB478EE3FAB69DB83F210DADAB5497EA43202ABA76C0C5CE2DC90834415EC4 420 | 89C82D3FB1E84BB4397A16B16161C504B38A4A51D8B444197101F903B570F9A5 421 | 8162D664E5E62071F26CF4B6A851A09093A25022037B3F01D2C46F40088CF674 422 | D95A9212ECA0C8A9E3D268345D2183234DAB421E55D46230424DECA79A361835 423 | 23A321A732B954766DE41088F1D4C0247A369BDE31E7E421D268461D7A2E2A58 424 | 0783C52C9E5550DEE9A4D99CCDCD16C2D3A56B49C0862994B82B2C02E1A4E915 425 | B0D3D0561F13957B26331DD9944F5140D8B91C4EC6E47D216150D8EAE4A57190 426 | 11A87FA7DF40A2A940E45D3D22125589955A6ECE1FD88140D9E62F201CF6D2D0 427 | 9F5CDD919CBA4B4434B0E6C2DE7732BA6432B9E824D6669C4BE42E52D27F0548 428 | 94D85BCB2E6D1E71E62275638B54E5D6554E2C533CCF8664F1F6A879A000C57E 429 | E19CA43A59FD1EDFD2AC91EAC075F443DDF544070990463E0121309AD165CFCD 430 | 9672874A44CD0994BDCE37DC01C2D1144F95285B338D7A93919573C92EB1DA16 431 | A5C4C29442A8BD42ADF4B5E6F0FF8FBE25407A38DF700184C060D7C87948D1E5 432 | DE8941C8C91116AD2C2C14F28A3190C75690169078C58FF82D7B81AD37326049 433 | 4E813539557A9E0162D558A1F059843F64CD96EAE091683088F23CB116FBAA22 434 | AF5AFA43F6B2383FABED7D1E6C2A6266A4949470D0F1F2634D02E5B22740DEA2 435 | CBBBDE7BC02A545CEE7855B38650B56F05E5E30F435EA532641AF7B1D26C6859 436 | 2E5F85E9E4EF30FEB40FC683BF0A804002D5D33B7E81919E01ED4B43A062378B 437 | BBFEA6BE321DFB0D79F39740161CE43E0F1A34AA864F40FB427FDFE5715F1178 438 | 62B091356F49CF8435291996ABD761BE180FCBA578BA4F034417242D43FB476F 439 | 1320D38B01625B92FD1DD2A618378D9349A3882AA379A61BB42F0E124BAA3743 440 | 96F8AB30ACFB01056BBF832521515A672F098905B11B5075688590659F7A7DD4 441 | B4FF30329F1E2C66B1DB4E26503503FA40F7DEA49B6A8B838C4698FFFC1B05DB 442 | 7E44C1FACDF4F779895BF03ABF77C1FF07A53AF6255F6740786792FB686FEE00 443 | 1AE5F29868AAF814A8DA36472088D94D56EFA130FD71D6E198F4495C979C5CC1 444 | 1E43D9508C8EF4DE4F3B76236BE068A973DCD58166BBA64F4FE89C5C39B7DC2E 445 | 62CD862F578999C933C9350EC02D3D42809C14CD7302844358A6167BD40686E2 446 | 9EEA0859B100F27BAA239094D57FA460637667A24F22A581676A08AF1E367CC2 447 | E7E3E50188A3AA67FF42CEAB6FC174FC77C822C3BD813289001115700684179F 448 | 8AE9C5DC7879542442BF5DE6B2841928CAEA3B1CC69F7F119122FE9025250DBA 449 | 29E3A01DED5FA46A790222F2272E903D740C8CBB0F7803E5000122BC220210DB 450 | 4E2696F4AE7C83A32D48E885B053AF517DFF6AC0E131F1D760E17020D23E64AC 451 | 7D457A7616FB0D882DD840D5A9354296CEF7BB43CA1B105106B1D8CC1E036166 452 | D6EC9E7DE551AACE3BB7EC80B4A11B3B8A77409A10DEC153DFF459283BF2F217 453 | 2C8571E71E58AE278AB01961A19330553C541B9AA7BB41DDADC3CD015242B911 454 | 6840CC172E217FFE6212D0A4422B556285501611264282943450FDD114CD7F5F 455 | 4466A73E92ADA672BB33A32D01B2D30E08F7F84CD79698487D0B46F84FDF4216 456 | E5753904A6A327913D729C28541642AAAC8A2A28B779E5D817C51187A49D29EB 457 | 3F86E0B7C742D9A0D085EE17202C37F2F311BA6689CB4A625901623A701819ED 458 | 7B4BAA33DB1D2270CF2AEC0F5EF9D4BEFC02699EDD7DD625FFB3A5C89D38CB53 459 | 7F4E204066D901594937FABA54342D9D66C7409FB3C37CFA1C329F1A203A5D08 460 | 662FDA046B1C6C3805BD3A024163A555BCACE75E24FEBADFAB50E7C88FA077C6 461 | 2368D4D0E2BF118F9669B52E0B4C0107E4F031529D8748A1B0453DC66CFC9256 462 | A51D3918BA77FFE3B5AFAC0603325BF784F9CA75AA73313B651501D24F9656AB 463 | 01B7849D898542828D3F8E14FC7639197D75BDA0614666F7E7C50C918587F952 464 | ED246F1E4D590B07D5F5ED89A031C390337E2A4C474EBA37DC6CF6064743EADD 465 | C80D8E0AC99D3117BA9913CB0D107B7F591293113C791C825E7BD16B17E47DBC 466 | 0879D3E6B89B25872935624078219AE587439F652415D5AA206CE77A11E2E289 467 | 0A366E151A842CCA7F9EEE2883648218259E5C284E72236CEB1AB765640F7F5D 468 | B0C9B05DEB3D96532680888788AD125B0EDB1E27C5297B20F35F1790D9E15911 469 | 545EC4CDC24A555B0684232178375098A392A421B100D67FF681D74ECD7AFE25 470 | 1877EDF5D8589FC47E214FBE1F1FF68661D53A1A0CAF41DDA59DD002CB1D101E 471 | 40C45A99757965F3349B323AF4261BE5BC945F2165507A8101619F01FBB01CAA 472 | 02B389A0F1AF38F8BCDB7CE9998C563D25B9A00AFC7E4E8E820F9E4272637471 473 | B9613EFD2732BBF6133348D5BC1142D6DC0680705EA47870BC19CF12766A7AA2 474 | EC97DF44C137DF1775E7F0AAF00C06642DA4982BC75065DEAC9B3B5DF0798F95 475 | 24B991D97390C476FCD95FE12FD9FD541DDB90BDF149F146936CCBECFA9CB082 476 | 99DDA91AD6BB6D009142A21408DBC671C0553C3E96F7FE7C4A9F4A866221B11B 477 | 791D03C2474AB095E828892BA95F320FEA4E6D3C665AB0F547640F7ED9A3D3EE 478 | A6C160B951D1666FB8911B39AF4F8461F95AC82A44090D8B3DBDB70D20AC0CF1 479 | B6058E41F6A20C19967C8D9C09EF16058435A2FD0CC845FAE32E975F48867090 480 | 1847ED79048405FA88B18105C426374239F6B761BD623F1B56AD47CE2B13A821 481 | 9152B827B3ACDB0D905CAAFFDA45547FCFF6926125B5E3B5B7C8B80C2FFAD325 482 | 068483B75CA1CAA419B2F453A8DBB5F00CC8F7DB8496134840BCD91BEC76C8EC 483 | CA6B1656C7D63507206B97780764C02857409C3A35E0808801B5C411D0E71690 484 | 1571C87963923B40D219903414894CE43502FDC20FA1EEDEC163A6ECA1654FAD 485 | DF5E5A5F6010FB51776805FDE2B9C57EB324A5087B47AC31E8F5B0AF4659B309 486 | 90A64F92BDE439D2D5B8751732FB0CA781C380C8A4FF6B0BB59B8002C25AA3D9 487 | 82D04D2BA1B8FF5F1E1FCBFF740972DFF9A028CB62BAE17E8690E1163C6B22B4 488 | 43FA79CCD47CEE3C323BF575A74FDF041A560148E8063244EB3F5ABC9DC92942 489 | B32AB6146BB6888E768EE92D963529285C5761EF70ACD6A52BC89D30CDB1E61F 490 | 50408C46D1C961BB3678350572FE335DC811F68715A174F732841AC14BA36C79 491 | 7A6C28BB01DAF482F9CAB5922C577A06843D032C3B1AF80E15BD15E2CDA1192D 492 | 6C7E270E390AA4DACB31C16D9A2364B9F755CCCC6786C0F4CB51971D6436BAE4 493 | 5ECB62EDA5594384AC5CE835E39CB767C2B0702964D151BEDD26CEC48D6201CE 494 | AB695C29DE4E46F2209464813B611E48129672679BDB2ED080A4A491763A9758 495 | 7D478FCFF06CCF68D543C40F17B1551C5A56313B843DB33CE5C2D8D3EB45680B 496 | 97725B7A55AEF0E84B7207060B3E0E0D52776D072335D69A902C76DEFE9F05C4 497 | BEDB8A0439EF6DF1D61786B8EF90336A3CB1B662BE2C871D52CC521770B160FF 498 | F213E1D8F3467973172277CA7BC2E7E48F8128225648BBD0CF9B21D6E685FBE5 499 | C79F45E7888D3A6E64484001B97009991D7A0714106B3AB529269A64E032286A 500 | DCEDB57C36A6393F37CB0D6CA94F77EBCB923A2E4B18863C057D51CEBFDF41FE 501 | A2156236B9712B4BF9F19A0887DCB468241406454D69E38B7D3D841B1AFAF542 502 | 281BD54389E296ED71519E481C20603BFD8139E59F7F93C6364062D0FE0272E8 503 | A858F17300620B7BE56D183CB379AB367B36BC3915991C2AB87BAEE3F06515F3 504 | F60AE2E55B03B1911FBE86F221DF87FB1896AE46DE822F60B9182F75026B357C 505 | 254D883DC6AC096907F785E639D75D5D8E05AAE02092459152F4899FF248C454 506 | 9145ACF3B2DFDD4479678F9D248D48EE4C6A13F371FB48F70B902327A89E23A8 507 | 6E1A077B6645467E4F351AB46DA179F6299F817FCCA679669A2F5EF61461E3F0 508 | F6165F0FB167C25BBB9A3CE9D51276799E9401EE5CF38953643BA40A95585EB9 509 | A2582914C16C6ED463971543521BAD663F3686D9CB234540CDF5DBB0CCE333C6 510 | 6D3F22933BD3A686F2B2B2731C985F6BEA0546B1442D88232FD9994AB68C276E 511 | E08E988B7068100F3A0F034E5A0FF1B462E8A870EA0D044D7A03412F97CE7964 512 | 258D3A71A95B19B94E6E95C4D2EDA4D992DDE159CE4A2B861ED7D4ED24627873 513 | 8947BE0B4D6FDFEBC625A5AC7E2360DC7BF0BF1610B14238E323E9101E855703 514 | DA654DBD78D48933712C2BF1C0609A29DA11031148FA6F9D21966BD7913B750E 515 | 0AD6FF202D6FFBF666B8449DB88FCBB2936D2D5C685EDDDA8BFDE0BED43B5FC4 516 | EE0CC3577130ACDF249D417513EE17BF00D9B9A7B873D1390F06A46F2FE83E9C 517 | 8A4010075E1BD67C0BC3B2D5B0907DE5C63DE28E5CE3B2983C452E166B00EBDC 518 | 11A1D0F4E80C75AFAED271497E76265BB2C65F8E08D73D3B27C57959E1A1851A 519 | 59094900C2427DD5E71E9F31EE3980AC3EC33C075BDF2C20BC8581B43CDE126E 520 | B99A200698E9E0AF30928A6C4D4C11E150C50E6BF34C8EDD54BE637B8B120B25 521 | 666199D9349F3442F756D6AD23AE7C70008F441138C6338A2B9D920AF3F97F60 522 | FAEDB40819E2203AB15F8F59D4AD3A25D9B918AAB79DCDE54658924665494A86 523 | F9CC5F9E9754CD66C152E477F90A93B5C563F17604B3146BC65AA548BCEF854F 524 | CF630D2C38D87FAF4521B98DEDF51CFDEE89D84032188481643F9E4F8C7631E2 525 | 2557B46347156F6861276420D7DFC5E0308BD3213C12471B7AB36DEC038CDBE0 526 | 6F999C382A536EDB152697DDEA32B6DBE877BE78DE1FE22F39373C906BEDFFBD 527 | E47E7F08935F3BA8EE50A0C9FD0E2AA612ED31BC438120EF7B0C996E6A17EE1D 528 | BA59F2BE0B97E9CE3EF53225DFFBD4996EF524873BE417F97792035389CF3AB1 529 | 9F3A6DB49FD5E6441C89C1659091E4D85F617BC7D7FE7025D92A665EDE65B5B6 530 | A0306FA55E0F33ABD8CE75B7054AB8556F59F5B61DB0ECB0478A94ADA4BA5948 531 | 35B7DA0E3D10658AF64867A628B82EACE2B28A9C6357B3E9BE560D2B9FF95B72 532 | C3D6FFB34E6CA0F87D1A10573068E420289F78CCB56222982D0FE60B1761DC7F 533 | 5858B14A6EB4562385F0346B00EDA03E1E4D84845973117CEA0C82470E86AA69 534 | 439137FF2FF19DF7A0BF9E0499DD8DCEC61D1964C193DF00F47A97F2D916E238 535 | 61E3B1DF60D8BC13CAFC7C3291AC50B66C0C6DFF671C874E242D5E01D5812350 536 | F33183797922368CBD106249876CADE429B3A14F48A17B75103466B8ED3D1952 537 | BFDB0C6CD8042D9F96E73F18253B0DC80688DFE765F1690D212B3FF31AE9C894 538 | BD651732C64D869E41A2466B06F7836EA6FB8397B9566B3AF544B39F0E2366F5 539 | 22286D8103BCCEB9AE597BB4B998001581206A4F23997D4661BF6C91B69C79A0 540 | BC53A79134701442FF89877ACC30E8A6141EA9BB7ED4AB7868ED66C44645C394 541 | 9121FC631CE8C1944569D3634DD0EE72B28803E0A56D3B6D9B3317D1D3E6A256 542 | A5CAE2101B3FA9E4E765D940F1EB4439F66FE9177D48956DEFB326897B0F0897 543 | 7B05B2B0953442751FBCE3160C5E745DD6BE1B3AEE3B810A4BE641D5475246F2 544 | AD16AC69D20E9DE2530890A04240C24311CAE73EDA82074CC49232F9D0B3C848 545 | 97736D4F2F5F05C59031B8FBDF63A099F196E3FEEA61A3F0D8773B5029321A46 546 | 8EDCFCE26311B8C79441F97C476576B9960675FB56E2D4543BFD307D36623FF8 547 | 4C1C62E627203777A29C0D10BFCE5C2C0A88D168C4178386218CE4CA234307A1 548 | 56978E0E4F93887519301C35BFD982508EFD720264C3BB339140D33F2C3C4CCC 549 | 04CDE5AB687B230FA1F36741ED04481C754E071F809CDABB0FDFF67C165D860D 550 | C32333260BF6C274F1DC9F3857AF255A8F1E09A5D3ECFCAADF203C1EB70555A2 551 | 2BC0689B21F6F63020DFF3207003C8261B20F7FB07C8AD9DB96803C5FBA9A46E 552 | 00C936E463E5C30DD0EE7A3AB2957254F96629225A15B2B3838BBF44D0F071A8 553 | 3D763434EF4F71DCDF327506AA6DFE09319151B01418A1BE728D2A900EDDBC19 554 | D094109023DB7720BE7D17B4A95D0FFAE33F3976CAC65FBC88FD0F3746AF975E 555 | 846A56E1E73E0E7EFE05EE3E720AE1FA1062A7B9D0BE38D87118670001B9B553 556 | 499D40F17C6EAF0740BE6DD8065DD3F3202379819E9D10BAA07037D6B1ADDB91 557 | D6B92F5ABCFE32944E803853368DD2138DDAA34E421A823E9D5D6240FE3A7A0C 558 | 49E3DF41A341CF43D6BF30B0E2F0CE5D38D7F629F49B30018A19DE3769DA2940 559 | 8004E6DC5E1B209E4FB6F600C80602A4F38D5CC80C0550B66D819065859B368F 560 | 6CDB81848EBDD161EC188F80A49336B4F1E186E89E9A23002929CB72472C9766 561 | F1ACD9FD2B1E7B630C54D3CB0C90C09E6C6D03C5FDD9EF3E000107494CF93782 562 | 5E2FFC86C7CEA5CB51307834DABD31960099ECB8FFCF6FA79078F192508D53D3 563 | 6F20E9ADE9E89E6584F69399B70CC885BFFEC29AFF4C4295ADBBD1431F05C5E0 564 | 3EE2907D3B25FC7311692929902B14B0901A5DAD664D84D8B60BDC2220813FFB 565 | DD0914F75F4728024896210F6B1F6C80A792B3A06ED984D4C48F5DF6427C3660 566 | 28EAADDA88875F1D05B5D30CF9AC777F68E2BE466545144C24836B52232B99AC 567 | D07C34CDC1B2F2089095751BA1EBA564A87412204A35D935D11108D91EE700E4 568 | DAF9BFB17721A9AEF4400AFD9DF5EB713C945B804615ABC2CC1F9319D2D7E55B 569 | 278B07BC00D9AAF58826AD2C9FD86593B8E5A8D2B5632000299DAF23388152FC 570 | FB2145003159CCB8F6E3CFA8441DC5275A3B07919D39750A1B5A74C208850E41 571 | 039E75D1B2AE9DF80DD15713A1D648FB1693D77D0FD3D255886215D406081F72 572 | 7975CF7EC4E61588D1CCB54F98F9117409C988DCF7832366F62809F523EDBBA3 573 | 5964259A716A4493E1A6E12F22F089A57C46D610D78FCFC4BDF012EA6FDC29D4 574 | 5E3EA3574D652A9DD4DE9B04A474BF1FE204CA52387D614700B2F823B145D91B 575 | 5D898FC7FC2EBDD023211D0F2A3490F5EBE9D60EB1D396D97310F3E6343CBA7A 576 | 19E4CF7A0E415ADDE56934397B11557FDD450ABA14547072F71E5CED3518ED62 577 | 2BD1ACB28AA35CED2178563780AC253BE411673B84E39ADBB714BF65E6E46063 578 | E3B6EE0199F11E62DF5FE00E90B2F9C28E13288E6F50B1A5AE27A1ADB28D2867 579 | 626F50F2B56B38F2FD261C7A7F2E5A935DD120B632F2D3D2A019D807BAD9933C 580 | BA1CD82EA93A71169E58B79234B5CE1EEBF265C7A7D0F6FC55543BB117569D14 581 | 38736CDF7EC4777B0EEDB9AC226DE44875CDF001089E36C1716FD58897F1F8FA 582 | ADA81CC5760801F2D502A85A3715BFA59B8CF8AE5E7374BB9A2A4247B9ADF61C 583 | 37CEFA009566CDC703AE967AD97E83CA06085FC457DA142404B3EEA98E03C10A 584 | E49B2DE23468D17032070D5959C8BD148F88A45434888C4165D2F3F970641100 585 | 5D210A872B4522C168109F4572260BBD9B177F056D53B3A1ABF52FECD5A9904B 586 | E5288AAC0A938881FCDC7974916B71A5760D1C37192097CB904D9D5EF7D2753C 587 | 141C223E89E1D2685E878F8DC6E1D870241AA543914D172EA17D9E057A3E3887 588 | 8F0CB9B73A0E6AE53090CC2A30991079F66FB4A232D84573AC7A2C2E16E4535D 589 | E4C8BB72152D497989D506D9CFF02D9FAFB43901B3885AF482252F1FF9EC4175 590 | EE30EE2C851CC1241334D4509783871900B2E8F3F3F2607697313DA7D26AA1A1 591 | C47EAF7C4391BC9DCAD0F2A7F7489E1464E750E74B87372B940ABAAF73EFFD2D 592 | 5A363DA209D242A5563BBCBDEC60CCE75863483E4AAD5E2F0E79666FAF21374F 593 | 3A5A9CEBC86DD33A3E99547EDF312C028AF8D2A7A40FBBD93F01CF27477B7AC7 594 | FEA6A504CFC94472DA610BEF2756BBE6692DF6FD0FB987BC5CCB71BC777B7CE9 595 | D34E77BE857B1B7D0BD74E77BE167DEB74E77BEA374FB7FFF7D49D8980614B6E 596 | 0EA57B4ABF6FCA94FEA1349680D8501A99971A204C040A4738F3A6D23100027F 597 | 8653D9129B54F3284D2330324AAB905205C44E044C1DBAB017D1A7FBF936255E 598 | 7E788780F8BDB40B2A1340EC44C070D8CB584A3D6F35AF32223E3B700E0171A0 599 | AC0A2C5340EC44C03C42971194D8BD1055E615F04EA994D82DB4908028D96E80 600 | 0050B9006227DBCE2D16FECF5262C7D1CD7FBBE2D68897F0F98811767B6CE09D 601 | 4CE5D527E50A88331138AC8DB1BB9817213804A9E2ADE5E89312287128CE164A 602 | DB09847FCABB0F986E1B409CC966CBD4A6C41FBE65F6C6871BF01627666FFC1B 603 | 075FF9D2DA582BE2E872B613980D5DA1F427A44D49C7289D09B40D1108BA2D01 604 | 714704520CA4CD44BCD38B01AA4589591E03655F01635F21773CB31C0E5F6200 605 | 3816E00FEAFCA4F26E833FF4BF475164E5324CB9040000000049454E44AE4260 606 | 82} 607 | ExplicitLeft = -2 608 | ExplicitTop = -5 609 | ExplicitWidth = 101 610 | end 611 | end 612 | end 613 | end 614 | object pnTop: TPanel 615 | Left = 0 616 | Top = 0 617 | Width = 934 618 | Height = 141 619 | Align = alTop 620 | BevelEdges = [beBottom] 621 | BevelKind = bkTile 622 | BevelOuter = bvNone 623 | ParentBackground = False 624 | TabOrder = 2 625 | object Panel3: TPanel 626 | Left = 0 627 | Top = 27 628 | Width = 934 629 | Height = 27 630 | Align = alTop 631 | BevelOuter = bvNone 632 | TabOrder = 0 633 | object btnIFeELSE: TButton 634 | Left = 0 635 | Top = 0 636 | Width = 165 637 | Height = 27 638 | Cursor = crHandPoint 639 | Align = alLeft 640 | Caption = 'IF e ELSE' 641 | TabOrder = 0 642 | OnClick = btnIFeELSEClick 643 | end 644 | object btnIFeELSEIFeELSE: TButton 645 | Left = 165 646 | Top = 0 647 | Width = 165 648 | Height = 27 649 | Cursor = crHandPoint 650 | Align = alLeft 651 | Caption = 'IF, ELSEIF e ELSE' 652 | TabOrder = 1 653 | OnClick = btnIFeELSEIFeELSEClick 654 | end 655 | object btnComContantes: TButton 656 | Left = 495 657 | Top = 0 658 | Width = 165 659 | Height = 27 660 | Cursor = crHandPoint 661 | Align = alLeft 662 | Caption = 'Com constantes' 663 | TabOrder = 3 664 | OnClick = btnComContantesClick 665 | end 666 | object btnComContantesInteger: TButton 667 | Left = 660 668 | Top = 0 669 | Width = 165 670 | Height = 27 671 | Cursor = crHandPoint 672 | Align = alLeft 673 | Caption = 'Com constante Integer' 674 | TabOrder = 4 675 | OnClick = btnComContantesIntegerClick 676 | end 677 | object btnIfComNot: TButton 678 | Left = 330 679 | Top = 0 680 | Width = 165 681 | Height = 27 682 | Cursor = crHandPoint 683 | Align = alLeft 684 | Caption = 'IF com NOT' 685 | TabOrder = 2 686 | OnClick = btnIfComNotClick 687 | end 688 | end 689 | object Panel4: TPanel 690 | Left = 0 691 | Top = 81 692 | Width = 934 693 | Height = 27 694 | Align = alTop 695 | BevelOuter = bvNone 696 | TabOrder = 2 697 | object btnAlterarValorConstantes: TButton 698 | Left = 0 699 | Top = 0 700 | Width = 165 701 | Height = 27 702 | Cursor = crHandPoint 703 | Align = alLeft 704 | Caption = 'Alterar valor de constante' 705 | TabOrder = 0 706 | OnClick = btnAlterarValorConstantesClick 707 | end 708 | object btnAoDefinirValorDeConstantes: TButton 709 | Left = 165 710 | Top = 0 711 | Width = 165 712 | Height = 27 713 | Cursor = crHandPoint 714 | Align = alLeft 715 | Caption = 'Ao definir um valor de constante' 716 | TabOrder = 1 717 | OnClick = btnAoDefinirValorDeConstantesClick 718 | end 719 | object btnVersaoDelphiVERXX: TButton 720 | Left = 330 721 | Top = 0 722 | Width = 165 723 | Height = 27 724 | Cursor = crHandPoint 725 | Align = alLeft 726 | Caption = 'Vers'#227'o Delphi (VERXX)' 727 | TabOrder = 2 728 | OnClick = btnVersaoDelphiVERXXClick 729 | end 730 | object btnVersaoDelphiRTLVersion: TButton 731 | Left = 660 732 | Top = 0 733 | Width = 165 734 | Height = 27 735 | Cursor = crHandPoint 736 | Align = alLeft 737 | Caption = 'Vers'#227'o Delphi (RTLVersion)' 738 | TabOrder = 4 739 | OnClick = btnVersaoDelphiRTLVersionClick 740 | end 741 | object btnVersaoDelphiCompilerVersion: TButton 742 | Left = 495 743 | Top = 0 744 | Width = 165 745 | Height = 27 746 | Cursor = crHandPoint 747 | Align = alLeft 748 | Caption = 'Vers'#227'o Delphi (CompilerVersion)' 749 | TabOrder = 3 750 | OnClick = btnVersaoDelphiCompilerVersionClick 751 | end 752 | end 753 | object Panel5: TPanel 754 | Left = 0 755 | Top = 0 756 | Width = 934 757 | Height = 27 758 | Align = alTop 759 | BevelOuter = bvNone 760 | ParentBackground = False 761 | TabOrder = 3 762 | object btnDefine: TButton 763 | Left = 0 764 | Top = 0 765 | Width = 165 766 | Height = 27 767 | Cursor = crHandPoint 768 | Align = alLeft 769 | Caption = 'Criar/definir diretiva' 770 | TabOrder = 0 771 | OnClick = btnDefineClick 772 | end 773 | object btnUNDef: TButton 774 | Left = 165 775 | Top = 0 776 | Width = 165 777 | Height = 27 778 | Cursor = crHandPoint 779 | Align = alLeft 780 | Caption = 'Desativar/indefinir diretiva' 781 | TabOrder = 1 782 | OnClick = btnUNDefClick 783 | end 784 | object btnHabilitarDesabilitarHints: TButton 785 | Left = 330 786 | Top = 0 787 | Width = 165 788 | Height = 27 789 | Cursor = crHandPoint 790 | Align = alLeft 791 | Caption = 'Habilitar/desabilitar Hints' 792 | TabOrder = 2 793 | OnClick = btnHabilitarDesabilitarHintsClick 794 | end 795 | object btnHabilitarDesabilitarWarnings: TButton 796 | Left = 495 797 | Top = 0 798 | Width = 165 799 | Height = 27 800 | Cursor = crHandPoint 801 | Align = alLeft 802 | Caption = 'Habilitar/desabilitar Warnings' 803 | TabOrder = 3 804 | OnClick = btnHabilitarDesabilitarWarningsClick 805 | end 806 | object Button1: TButton 807 | Left = 660 808 | Top = 0 809 | Width = 165 810 | Height = 27 811 | Cursor = crHandPoint 812 | Align = alLeft 813 | Caption = 'Warning messages' 814 | TabOrder = 4 815 | OnClick = Button1Click 816 | end 817 | end 818 | object Panel8: TPanel 819 | Left = 0 820 | Top = 54 821 | Width = 934 822 | Height = 27 823 | Align = alTop 824 | BevelOuter = bvNone 825 | ParentBackground = False 826 | TabOrder = 1 827 | ExplicitTop = 48 828 | object btnSO: TButton 829 | Left = 330 830 | Top = 0 831 | Width = 165 832 | Height = 27 833 | Cursor = crHandPoint 834 | Align = alLeft 835 | Caption = 'Sistema operacional' 836 | TabOrder = 1 837 | OnClick = btnSOClick 838 | ExplicitLeft = 165 839 | end 840 | object btnPlataformas: TButton 841 | Left = 495 842 | Top = 0 843 | Width = 165 844 | Height = 27 845 | Cursor = crHandPoint 846 | Align = alLeft 847 | Caption = 'Plataformas' 848 | TabOrder = 2 849 | OnClick = btnPlataformasClick 850 | ExplicitLeft = 330 851 | end 852 | object btnVclOuFmx: TButton 853 | Left = 660 854 | Top = 0 855 | Width = 165 856 | Height = 27 857 | Cursor = crHandPoint 858 | Align = alLeft 859 | Caption = 'Framework (VCL ou FMX)' 860 | TabOrder = 3 861 | OnClick = btnVclOuFmxClick 862 | ExplicitLeft = 495 863 | end 864 | object btnMessages: TButton 865 | Left = 165 866 | Top = 0 867 | Width = 165 868 | Height = 27 869 | Cursor = crHandPoint 870 | Align = alLeft 871 | Caption = 'Messages' 872 | TabOrder = 0 873 | OnClick = btnMessagesClick 874 | ExplicitLeft = 0 875 | end 876 | object btnIdeEmDebugOuRelease: TButton 877 | Left = 0 878 | Top = 0 879 | Width = 165 880 | Height = 27 881 | Cursor = crHandPoint 882 | Align = alLeft 883 | Caption = 'IDE em Debug ou Release' 884 | TabOrder = 4 885 | OnClick = btnIdeEmDebugOuReleaseClick 886 | ExplicitLeft = 8 887 | end 888 | end 889 | object Panel1: TPanel 890 | Left = 0 891 | Top = 108 892 | Width = 934 893 | Height = 27 894 | Align = alTop 895 | BevelOuter = bvNone 896 | TabOrder = 4 897 | object edtValor: TEdit 898 | Left = 0 899 | Top = 4 900 | Width = 165 901 | Height = 21 902 | MaxLength = 3 903 | NumbersOnly = True 904 | TabOrder = 0 905 | Text = '459' 906 | end 907 | object btnNumeroPorExtenso: TButton 908 | Left = 165 909 | Top = 2 910 | Width = 165 911 | Height = 25 912 | Cursor = crHandPoint 913 | Caption = 'N'#250'mero por extenso' 914 | TabOrder = 1 915 | OnClick = btnNumeroPorExtensoClick 916 | end 917 | end 918 | end 919 | end 920 | -------------------------------------------------------------------------------- /Src/View.Main.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code4Delphi/diretivas-de-compilacao-delphi/3791dd9d071b5f0ba21de1768c8818fc9720fcc7/Src/View.Main.pas --------------------------------------------------------------------------------