├── .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 |
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 | [-green)](https://github.com/Code4Delphi/diretivas-de-compilacao-delphi)
3 | [-red)](https://github.com/Code4Delphi/diretivas-de-compilacao-delphi/blob/master/README.en.md)
4 |
5 | # Compilation directives in **Delphi**
6 |
7 |
8 |
9 |
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 | 
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 | [-green)](https://github.com/Code4Delphi/diretivas-de-compilacao-delphi)
3 | [-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 |
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 | 
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
--------------------------------------------------------------------------------