├── Demo ├── Delphi10.3 │ ├── IGDIPlusDemo.dpr │ ├── IGDIPlusDemo.dproj │ ├── IGDIPlusDemo.res │ ├── Unit1.dfm │ └── Unit1.pas ├── Delphi10.4 │ ├── IGDIPlusDemo.dpr │ ├── IGDIPlusDemo.dproj │ ├── IGDIPlusDemo.res │ ├── Unit1.dfm │ └── Unit1.pas ├── Delphi11.0 │ ├── IGDIPlusDemo.dpr │ ├── IGDIPlusDemo.dproj │ ├── IGDIPlusDemo.res │ ├── Unit1.dfm │ └── Unit1.pas └── Delphi12.0 │ ├── IGDIPlusDemo.dpr │ ├── IGDIPlusDemo.dproj │ ├── IGDIPlusDemo.res │ ├── Unit1.dfm │ └── Unit1.pas ├── FMX.IGDIPlusExt.pas ├── Help ├── IGDIPlusD12_h2reg.ini ├── IGDIPlusD13_h2reg.ini ├── IGDIPlusD15_h2reg.ini ├── IGDIPlusD16_h2reg.ini ├── IGDIPlusD17_h2reg.ini ├── IGDIPlusD18_h2reg.ini ├── IGDIPlusD19_h2reg.ini ├── IGDIPlusDXE6_h2reg.ini ├── IGDIPlusDXE7_h2reg.ini ├── IGDIPlusDoc.HxC ├── IGDIPlusDoc_COL_MASTER.HxC ├── IGDIPlusDoc_COL_MASTER.HxT ├── IGDIPlusDoc_COL_MASTER_A.HxK ├── IGDIPlusDoc_COL_MASTER_F.HxK ├── IGDIPlusDoc_COL_MASTER_K.HxK ├── IGDIPlusDoc_COL_MASTER_NamedURL.HxK └── IGDIPlusVCL.HxS ├── IGDIPlus.pas ├── IGDIPlusAPI.inc ├── Lib ├── cbgdiplus.a └── cbgdiplus.lib ├── README.md └── VCL.IGDIPlusExt.pas /Demo/Delphi10.3/IGDIPlusDemo.dpr: -------------------------------------------------------------------------------- 1 | program IGDIPlusDemo; 2 | 3 | uses 4 | Vcl.Forms, 5 | Unit1 in 'Unit1.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Demo/Delphi10.3/IGDIPlusDemo.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {5EA4B35B-F6D3-416E-8F4B-D95F941B1B33} 4 | 18.8 5 | VCL 6 | IGDIPlusDemo.dpr 7 | True 8 | Debug 9 | Win32 10 | 1 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 | Base 40 | true 41 | 42 | 43 | IGDIPlusDemo 44 | $(BDS)\bin\delphi_PROJECTICON.ico 45 | System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) 46 | .\$(Platform)\$(Config) 47 | .\$(Platform)\$(Config) 48 | false 49 | false 50 | false 51 | false 52 | false 53 | 54 | 55 | true 56 | true 57 | $(BDS)\bin\default_app.manifest 58 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 59 | 1033 60 | VideoLabGenericBasicPkgD17;OpenWireBindingPkgD17;DBXSqliteDriver;TextLabBasicPkgD17;fmx;IndySystem;TeeDB;TimingLabBasicPkgD17;PlotLabPkgD17;vclib;inetdbbde;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DataSnapServer;DataSnapProviderClient;DBXSybaseASEDriver;AudioLabBasicPkgD17;DbxCommonDriver;FMX.PlotLabPkgD17;vclimg;UserLabBasicPkgD17;dbxcds;MetropolisUILiveTile;vcldb;InstrumentLabPkgD17;vcldsnap;AudioLabEssentialPkgD17;DBXDb2Driver;OpenWireEditorDsnD17;DBXOracleDriver;CustomIPTransport;SignalLabPkgD17;vclribbon;VideoLabPkgD17;dsnap;IndyIPServer;fmxase;vcl;IndyCore;IndyIPCommon;CloudService;DBXMSSQLDriver;FmxTeeUI;frxDB17;CodeSiteExpressPkg;VideoLabAdditionalPkgD17;FMX.UserLabBasicPkgD17;inetdbxpress;webdsnap;FMX.VideoLabBasicPkgD17;LogicLabPkgD17;IntelligenceLabPkgD17;adortl;OpenWireLabPkgD17;fs17;frx17;bindcompfmx;vcldbx;VisionLabPkgD17;FMX.SignalLabBasicPkgD17;rtl;dbrtl;DbxClientDriver;bindcomp;inetdb;AudioLabPkgD17;Tee;VideoLabBasicPkgD17;DBXOdbcDriver;xmlrtl;svnui;ibxpress;OpenWirePkgD17;FMX.SignalLabScopePkgD17;AudioLabGenericBasicPkgD17;IndyProtocols;DBXMySQLDriver;MediaLabBasicPkgD17;vclactnband;bindengine;soaprtl;bindcompdbx;FMXTee;TeeUI;bindcompvcl;vclie;SignalLabAdditionalPkgD17;vcltouch;websnap;LogicLabBasicPkgD17;VclSmp;FMX.MediaLabBasicPkgD17;DBXInformixDriver;Intraweb;DataSnapConnectors;dsnapcon;DBXFirebirdDriver;inet;fsDB17;fmxobj;SignalLabScopePkgD17;vclx;frxe17;svn;DBXSybaseASADriver;fmxdae;SignalLabGenericPkgD17;bdertl;SignalLabBasicPkgD17;MediaLabPkgD17;FMX.InstrumentLabPkgD17;dbexpress;DataSnapIndy10ServerTransport;SignalLabGenericBasicPkgD17;IndyIPClient;$(DCC_UsePackage) 61 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 62 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 63 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 64 | 65 | 66 | DBXSqliteDriver;fmx;IndySystem;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DataSnapServer;DataSnapProviderClient;DBXSybaseASEDriver;DbxCommonDriver;vclimg;dbxcds;vcldb;vcldsnap;DBXDb2Driver;DBXOracleDriver;CustomIPTransport;dsnap;IndyIPServer;fmxase;vcl;IndyCore;IndyIPCommon;DBXMSSQLDriver;inetdbxpress;webdsnap;bindcompfmx;rtl;dbrtl;DbxClientDriver;bindcomp;inetdb;DBXOdbcDriver;xmlrtl;IndyProtocols;DBXMySQLDriver;vclactnband;bindengine;soaprtl;bindcompdbx;bindcompvcl;vclie;vcltouch;websnap;VclSmp;DBXInformixDriver;dsnapcon;DBXFirebirdDriver;inet;fmxobj;vclx;DBXSybaseASADriver;fmxdae;dbexpress;DataSnapIndy10ServerTransport;IndyIPClient;$(DCC_UsePackage) 67 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 68 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 69 | 70 | 71 | DEBUG;$(DCC_Define) 72 | true 73 | false 74 | true 75 | true 76 | true 77 | 78 | 79 | false 80 | Debug 81 | 82 | 83 | false 84 | RELEASE;$(DCC_Define) 85 | 0 86 | 0 87 | 88 | 89 | 90 | MainSource 91 | 92 | 93 |
Form1
94 | dfm 95 |
96 | 97 | Cfg_2 98 | Base 99 | 100 | 101 | Base 102 | 103 | 104 | Cfg_1 105 | Base 106 | 107 |
108 | 109 | Delphi.Personality.12 110 | 111 | 112 | 113 | 114 | IGDIPlusDemo.dpr 115 | 116 | 117 | False 118 | False 119 | 1 120 | 0 121 | 0 122 | 0 123 | False 124 | False 125 | False 126 | False 127 | False 128 | 1033 129 | 1252 130 | 131 | 132 | 133 | 134 | 1.0.0.0 135 | 136 | 137 | 138 | 139 | 140 | 1.0.0.0 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 1 156 | 157 | 158 | Contents\MacOS 159 | 1 160 | 161 | 162 | 0 163 | 164 | 165 | 166 | 167 | classes 168 | 1 169 | 170 | 171 | classes 172 | 1 173 | 174 | 175 | 176 | 177 | res\xml 178 | 1 179 | 180 | 181 | res\xml 182 | 1 183 | 184 | 185 | 186 | 187 | library\lib\armeabi-v7a 188 | 1 189 | 190 | 191 | 192 | 193 | library\lib\armeabi 194 | 1 195 | 196 | 197 | library\lib\armeabi 198 | 1 199 | 200 | 201 | 202 | 203 | library\lib\armeabi-v7a 204 | 1 205 | 206 | 207 | 208 | 209 | library\lib\mips 210 | 1 211 | 212 | 213 | library\lib\mips 214 | 1 215 | 216 | 217 | 218 | 219 | 220 | library\lib\armeabi-v7a 221 | 1 222 | 223 | 224 | library\lib\arm64-v8a 225 | 1 226 | 227 | 228 | 229 | 230 | library\lib\armeabi-v7a 231 | 1 232 | 233 | 234 | 235 | 236 | res\drawable 237 | 1 238 | 239 | 240 | res\drawable 241 | 1 242 | 243 | 244 | 245 | 246 | res\values 247 | 1 248 | 249 | 250 | res\values 251 | 1 252 | 253 | 254 | 255 | 256 | res\values-v21 257 | 1 258 | 259 | 260 | res\values-v21 261 | 1 262 | 263 | 264 | 265 | 266 | res\values 267 | 1 268 | 269 | 270 | res\values 271 | 1 272 | 273 | 274 | 275 | 276 | res\drawable 277 | 1 278 | 279 | 280 | res\drawable 281 | 1 282 | 283 | 284 | 285 | 286 | res\drawable-xxhdpi 287 | 1 288 | 289 | 290 | res\drawable-xxhdpi 291 | 1 292 | 293 | 294 | 295 | 296 | res\drawable-ldpi 297 | 1 298 | 299 | 300 | res\drawable-ldpi 301 | 1 302 | 303 | 304 | 305 | 306 | res\drawable-mdpi 307 | 1 308 | 309 | 310 | res\drawable-mdpi 311 | 1 312 | 313 | 314 | 315 | 316 | res\drawable-hdpi 317 | 1 318 | 319 | 320 | res\drawable-hdpi 321 | 1 322 | 323 | 324 | 325 | 326 | res\drawable-xhdpi 327 | 1 328 | 329 | 330 | res\drawable-xhdpi 331 | 1 332 | 333 | 334 | 335 | 336 | res\drawable-mdpi 337 | 1 338 | 339 | 340 | res\drawable-mdpi 341 | 1 342 | 343 | 344 | 345 | 346 | res\drawable-hdpi 347 | 1 348 | 349 | 350 | res\drawable-hdpi 351 | 1 352 | 353 | 354 | 355 | 356 | res\drawable-xhdpi 357 | 1 358 | 359 | 360 | res\drawable-xhdpi 361 | 1 362 | 363 | 364 | 365 | 366 | res\drawable-xxhdpi 367 | 1 368 | 369 | 370 | res\drawable-xxhdpi 371 | 1 372 | 373 | 374 | 375 | 376 | res\drawable-xxxhdpi 377 | 1 378 | 379 | 380 | res\drawable-xxxhdpi 381 | 1 382 | 383 | 384 | 385 | 386 | res\drawable-small 387 | 1 388 | 389 | 390 | res\drawable-small 391 | 1 392 | 393 | 394 | 395 | 396 | res\drawable-normal 397 | 1 398 | 399 | 400 | res\drawable-normal 401 | 1 402 | 403 | 404 | 405 | 406 | res\drawable-large 407 | 1 408 | 409 | 410 | res\drawable-large 411 | 1 412 | 413 | 414 | 415 | 416 | res\drawable-xlarge 417 | 1 418 | 419 | 420 | res\drawable-xlarge 421 | 1 422 | 423 | 424 | 425 | 426 | res\values 427 | 1 428 | 429 | 430 | res\values 431 | 1 432 | 433 | 434 | 435 | 436 | 1 437 | 438 | 439 | Contents\MacOS 440 | 1 441 | 442 | 443 | 0 444 | 445 | 446 | 447 | 448 | Contents\MacOS 449 | 1 450 | .framework 451 | 452 | 453 | Contents\MacOS 454 | 1 455 | .framework 456 | 457 | 458 | 0 459 | 460 | 461 | 462 | 463 | 1 464 | .dylib 465 | 466 | 467 | 1 468 | .dylib 469 | 470 | 471 | 1 472 | .dylib 473 | 474 | 475 | Contents\MacOS 476 | 1 477 | .dylib 478 | 479 | 480 | Contents\MacOS 481 | 1 482 | .dylib 483 | 484 | 485 | 0 486 | .dll;.bpl 487 | 488 | 489 | 490 | 491 | 1 492 | .dylib 493 | 494 | 495 | 1 496 | .dylib 497 | 498 | 499 | 1 500 | .dylib 501 | 502 | 503 | Contents\MacOS 504 | 1 505 | .dylib 506 | 507 | 508 | Contents\MacOS 509 | 1 510 | .dylib 511 | 512 | 513 | 0 514 | .bpl 515 | 516 | 517 | 518 | 519 | 0 520 | 521 | 522 | 0 523 | 524 | 525 | 0 526 | 527 | 528 | 0 529 | 530 | 531 | 0 532 | 533 | 534 | Contents\Resources\StartUp\ 535 | 0 536 | 537 | 538 | Contents\Resources\StartUp\ 539 | 0 540 | 541 | 542 | 0 543 | 544 | 545 | 546 | 547 | 1 548 | 549 | 550 | 1 551 | 552 | 553 | 1 554 | 555 | 556 | 557 | 558 | 1 559 | 560 | 561 | 1 562 | 563 | 564 | 1 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 | 1 840 | 841 | 842 | 843 | 844 | 1 845 | 846 | 847 | 1 848 | 849 | 850 | 1 851 | 852 | 853 | 854 | 855 | 1 856 | 857 | 858 | 1 859 | 860 | 861 | 862 | 863 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 864 | 1 865 | 866 | 867 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 868 | 1 869 | 870 | 871 | 872 | 873 | 1 874 | 875 | 876 | 1 877 | 878 | 879 | 880 | 881 | ..\ 882 | 1 883 | 884 | 885 | ..\ 886 | 1 887 | 888 | 889 | 890 | 891 | 1 892 | 893 | 894 | 1 895 | 896 | 897 | 1 898 | 899 | 900 | 901 | 902 | 1 903 | 904 | 905 | 1 906 | 907 | 908 | 1 909 | 910 | 911 | 912 | 913 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 914 | 1 915 | 916 | 917 | 918 | 919 | ..\ 920 | 1 921 | 922 | 923 | ..\ 924 | 1 925 | 926 | 927 | 928 | 929 | Contents 930 | 1 931 | 932 | 933 | Contents 934 | 1 935 | 936 | 937 | 938 | 939 | Contents\Resources 940 | 1 941 | 942 | 943 | Contents\Resources 944 | 1 945 | 946 | 947 | 948 | 949 | library\lib\armeabi-v7a 950 | 1 951 | 952 | 953 | library\lib\arm64-v8a 954 | 1 955 | 956 | 957 | 1 958 | 959 | 960 | 1 961 | 962 | 963 | 1 964 | 965 | 966 | 1 967 | 968 | 969 | Contents\MacOS 970 | 1 971 | 972 | 973 | Contents\MacOS 974 | 1 975 | 976 | 977 | 0 978 | 979 | 980 | 981 | 982 | library\lib\armeabi-v7a 983 | 1 984 | 985 | 986 | 987 | 988 | 1 989 | 990 | 991 | 1 992 | 993 | 994 | 995 | 996 | Assets 997 | 1 998 | 999 | 1000 | Assets 1001 | 1 1002 | 1003 | 1004 | 1005 | 1006 | Assets 1007 | 1 1008 | 1009 | 1010 | Assets 1011 | 1 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | True 1027 | False 1028 | 1029 | 1030 | 12 1031 | 1032 | 1033 | 1034 | 1035 |
1036 | -------------------------------------------------------------------------------- /Demo/Delphi10.3/IGDIPlusDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmitov/IGDIPlus/5c1ffebe21b119bd5fc913c68f3d52960d64b2cf/Demo/Delphi10.3/IGDIPlusDemo.res -------------------------------------------------------------------------------- /Demo/Delphi10.3/Unit1.dfm: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 208 3 | Top = 149 4 | Caption = 'IGDI+ Demo' 5 | ClientHeight = 333 6 | ClientWidth = 595 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'MS Sans Serif' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | OnPaint = FormPaint 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | end 18 | -------------------------------------------------------------------------------- /Demo/Delphi10.3/Unit1.pas: -------------------------------------------------------------------------------- 1 | unit Unit1; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs; 8 | 9 | type 10 | TForm1 = class(TForm) 11 | procedure FormPaint(Sender: TObject); 12 | private 13 | { Private declarations } 14 | public 15 | { Public declarations } 16 | end; 17 | 18 | var 19 | Form1: TForm1; 20 | 21 | implementation 22 | 23 | uses 24 | System.Types, IGDIPlus, VCL.IGDIPlusExt; 25 | 26 | {$R *.dfm} 27 | 28 | procedure TForm1.FormPaint(Sender: TObject); 29 | begin 30 | var AGraphics := TIGPGraphics.Create( Canvas ); 31 | AGraphics.SmoothingMode := TIGPSmoothingMode.AntiAlias; 32 | AGraphics.TextRenderingHint := TIGPTextRenderingHint.AntiAlias; 33 | 34 | var ALeftTopCorner := TPointF.Create( 20, 20 ); 35 | var AFont := TIGPFont.Create( 'Microsoft Sans Serif', 40, [ fsBold ] ); 36 | var ARect := AGraphics.GetStringBoundingBoxF( 'Welcome to IGDI+', AFont, ALeftTopCorner ); 37 | var ARect1 := ARect.Inflate( 10, 10 ); 38 | 39 | // Draw a fancy rounded rectangle. 40 | AGraphics.DrawRoundRectangleF( 41 | TIGPPen.Create( TIGPLinearGradientBrush.Create( ARect1.Inflate( 2, 2 ), aclRed, aclBlue, TIGPLinearGradientMode.Vertical ), 4 ), 42 | TIGPPathGradientBrush.Create( 43 | TIGPGraphicsPath.Create().AddRoundRectangleF( ARect1, TIGPSizeF.Create( 20, 20 ) ) 44 | ) 45 | .SetInterpolationColorArrays( [ aclGreen, aclCyan, aclYellow ], [ 0, 0.3, 1 ] ) 46 | .SetCenterPointF( TPointF.Create( 250, 50 )) 47 | .SetFocusScales( 0.87, 0.2 ), 48 | ARect1, TIGPSizeF.Create( 20, 20 ) ); 49 | 50 | // Draw a text with semitransparent shadow. 51 | AGraphics.DrawStringF( 'Welcome to IGDI+', 52 | AFont, 53 | TPointF.Create( 23, 23 ), 54 | TIGPSolidBrush.Create( MakeARGBColor( 50, aclBlack )) ) 55 | 56 | .DrawStringF( 'Welcome to IGDI+', 57 | AFont, 58 | ALeftTopCorner, 59 | TIGPLinearGradientBrush.Create( ARect, aclRed, aclBlue, TIGPLinearGradientMode.ForwardDiagonal )); 60 | 61 | 62 | // Draw a closed curve. 63 | AGraphics.DrawClosedCurveF( TIGPPen.Create( aclRed, 3 ), TIGPSolidBrush.Create( aclBlue ), 64 | [ 65 | TPointF.Create( 60, 160 ), 66 | TPointF.Create( 150, 180 ), 67 | TPointF.Create( 200, 140 ), 68 | TPointF.Create( 180, 220 ), 69 | TPointF.Create( 120, 200 ), 70 | TPointF.Create( 80, 260 ) 71 | ] ); 72 | 73 | // Draw a semitransparent star. 74 | var APath := TIGPGraphicsPath.Create(); 75 | APath.AddLinesF( 76 | [ 77 | TPointF.Create( 75, 0 ), 78 | TPointF.Create( 100, 50 ), 79 | TPointF.Create( 150, 50 ), 80 | TPointF.Create( 112, 75 ), 81 | TPointF.Create( 150, 150 ), 82 | TPointF.Create( 75, 100 ), 83 | TPointF.Create( 0, 150 ), 84 | TPointF.Create( 37, 75 ), 85 | TPointF.Create( 0, 50 ), 86 | TPointF.Create( 50, 50 ) 87 | ] ); 88 | 89 | AGraphics.TranslateTransform( 420, 30 ) 90 | .FillPath( 91 | TIGPPathGradientBrush.Create( APath ) 92 | .SetCenterColor( MakeColor( 200, 255, 0, 0)) 93 | .SetSurroundColors( 94 | [ 95 | MakeColor(80, 0, 0, 0), 96 | MakeColor(80, 0, 255, 0), 97 | MakeColor(80, 0, 0, 255), 98 | MakeColor(80, 255, 255, 255), 99 | MakeColor(80, 0, 0, 0), 100 | MakeColor(80, 0, 255, 0), 101 | MakeColor(80, 0, 0, 255), 102 | MakeColor(80, 255, 255, 255), 103 | MakeColor(80, 0, 0, 0), 104 | MakeColor(80, 0, 255, 0) 105 | ] ), 106 | 107 | APath ); 108 | 109 | // Draw rotated ellipse. 110 | AGraphics.ResetTransform() 111 | .TranslateTransform( 300, 160 ) 112 | .RotateTransform( 30 ) 113 | .DrawEllipseF( 114 | TIGPPen.Create( aclRed, 3 ), 115 | TIGPLinearGradientBrush.Create( TPointF.Create( 0, 0 ), TPointF.Create( 20, 20 ), aclYellow, aclGreen ) 116 | .SetWrapMode( TIGPWrapMode.TileFlipX ), 117 | 0, 0, 200, 80 ); 118 | end; 119 | 120 | end. 121 | -------------------------------------------------------------------------------- /Demo/Delphi10.4/IGDIPlusDemo.dpr: -------------------------------------------------------------------------------- 1 | program IGDIPlusDemo; 2 | 3 | uses 4 | Vcl.Forms, 5 | Unit1 in 'Unit1.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Demo/Delphi10.4/IGDIPlusDemo.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {5EA4B35B-F6D3-416E-8F4B-D95F941B1B33} 4 | 19.2 5 | VCL 6 | IGDIPlusDemo.dpr 7 | True 8 | Debug 9 | Win32 10 | 1 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 | Base 40 | true 41 | 42 | 43 | IGDIPlusDemo 44 | $(BDS)\bin\delphi_PROJECTICON.ico 45 | System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) 46 | .\$(Platform)\$(Config) 47 | .\$(Platform)\$(Config) 48 | false 49 | false 50 | false 51 | false 52 | false 53 | 54 | 55 | true 56 | true 57 | $(BDS)\bin\default_app.manifest 58 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 59 | 1033 60 | VideoLabGenericBasicPkgD17;OpenWireBindingPkgD17;DBXSqliteDriver;TextLabBasicPkgD17;fmx;IndySystem;TeeDB;TimingLabBasicPkgD17;PlotLabPkgD17;vclib;inetdbbde;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DataSnapServer;DataSnapProviderClient;DBXSybaseASEDriver;AudioLabBasicPkgD17;DbxCommonDriver;FMX.PlotLabPkgD17;vclimg;UserLabBasicPkgD17;dbxcds;MetropolisUILiveTile;vcldb;InstrumentLabPkgD17;vcldsnap;AudioLabEssentialPkgD17;DBXDb2Driver;OpenWireEditorDsnD17;DBXOracleDriver;CustomIPTransport;SignalLabPkgD17;vclribbon;VideoLabPkgD17;dsnap;IndyIPServer;fmxase;vcl;IndyCore;IndyIPCommon;CloudService;DBXMSSQLDriver;FmxTeeUI;frxDB17;CodeSiteExpressPkg;VideoLabAdditionalPkgD17;FMX.UserLabBasicPkgD17;inetdbxpress;webdsnap;FMX.VideoLabBasicPkgD17;LogicLabPkgD17;IntelligenceLabPkgD17;adortl;OpenWireLabPkgD17;fs17;frx17;bindcompfmx;vcldbx;VisionLabPkgD17;FMX.SignalLabBasicPkgD17;rtl;dbrtl;DbxClientDriver;bindcomp;inetdb;AudioLabPkgD17;Tee;VideoLabBasicPkgD17;DBXOdbcDriver;xmlrtl;svnui;ibxpress;OpenWirePkgD17;FMX.SignalLabScopePkgD17;AudioLabGenericBasicPkgD17;IndyProtocols;DBXMySQLDriver;MediaLabBasicPkgD17;vclactnband;bindengine;soaprtl;bindcompdbx;FMXTee;TeeUI;bindcompvcl;vclie;SignalLabAdditionalPkgD17;vcltouch;websnap;LogicLabBasicPkgD17;VclSmp;FMX.MediaLabBasicPkgD17;DBXInformixDriver;Intraweb;DataSnapConnectors;dsnapcon;DBXFirebirdDriver;inet;fsDB17;fmxobj;SignalLabScopePkgD17;vclx;frxe17;svn;DBXSybaseASADriver;fmxdae;SignalLabGenericPkgD17;bdertl;SignalLabBasicPkgD17;MediaLabPkgD17;FMX.InstrumentLabPkgD17;dbexpress;DataSnapIndy10ServerTransport;SignalLabGenericBasicPkgD17;IndyIPClient;$(DCC_UsePackage) 61 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 62 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 63 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 64 | 65 | 66 | DBXSqliteDriver;fmx;IndySystem;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DataSnapServer;DataSnapProviderClient;DBXSybaseASEDriver;DbxCommonDriver;vclimg;dbxcds;vcldb;vcldsnap;DBXDb2Driver;DBXOracleDriver;CustomIPTransport;dsnap;IndyIPServer;fmxase;vcl;IndyCore;IndyIPCommon;DBXMSSQLDriver;inetdbxpress;webdsnap;bindcompfmx;rtl;dbrtl;DbxClientDriver;bindcomp;inetdb;DBXOdbcDriver;xmlrtl;IndyProtocols;DBXMySQLDriver;vclactnband;bindengine;soaprtl;bindcompdbx;bindcompvcl;vclie;vcltouch;websnap;VclSmp;DBXInformixDriver;dsnapcon;DBXFirebirdDriver;inet;fmxobj;vclx;DBXSybaseASADriver;fmxdae;dbexpress;DataSnapIndy10ServerTransport;IndyIPClient;$(DCC_UsePackage) 67 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 68 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 69 | 70 | 71 | DEBUG;$(DCC_Define) 72 | true 73 | false 74 | true 75 | true 76 | true 77 | 78 | 79 | false 80 | Debug 81 | 82 | 83 | false 84 | RELEASE;$(DCC_Define) 85 | 0 86 | 0 87 | 88 | 89 | 90 | MainSource 91 | 92 | 93 |
Form1
94 | dfm 95 |
96 | 97 | Cfg_2 98 | Base 99 | 100 | 101 | Base 102 | 103 | 104 | Cfg_1 105 | Base 106 | 107 |
108 | 109 | Delphi.Personality.12 110 | 111 | 112 | 113 | 114 | IGDIPlusDemo.dpr 115 | 116 | 117 | False 118 | False 119 | 1 120 | 0 121 | 0 122 | 0 123 | False 124 | False 125 | False 126 | False 127 | False 128 | 1033 129 | 1252 130 | 131 | 132 | 133 | 134 | 1.0.0.0 135 | 136 | 137 | 138 | 139 | 140 | 1.0.0.0 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 1 156 | 157 | 158 | Contents\MacOS 159 | 1 160 | 161 | 162 | 0 163 | 164 | 165 | 166 | 167 | classes 168 | 1 169 | 170 | 171 | classes 172 | 1 173 | 174 | 175 | 176 | 177 | res\xml 178 | 1 179 | 180 | 181 | res\xml 182 | 1 183 | 184 | 185 | 186 | 187 | library\lib\armeabi-v7a 188 | 1 189 | 190 | 191 | 192 | 193 | library\lib\armeabi 194 | 1 195 | 196 | 197 | library\lib\armeabi 198 | 1 199 | 200 | 201 | 202 | 203 | library\lib\armeabi-v7a 204 | 1 205 | 206 | 207 | 208 | 209 | library\lib\mips 210 | 1 211 | 212 | 213 | library\lib\mips 214 | 1 215 | 216 | 217 | 218 | 219 | 220 | library\lib\armeabi-v7a 221 | 1 222 | 223 | 224 | library\lib\arm64-v8a 225 | 1 226 | 227 | 228 | 229 | 230 | library\lib\armeabi-v7a 231 | 1 232 | 233 | 234 | 235 | 236 | res\drawable 237 | 1 238 | 239 | 240 | res\drawable 241 | 1 242 | 243 | 244 | 245 | 246 | res\values 247 | 1 248 | 249 | 250 | res\values 251 | 1 252 | 253 | 254 | 255 | 256 | res\values-v21 257 | 1 258 | 259 | 260 | res\values-v21 261 | 1 262 | 263 | 264 | 265 | 266 | res\values 267 | 1 268 | 269 | 270 | res\values 271 | 1 272 | 273 | 274 | 275 | 276 | res\drawable 277 | 1 278 | 279 | 280 | res\drawable 281 | 1 282 | 283 | 284 | 285 | 286 | res\drawable-xxhdpi 287 | 1 288 | 289 | 290 | res\drawable-xxhdpi 291 | 1 292 | 293 | 294 | 295 | 296 | res\drawable-xxxhdpi 297 | 1 298 | 299 | 300 | res\drawable-xxxhdpi 301 | 1 302 | 303 | 304 | 305 | 306 | res\drawable-ldpi 307 | 1 308 | 309 | 310 | res\drawable-ldpi 311 | 1 312 | 313 | 314 | 315 | 316 | res\drawable-mdpi 317 | 1 318 | 319 | 320 | res\drawable-mdpi 321 | 1 322 | 323 | 324 | 325 | 326 | res\drawable-hdpi 327 | 1 328 | 329 | 330 | res\drawable-hdpi 331 | 1 332 | 333 | 334 | 335 | 336 | res\drawable-xhdpi 337 | 1 338 | 339 | 340 | res\drawable-xhdpi 341 | 1 342 | 343 | 344 | 345 | 346 | res\drawable-mdpi 347 | 1 348 | 349 | 350 | res\drawable-mdpi 351 | 1 352 | 353 | 354 | 355 | 356 | res\drawable-hdpi 357 | 1 358 | 359 | 360 | res\drawable-hdpi 361 | 1 362 | 363 | 364 | 365 | 366 | res\drawable-xhdpi 367 | 1 368 | 369 | 370 | res\drawable-xhdpi 371 | 1 372 | 373 | 374 | 375 | 376 | res\drawable-xxhdpi 377 | 1 378 | 379 | 380 | res\drawable-xxhdpi 381 | 1 382 | 383 | 384 | 385 | 386 | res\drawable-xxxhdpi 387 | 1 388 | 389 | 390 | res\drawable-xxxhdpi 391 | 1 392 | 393 | 394 | 395 | 396 | res\drawable-small 397 | 1 398 | 399 | 400 | res\drawable-small 401 | 1 402 | 403 | 404 | 405 | 406 | res\drawable-normal 407 | 1 408 | 409 | 410 | res\drawable-normal 411 | 1 412 | 413 | 414 | 415 | 416 | res\drawable-large 417 | 1 418 | 419 | 420 | res\drawable-large 421 | 1 422 | 423 | 424 | 425 | 426 | res\drawable-xlarge 427 | 1 428 | 429 | 430 | res\drawable-xlarge 431 | 1 432 | 433 | 434 | 435 | 436 | res\values 437 | 1 438 | 439 | 440 | res\values 441 | 1 442 | 443 | 444 | 445 | 446 | 1 447 | 448 | 449 | Contents\MacOS 450 | 1 451 | 452 | 453 | 0 454 | 455 | 456 | 457 | 458 | Contents\MacOS 459 | 1 460 | .framework 461 | 462 | 463 | Contents\MacOS 464 | 1 465 | .framework 466 | 467 | 468 | 0 469 | 470 | 471 | 472 | 473 | 1 474 | .dylib 475 | 476 | 477 | 1 478 | .dylib 479 | 480 | 481 | 1 482 | .dylib 483 | 484 | 485 | Contents\MacOS 486 | 1 487 | .dylib 488 | 489 | 490 | Contents\MacOS 491 | 1 492 | .dylib 493 | 494 | 495 | 0 496 | .dll;.bpl 497 | 498 | 499 | 500 | 501 | 1 502 | .dylib 503 | 504 | 505 | 1 506 | .dylib 507 | 508 | 509 | 1 510 | .dylib 511 | 512 | 513 | Contents\MacOS 514 | 1 515 | .dylib 516 | 517 | 518 | Contents\MacOS 519 | 1 520 | .dylib 521 | 522 | 523 | 0 524 | .bpl 525 | 526 | 527 | 528 | 529 | 0 530 | 531 | 532 | 0 533 | 534 | 535 | 0 536 | 537 | 538 | 0 539 | 540 | 541 | 0 542 | 543 | 544 | Contents\Resources\StartUp\ 545 | 0 546 | 547 | 548 | Contents\Resources\StartUp\ 549 | 0 550 | 551 | 552 | 0 553 | 554 | 555 | 556 | 557 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 558 | 1 559 | 560 | 561 | 562 | 563 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 564 | 1 565 | 566 | 567 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 568 | 1 569 | 570 | 571 | 572 | 573 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 574 | 1 575 | 576 | 577 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 578 | 1 579 | 580 | 581 | 582 | 583 | 1 584 | 585 | 586 | 1 587 | 588 | 589 | 1 590 | 591 | 592 | 593 | 594 | 1 595 | 596 | 597 | 1 598 | 599 | 600 | 1 601 | 602 | 603 | 604 | 605 | 1 606 | 607 | 608 | 1 609 | 610 | 611 | 1 612 | 613 | 614 | 615 | 616 | 1 617 | 618 | 619 | 1 620 | 621 | 622 | 1 623 | 624 | 625 | 626 | 627 | 1 628 | 629 | 630 | 1 631 | 632 | 633 | 1 634 | 635 | 636 | 637 | 638 | 1 639 | 640 | 641 | 1 642 | 643 | 644 | 1 645 | 646 | 647 | 648 | 649 | 1 650 | 651 | 652 | 1 653 | 654 | 655 | 1 656 | 657 | 658 | 659 | 660 | 1 661 | 662 | 663 | 1 664 | 665 | 666 | 1 667 | 668 | 669 | 670 | 671 | 1 672 | 673 | 674 | 1 675 | 676 | 677 | 1 678 | 679 | 680 | 681 | 682 | 1 683 | 684 | 685 | 1 686 | 687 | 688 | 1 689 | 690 | 691 | 692 | 693 | 1 694 | 695 | 696 | 1 697 | 698 | 699 | 1 700 | 701 | 702 | 703 | 704 | 1 705 | 706 | 707 | 1 708 | 709 | 710 | 1 711 | 712 | 713 | 714 | 715 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 716 | 1 717 | 718 | 719 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 720 | 1 721 | 722 | 723 | 724 | 725 | 1 726 | 727 | 728 | 1 729 | 730 | 731 | 1 732 | 733 | 734 | 735 | 736 | 1 737 | 738 | 739 | 1 740 | 741 | 742 | 1 743 | 744 | 745 | 746 | 747 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 748 | 1 749 | 750 | 751 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 752 | 1 753 | 754 | 755 | 756 | 757 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 758 | 1 759 | 760 | 761 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 762 | 1 763 | 764 | 765 | 766 | 767 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 768 | 1 769 | 770 | 771 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 772 | 1 773 | 774 | 775 | 776 | 777 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 778 | 1 779 | 780 | 781 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 782 | 1 783 | 784 | 785 | 786 | 787 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 788 | 1 789 | 790 | 791 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 792 | 1 793 | 794 | 795 | 796 | 797 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 798 | 1 799 | 800 | 801 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 802 | 1 803 | 804 | 805 | 806 | 807 | 1 808 | 809 | 810 | 1 811 | 812 | 813 | 1 814 | 815 | 816 | 817 | 818 | 1 819 | 820 | 821 | 1 822 | 823 | 824 | 1 825 | 826 | 827 | 828 | 829 | 1 830 | 831 | 832 | 1 833 | 834 | 835 | 1 836 | 837 | 838 | 839 | 840 | 1 841 | 842 | 843 | 1 844 | 845 | 846 | 1 847 | 848 | 849 | 850 | 851 | 1 852 | 853 | 854 | 1 855 | 856 | 857 | 1 858 | 859 | 860 | 861 | 862 | 1 863 | 864 | 865 | 1 866 | 867 | 868 | 1 869 | 870 | 871 | 872 | 873 | 1 874 | 875 | 876 | 1 877 | 878 | 879 | 1 880 | 881 | 882 | 883 | 884 | 1 885 | 886 | 887 | 1 888 | 889 | 890 | 1 891 | 892 | 893 | 894 | 895 | 1 896 | 897 | 898 | 1 899 | 900 | 901 | 1 902 | 903 | 904 | 905 | 906 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 907 | 1 908 | 909 | 910 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 911 | 1 912 | 913 | 914 | 915 | 916 | 1 917 | 918 | 919 | 1 920 | 921 | 922 | 1 923 | 924 | 925 | 926 | 927 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 928 | 1 929 | 930 | 931 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 932 | 1 933 | 934 | 935 | 936 | 937 | 1 938 | 939 | 940 | 1 941 | 942 | 943 | 1 944 | 945 | 946 | 947 | 948 | 1 949 | 950 | 951 | 1 952 | 953 | 954 | 1 955 | 956 | 957 | 958 | 959 | 1 960 | 961 | 962 | 1 963 | 964 | 965 | 1 966 | 967 | 968 | 969 | 970 | 1 971 | 972 | 973 | 1 974 | 975 | 976 | 1 977 | 978 | 979 | 980 | 981 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 982 | 1 983 | 984 | 985 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 986 | 1 987 | 988 | 989 | 990 | 991 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 992 | 1 993 | 994 | 995 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 996 | 1 997 | 998 | 999 | 1000 | 1001 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1002 | 1 1003 | 1004 | 1005 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1006 | 1 1007 | 1008 | 1009 | 1010 | 1011 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1012 | 1 1013 | 1014 | 1015 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1016 | 1 1017 | 1018 | 1019 | 1020 | 1021 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1022 | 1 1023 | 1024 | 1025 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1026 | 1 1027 | 1028 | 1029 | 1030 | 1031 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1032 | 1 1033 | 1034 | 1035 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1036 | 1 1037 | 1038 | 1039 | 1040 | 1041 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1042 | 1 1043 | 1044 | 1045 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1046 | 1 1047 | 1048 | 1049 | 1050 | 1051 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1052 | 1 1053 | 1054 | 1055 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 1056 | 1 1057 | 1058 | 1059 | 1060 | 1061 | 1 1062 | 1063 | 1064 | 1 1065 | 1066 | 1067 | 1068 | 1069 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1070 | 1 1071 | 1072 | 1073 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1074 | 1 1075 | 1076 | 1077 | 1078 | 1079 | 1 1080 | 1081 | 1082 | 1 1083 | 1084 | 1085 | 1086 | 1087 | ..\ 1088 | 1 1089 | 1090 | 1091 | ..\ 1092 | 1 1093 | 1094 | 1095 | 1096 | 1097 | 1 1098 | 1099 | 1100 | 1 1101 | 1102 | 1103 | 1 1104 | 1105 | 1106 | 1107 | 1108 | ..\$(PROJECTNAME).launchscreen 1109 | 64 1110 | 1111 | 1112 | ..\$(PROJECTNAME).launchscreen 1113 | 64 1114 | 1115 | 1116 | 1117 | 1118 | 1 1119 | 1120 | 1121 | 1 1122 | 1123 | 1124 | 1 1125 | 1126 | 1127 | 1128 | 1129 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1130 | 1 1131 | 1132 | 1133 | 1134 | 1135 | ..\ 1136 | 1 1137 | 1138 | 1139 | ..\ 1140 | 1 1141 | 1142 | 1143 | 1144 | 1145 | Contents 1146 | 1 1147 | 1148 | 1149 | Contents 1150 | 1 1151 | 1152 | 1153 | 1154 | 1155 | Contents\Resources 1156 | 1 1157 | 1158 | 1159 | Contents\Resources 1160 | 1 1161 | 1162 | 1163 | 1164 | 1165 | library\lib\armeabi-v7a 1166 | 1 1167 | 1168 | 1169 | library\lib\arm64-v8a 1170 | 1 1171 | 1172 | 1173 | 1 1174 | 1175 | 1176 | 1 1177 | 1178 | 1179 | 1 1180 | 1181 | 1182 | 1 1183 | 1184 | 1185 | Contents\MacOS 1186 | 1 1187 | 1188 | 1189 | Contents\MacOS 1190 | 1 1191 | 1192 | 1193 | 0 1194 | 1195 | 1196 | 1197 | 1198 | library\lib\armeabi-v7a 1199 | 1 1200 | 1201 | 1202 | 1203 | 1204 | 1 1205 | 1206 | 1207 | 1 1208 | 1209 | 1210 | 1211 | 1212 | Assets 1213 | 1 1214 | 1215 | 1216 | Assets 1217 | 1 1218 | 1219 | 1220 | 1221 | 1222 | Assets 1223 | 1 1224 | 1225 | 1226 | Assets 1227 | 1 1228 | 1229 | 1230 | 1231 | 1232 | 1233 | 1234 | 1235 | 1236 | 1237 | 1238 | 1239 | 1240 | 1241 | 1242 | True 1243 | False 1244 | 1245 | 1246 | 12 1247 | 1248 | 1249 | 1250 | 1251 |
1252 | -------------------------------------------------------------------------------- /Demo/Delphi10.4/IGDIPlusDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmitov/IGDIPlus/5c1ffebe21b119bd5fc913c68f3d52960d64b2cf/Demo/Delphi10.4/IGDIPlusDemo.res -------------------------------------------------------------------------------- /Demo/Delphi10.4/Unit1.dfm: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 208 3 | Top = 149 4 | Caption = 'IGDI+ Demo' 5 | ClientHeight = 333 6 | ClientWidth = 595 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'MS Sans Serif' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | OnPaint = FormPaint 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | end 18 | -------------------------------------------------------------------------------- /Demo/Delphi10.4/Unit1.pas: -------------------------------------------------------------------------------- 1 | unit Unit1; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs; 8 | 9 | type 10 | TForm1 = class(TForm) 11 | procedure FormPaint(Sender: TObject); 12 | private 13 | { Private declarations } 14 | public 15 | { Public declarations } 16 | end; 17 | 18 | var 19 | Form1: TForm1; 20 | 21 | implementation 22 | 23 | uses 24 | System.Types, IGDIPlus, VCL.IGDIPlusExt; 25 | 26 | {$R *.dfm} 27 | 28 | procedure TForm1.FormPaint(Sender: TObject); 29 | begin 30 | var AGraphics := TIGPGraphics.Create( Canvas ); 31 | AGraphics.SmoothingMode := TIGPSmoothingMode.AntiAlias; 32 | AGraphics.TextRenderingHint := TIGPTextRenderingHint.AntiAlias; 33 | 34 | var ALeftTopCorner := TPointF.Create( 20, 20 ); 35 | var AFont := TIGPFont.Create( 'Microsoft Sans Serif', 40, [ fsBold ] ); 36 | var ARect := AGraphics.GetStringBoundingBoxF( 'Welcome to IGDI+', AFont, ALeftTopCorner ); 37 | var ARect1 := ARect.Inflate( 10, 10 ); 38 | 39 | // Draw a fancy rounded rectangle. 40 | AGraphics.DrawRoundRectangleF( 41 | TIGPPen.Create( TIGPLinearGradientBrush.Create( ARect1.Inflate( 2, 2 ), aclRed, aclBlue, TIGPLinearGradientMode.Vertical ), 4 ), 42 | TIGPPathGradientBrush.Create( 43 | TIGPGraphicsPath.Create().AddRoundRectangleF( ARect1, TIGPSizeF.Create( 20, 20 ) ) 44 | ) 45 | .SetInterpolationColorArrays( [ aclGreen, aclCyan, aclYellow ], [ 0, 0.3, 1 ] ) 46 | .SetCenterPointF( TPointF.Create( 250, 50 )) 47 | .SetFocusScales( 0.87, 0.2 ), 48 | ARect1, TIGPSizeF.Create( 20, 20 ) ); 49 | 50 | // Draw a text with semitransparent shadow. 51 | AGraphics.DrawStringF( 'Welcome to IGDI+', 52 | AFont, 53 | TPointF.Create( 23, 23 ), 54 | TIGPSolidBrush.Create( MakeARGBColor( 50, aclBlack )) ) 55 | 56 | .DrawStringF( 'Welcome to IGDI+', 57 | AFont, 58 | ALeftTopCorner, 59 | TIGPLinearGradientBrush.Create( ARect, aclRed, aclBlue, TIGPLinearGradientMode.ForwardDiagonal )); 60 | 61 | 62 | // Draw a closed curve. 63 | AGraphics.DrawClosedCurveF( TIGPPen.Create( aclRed, 3 ), TIGPSolidBrush.Create( aclBlue ), 64 | [ 65 | TPointF.Create( 60, 160 ), 66 | TPointF.Create( 150, 180 ), 67 | TPointF.Create( 200, 140 ), 68 | TPointF.Create( 180, 220 ), 69 | TPointF.Create( 120, 200 ), 70 | TPointF.Create( 80, 260 ) 71 | ] ); 72 | 73 | // Draw a semitransparent star. 74 | var APath := TIGPGraphicsPath.Create(); 75 | APath.AddLinesF( 76 | [ 77 | TPointF.Create( 75, 0 ), 78 | TPointF.Create( 100, 50 ), 79 | TPointF.Create( 150, 50 ), 80 | TPointF.Create( 112, 75 ), 81 | TPointF.Create( 150, 150 ), 82 | TPointF.Create( 75, 100 ), 83 | TPointF.Create( 0, 150 ), 84 | TPointF.Create( 37, 75 ), 85 | TPointF.Create( 0, 50 ), 86 | TPointF.Create( 50, 50 ) 87 | ] ); 88 | 89 | AGraphics.TranslateTransform( 420, 30 ) 90 | .FillPath( 91 | TIGPPathGradientBrush.Create( APath ) 92 | .SetCenterColor( MakeColor( 200, 255, 0, 0)) 93 | .SetSurroundColors( 94 | [ 95 | MakeColor(80, 0, 0, 0), 96 | MakeColor(80, 0, 255, 0), 97 | MakeColor(80, 0, 0, 255), 98 | MakeColor(80, 255, 255, 255), 99 | MakeColor(80, 0, 0, 0), 100 | MakeColor(80, 0, 255, 0), 101 | MakeColor(80, 0, 0, 255), 102 | MakeColor(80, 255, 255, 255), 103 | MakeColor(80, 0, 0, 0), 104 | MakeColor(80, 0, 255, 0) 105 | ] ), 106 | 107 | APath ); 108 | 109 | // Draw rotated ellipse. 110 | AGraphics.ResetTransform() 111 | .TranslateTransform( 300, 160 ) 112 | .RotateTransform( 30 ) 113 | .DrawEllipseF( 114 | TIGPPen.Create( aclRed, 3 ), 115 | TIGPLinearGradientBrush.Create( TPointF.Create( 0, 0 ), TPointF.Create( 20, 20 ), aclYellow, aclGreen ) 116 | .SetWrapMode( TIGPWrapMode.TileFlipX ), 117 | 0, 0, 200, 80 ); 118 | end; 119 | 120 | end. 121 | -------------------------------------------------------------------------------- /Demo/Delphi11.0/IGDIPlusDemo.dpr: -------------------------------------------------------------------------------- 1 | program IGDIPlusDemo; 2 | 3 | uses 4 | Vcl.Forms, 5 | Unit1 in 'Unit1.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Demo/Delphi11.0/IGDIPlusDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmitov/IGDIPlus/5c1ffebe21b119bd5fc913c68f3d52960d64b2cf/Demo/Delphi11.0/IGDIPlusDemo.res -------------------------------------------------------------------------------- /Demo/Delphi11.0/Unit1.dfm: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 208 3 | Top = 149 4 | Caption = 'IGDI+ Demo' 5 | ClientHeight = 333 6 | ClientWidth = 595 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'MS Sans Serif' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | OnPaint = FormPaint 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | end 18 | -------------------------------------------------------------------------------- /Demo/Delphi11.0/Unit1.pas: -------------------------------------------------------------------------------- 1 | unit Unit1; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs; 8 | 9 | type 10 | TForm1 = class(TForm) 11 | procedure FormPaint(Sender: TObject); 12 | private 13 | { Private declarations } 14 | public 15 | { Public declarations } 16 | end; 17 | 18 | var 19 | Form1: TForm1; 20 | 21 | implementation 22 | 23 | uses 24 | System.Types, IGDIPlus, VCL.IGDIPlusExt; 25 | 26 | {$R *.dfm} 27 | 28 | procedure TForm1.FormPaint(Sender: TObject); 29 | begin 30 | var AGraphics := TIGPGraphics.Create( Canvas ); 31 | AGraphics.SmoothingMode := TIGPSmoothingMode.AntiAlias; 32 | AGraphics.TextRenderingHint := TIGPTextRenderingHint.AntiAlias; 33 | 34 | var ALeftTopCorner := TPointF.Create( 20, 20 ); 35 | var AFont := TIGPFont.Create( 'Microsoft Sans Serif', 40, [ fsBold ] ); 36 | var ARect := AGraphics.GetStringBoundingBoxF( 'Welcome to IGDI+', AFont, ALeftTopCorner ); 37 | var ARect1 := ARect.Inflate( 10, 10 ); 38 | 39 | // Draw a fancy rounded rectangle. 40 | AGraphics.DrawRoundRectangleF( 41 | TIGPPen.Create( TIGPLinearGradientBrush.Create( ARect1.Inflate( 2, 2 ), aclRed, aclBlue, TIGPLinearGradientMode.Vertical ), 4 ), 42 | TIGPPathGradientBrush.Create( 43 | TIGPGraphicsPath.Create().AddRoundRectangleF( ARect1, TIGPSizeF.Create( 20, 20 ) ) 44 | ) 45 | .SetInterpolationColorArrays( [ aclGreen, aclCyan, aclYellow ], [ 0, 0.3, 1 ] ) 46 | .SetCenterPointF( TPointF.Create( 250, 50 )) 47 | .SetFocusScales( 0.87, 0.2 ), 48 | ARect1, TIGPSizeF.Create( 20, 20 ) ); 49 | 50 | // Draw a text with semitransparent shadow. 51 | AGraphics.DrawStringF( 'Welcome to IGDI+', 52 | AFont, 53 | TPointF.Create( 23, 23 ), 54 | TIGPSolidBrush.Create( MakeARGBColor( 50, aclBlack )) ) 55 | 56 | .DrawStringF( 'Welcome to IGDI+', 57 | AFont, 58 | ALeftTopCorner, 59 | TIGPLinearGradientBrush.Create( ARect, aclRed, aclBlue, TIGPLinearGradientMode.ForwardDiagonal )); 60 | 61 | 62 | // Draw a closed curve. 63 | AGraphics.DrawClosedCurveF( TIGPPen.Create( aclRed, 3 ), TIGPSolidBrush.Create( aclBlue ), 64 | [ 65 | TPointF.Create( 60, 160 ), 66 | TPointF.Create( 150, 180 ), 67 | TPointF.Create( 200, 140 ), 68 | TPointF.Create( 180, 220 ), 69 | TPointF.Create( 120, 200 ), 70 | TPointF.Create( 80, 260 ) 71 | ] ); 72 | 73 | // Draw a semitransparent star. 74 | var APath := TIGPGraphicsPath.Create(); 75 | APath.AddLinesF( 76 | [ 77 | TPointF.Create( 75, 0 ), 78 | TPointF.Create( 100, 50 ), 79 | TPointF.Create( 150, 50 ), 80 | TPointF.Create( 112, 75 ), 81 | TPointF.Create( 150, 150 ), 82 | TPointF.Create( 75, 100 ), 83 | TPointF.Create( 0, 150 ), 84 | TPointF.Create( 37, 75 ), 85 | TPointF.Create( 0, 50 ), 86 | TPointF.Create( 50, 50 ) 87 | ] ); 88 | 89 | AGraphics.TranslateTransform( 420, 30 ) 90 | .FillPath( 91 | TIGPPathGradientBrush.Create( APath ) 92 | .SetCenterColor( MakeColor( 200, 255, 0, 0)) 93 | .SetSurroundColors( 94 | [ 95 | MakeColor(80, 0, 0, 0), 96 | MakeColor(80, 0, 255, 0), 97 | MakeColor(80, 0, 0, 255), 98 | MakeColor(80, 255, 255, 255), 99 | MakeColor(80, 0, 0, 0), 100 | MakeColor(80, 0, 255, 0), 101 | MakeColor(80, 0, 0, 255), 102 | MakeColor(80, 255, 255, 255), 103 | MakeColor(80, 0, 0, 0), 104 | MakeColor(80, 0, 255, 0) 105 | ] ), 106 | 107 | APath ); 108 | 109 | // Draw rotated ellipse. 110 | AGraphics.ResetTransform() 111 | .TranslateTransform( 300, 160 ) 112 | .RotateTransform( 30 ) 113 | .DrawEllipseF( 114 | TIGPPen.Create( aclRed, 3 ), 115 | TIGPLinearGradientBrush.Create( TPointF.Create( 0, 0 ), TPointF.Create( 20, 20 ), aclYellow, aclGreen ) 116 | .SetWrapMode( TIGPWrapMode.TileFlipX ), 117 | 0, 0, 200, 80 ); 118 | end; 119 | 120 | end. 121 | -------------------------------------------------------------------------------- /Demo/Delphi12.0/IGDIPlusDemo.dpr: -------------------------------------------------------------------------------- 1 | program IGDIPlusDemo; 2 | 3 | uses 4 | Vcl.Forms, 5 | Unit1 in 'Unit1.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Demo/Delphi12.0/IGDIPlusDemo.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {5EA4B35B-F6D3-416E-8F4B-D95F941B1B33} 4 | 20.1 5 | VCL 6 | IGDIPlusDemo.dpr 7 | True 8 | Debug 9 | Win32 10 | 1 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 | Base 40 | true 41 | 42 | 43 | IGDIPlusDemo 44 | $(BDS)\bin\delphi_PROJECTICON.ico 45 | System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) 46 | .\$(Platform)\$(Config) 47 | .\$(Platform)\$(Config) 48 | false 49 | false 50 | false 51 | false 52 | false 53 | ..\..;$(DCC_UnitSearchPath) 54 | 1033 55 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 56 | 57 | 58 | true 59 | true 60 | $(BDS)\bin\default_app.manifest 61 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 62 | 1033 63 | VideoLabGenericBasicPkgD17;OpenWireBindingPkgD17;DBXSqliteDriver;TextLabBasicPkgD17;fmx;IndySystem;TeeDB;TimingLabBasicPkgD17;PlotLabPkgD17;vclib;inetdbbde;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DataSnapServer;DataSnapProviderClient;DBXSybaseASEDriver;AudioLabBasicPkgD17;DbxCommonDriver;FMX.PlotLabPkgD17;vclimg;UserLabBasicPkgD17;dbxcds;MetropolisUILiveTile;vcldb;InstrumentLabPkgD17;vcldsnap;AudioLabEssentialPkgD17;DBXDb2Driver;OpenWireEditorDsnD17;DBXOracleDriver;CustomIPTransport;SignalLabPkgD17;vclribbon;VideoLabPkgD17;dsnap;IndyIPServer;fmxase;vcl;IndyCore;IndyIPCommon;CloudService;DBXMSSQLDriver;FmxTeeUI;frxDB17;CodeSiteExpressPkg;VideoLabAdditionalPkgD17;FMX.UserLabBasicPkgD17;inetdbxpress;webdsnap;FMX.VideoLabBasicPkgD17;LogicLabPkgD17;IntelligenceLabPkgD17;adortl;OpenWireLabPkgD17;fs17;frx17;bindcompfmx;vcldbx;VisionLabPkgD17;FMX.SignalLabBasicPkgD17;rtl;dbrtl;DbxClientDriver;bindcomp;inetdb;AudioLabPkgD17;Tee;VideoLabBasicPkgD17;DBXOdbcDriver;xmlrtl;svnui;ibxpress;OpenWirePkgD17;FMX.SignalLabScopePkgD17;AudioLabGenericBasicPkgD17;IndyProtocols;DBXMySQLDriver;MediaLabBasicPkgD17;vclactnband;bindengine;soaprtl;bindcompdbx;FMXTee;TeeUI;bindcompvcl;vclie;SignalLabAdditionalPkgD17;vcltouch;websnap;LogicLabBasicPkgD17;VclSmp;FMX.MediaLabBasicPkgD17;DBXInformixDriver;Intraweb;DataSnapConnectors;dsnapcon;DBXFirebirdDriver;inet;fsDB17;fmxobj;SignalLabScopePkgD17;vclx;frxe17;svn;DBXSybaseASADriver;fmxdae;SignalLabGenericPkgD17;bdertl;SignalLabBasicPkgD17;MediaLabPkgD17;FMX.InstrumentLabPkgD17;dbexpress;DataSnapIndy10ServerTransport;SignalLabGenericBasicPkgD17;IndyIPClient;$(DCC_UsePackage) 64 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 65 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 66 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 67 | 68 | 69 | DBXSqliteDriver;fmx;IndySystem;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DataSnapServer;DataSnapProviderClient;DBXSybaseASEDriver;DbxCommonDriver;vclimg;dbxcds;vcldb;vcldsnap;DBXDb2Driver;DBXOracleDriver;CustomIPTransport;dsnap;IndyIPServer;fmxase;vcl;IndyCore;IndyIPCommon;DBXMSSQLDriver;inetdbxpress;webdsnap;bindcompfmx;rtl;dbrtl;DbxClientDriver;bindcomp;inetdb;DBXOdbcDriver;xmlrtl;IndyProtocols;DBXMySQLDriver;vclactnband;bindengine;soaprtl;bindcompdbx;bindcompvcl;vclie;vcltouch;websnap;VclSmp;DBXInformixDriver;dsnapcon;DBXFirebirdDriver;inet;fmxobj;vclx;DBXSybaseASADriver;fmxdae;dbexpress;DataSnapIndy10ServerTransport;IndyIPClient;$(DCC_UsePackage) 70 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 71 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 72 | 73 | 74 | DEBUG;$(DCC_Define) 75 | true 76 | false 77 | true 78 | true 79 | true 80 | 81 | 82 | false 83 | Debug 84 | true 85 | 1033 86 | none 87 | 88 | 89 | false 90 | RELEASE;$(DCC_Define) 91 | 0 92 | 0 93 | 94 | 95 | 96 | MainSource 97 | 98 | 99 |
Form1
100 | dfm 101 |
102 | 103 | Base 104 | 105 | 106 | Cfg_1 107 | Base 108 | 109 | 110 | Cfg_2 111 | Base 112 | 113 |
114 | 115 | Delphi.Personality.12 116 | 117 | 118 | 119 | 120 | IGDIPlusDemo.dpr 121 | 122 | 123 | False 124 | False 125 | 1 126 | 0 127 | 0 128 | 0 129 | False 130 | False 131 | False 132 | False 133 | False 134 | 1033 135 | 1252 136 | 137 | 138 | 139 | 140 | 1.0.0.0 141 | 142 | 143 | 144 | 145 | 146 | 1.0.0.0 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | Embarcadero C++Builder Office 2000 Servers Package 159 | Embarcadero C++Builder Office XP Servers Package 160 | Microsoft Office 2000 Sample Automation Server Wrapper Components 161 | Microsoft Office XP Sample Automation Server Wrapper Components 162 | 163 | 164 | 165 | 166 | True 167 | False 168 | 169 | 170 | 12 171 | 172 | 173 | 174 | 175 |
176 | -------------------------------------------------------------------------------- /Demo/Delphi12.0/IGDIPlusDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmitov/IGDIPlus/5c1ffebe21b119bd5fc913c68f3d52960d64b2cf/Demo/Delphi12.0/IGDIPlusDemo.res -------------------------------------------------------------------------------- /Demo/Delphi12.0/Unit1.dfm: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 208 3 | Top = 149 4 | Caption = 'IGDI+ Demo' 5 | ClientHeight = 333 6 | ClientWidth = 595 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'MS Sans Serif' 12 | Font.Style = [] 13 | OnPaint = FormPaint 14 | TextHeight = 13 15 | end 16 | -------------------------------------------------------------------------------- /Demo/Delphi12.0/Unit1.pas: -------------------------------------------------------------------------------- 1 | unit Unit1; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs; 8 | 9 | type 10 | TForm1 = class(TForm) 11 | procedure FormPaint(Sender: TObject); 12 | private 13 | { Private declarations } 14 | public 15 | { Public declarations } 16 | end; 17 | 18 | var 19 | Form1: TForm1; 20 | 21 | implementation 22 | 23 | uses 24 | System.Types, IGDIPlus, VCL.IGDIPlusExt; 25 | 26 | {$R *.dfm} 27 | 28 | procedure TForm1.FormPaint(Sender: TObject); 29 | begin 30 | var AGraphics := TIGPGraphics.Create( Canvas ); 31 | AGraphics.SmoothingMode := TIGPSmoothingMode.AntiAlias; 32 | AGraphics.TextRenderingHint := TIGPTextRenderingHint.AntiAlias; 33 | 34 | var ALeftTopCorner := TPointF.Create( 20, 20 ); 35 | var AFont := TIGPFont.Create( 'Microsoft Sans Serif', 40, [ fsBold ] ); 36 | var ARect := AGraphics.GetStringBoundingBoxF( 'Welcome to IGDI+', AFont, ALeftTopCorner ); 37 | var ARect1 := ARect.Inflate( 10, 10 ); 38 | 39 | // Draw a fancy rounded rectangle. 40 | AGraphics.DrawRoundRectangleF( 41 | TIGPPen.Create( TIGPLinearGradientBrush.Create( ARect1.Inflate( 2, 2 ), aclRed, aclBlue, TIGPLinearGradientMode.Vertical ), 4 ), 42 | TIGPPathGradientBrush.Create( 43 | TIGPGraphicsPath.Create().AddRoundRectangleF( ARect1, TIGPSizeF.Create( 20, 20 ) ) 44 | ) 45 | .SetInterpolationColorArrays( [ aclGreen, aclCyan, aclYellow ], [ 0, 0.3, 1 ] ) 46 | .SetCenterPointF( TPointF.Create( 250, 50 )) 47 | .SetFocusScales( 0.87, 0.2 ), 48 | ARect1, TIGPSizeF.Create( 20, 20 ) ); 49 | 50 | // Draw a text with semitransparent shadow. 51 | AGraphics.DrawStringF( 'Welcome to IGDI+', 52 | AFont, 53 | TPointF.Create( 23, 23 ), 54 | TIGPSolidBrush.Create( MakeARGBColor( 50, aclBlack )) ) 55 | 56 | .DrawStringF( 'Welcome to IGDI+', 57 | AFont, 58 | ALeftTopCorner, 59 | TIGPLinearGradientBrush.Create( ARect, aclRed, aclBlue, TIGPLinearGradientMode.ForwardDiagonal )); 60 | 61 | 62 | // Draw a closed curve. 63 | AGraphics.DrawClosedCurveF( TIGPPen.Create( aclRed, 3 ), TIGPSolidBrush.Create( aclBlue ), 64 | [ 65 | TPointF.Create( 60, 160 ), 66 | TPointF.Create( 150, 180 ), 67 | TPointF.Create( 200, 140 ), 68 | TPointF.Create( 180, 220 ), 69 | TPointF.Create( 120, 200 ), 70 | TPointF.Create( 80, 260 ) 71 | ] ); 72 | 73 | // Draw a semitransparent star. 74 | var APath := TIGPGraphicsPath.Create(); 75 | APath.AddLinesF( 76 | [ 77 | TPointF.Create( 75, 0 ), 78 | TPointF.Create( 100, 50 ), 79 | TPointF.Create( 150, 50 ), 80 | TPointF.Create( 112, 75 ), 81 | TPointF.Create( 150, 150 ), 82 | TPointF.Create( 75, 100 ), 83 | TPointF.Create( 0, 150 ), 84 | TPointF.Create( 37, 75 ), 85 | TPointF.Create( 0, 50 ), 86 | TPointF.Create( 50, 50 ) 87 | ] ); 88 | 89 | AGraphics.TranslateTransform( 420, 30 ) 90 | .FillPath( 91 | TIGPPathGradientBrush.Create( APath ) 92 | .SetCenterColor( MakeColor( 200, 255, 0, 0)) 93 | .SetSurroundColors( 94 | [ 95 | MakeColor(80, 0, 0, 0), 96 | MakeColor(80, 0, 255, 0), 97 | MakeColor(80, 0, 0, 255), 98 | MakeColor(80, 255, 255, 255), 99 | MakeColor(80, 0, 0, 0), 100 | MakeColor(80, 0, 255, 0), 101 | MakeColor(80, 0, 0, 255), 102 | MakeColor(80, 255, 255, 255), 103 | MakeColor(80, 0, 0, 0), 104 | MakeColor(80, 0, 255, 0) 105 | ] ), 106 | 107 | APath ); 108 | 109 | // Draw rotated ellipse. 110 | AGraphics.ResetTransform() 111 | .TranslateTransform( 300, 160 ) 112 | .RotateTransform( 30 ) 113 | .DrawEllipseF( 114 | TIGPPen.Create( aclRed, 3 ), 115 | TIGPLinearGradientBrush.Create( TPointF.Create( 0, 0 ), TPointF.Create( 20, 20 ), aclYellow, aclGreen ) 116 | .SetWrapMode( TIGPWrapMode.TileFlipX ), 117 | 0, 0, 200, 80 ); 118 | 119 | end; 120 | 121 | end. 122 | -------------------------------------------------------------------------------- /FMX.IGDIPlusExt.pas: -------------------------------------------------------------------------------- 1 | {****************************************************************************** 2 | 3 | Copyright (C) 2008-2025 by Mitov Software 4 | mitov@mitov.com 5 | www.mitov.com 6 | www.igdiplus.org 7 | www.openwire.org 8 | 9 | This software is provided 'as-is', without any express or 10 | implied warranty. In no event will the author be held liable 11 | for any damages arising from the use of this software. 12 | 13 | Permission is granted to anyone to use this software for any 14 | purpose, including commercial applications, and to alter it 15 | and redistribute it freely, subject to the following 16 | restrictions: 17 | 18 | 1. The origin of this software must not be misrepresented, 19 | you must not claim that you wrote the original software. 20 | If you use this software in a product, an acknowledgment 21 | in the product documentation would be appreciated but is 22 | not required. 23 | 24 | 2. Altered source versions must be plainly marked as such, and 25 | must not be misrepresented as being the original software. 26 | 27 | 3. This notice may not be removed or altered from any source 28 | distribution. 29 | 30 | ******************************************************************************} 31 | 32 | unit FMX.IGDIPlusExt; 33 | 34 | {$ALIGN ON} 35 | {$MINENUMSIZE 4} 36 | 37 | {$IFNDEF VER130} 38 | {$IFNDEF VER140} 39 | {$WARN UNSAFE_TYPE OFF} 40 | {$WARN UNSAFE_CODE OFF} 41 | {$WARN UNSAFE_CAST OFF} 42 | {$ENDIF} 43 | {$ENDIF} 44 | 45 | interface 46 | 47 | uses 48 | FMX.Graphics, System.Classes, System.SysUtils, IGDIPlus, Mitov.Containers.Common; 49 | 50 | // VCL.IGDIPlusExt needs to be in implementation to allow C++ Builder linking! 51 | 52 | type 53 | TIGPFMXBitmap = class( TIGPBitmap ) 54 | public 55 | class function Create( ABitmap : TBitmap ) : IGPBitmap; inline; 56 | 57 | public 58 | constructor CreateObject( ABitmap : TBitmap ); 59 | 60 | end; 61 | //--------------------------------------------------------------------------- 62 | TIGPFMXBitmapHelper = class helper for TBitmap 63 | protected 64 | function GetGPBitmap() : IGPBitmap; inline; 65 | function GetGraphics() : IGPGraphics; inline; 66 | 67 | public 68 | function ForGraphics( const AProc : TConstProc ) : TBitmap; 69 | 70 | public 71 | property GPBitmap : IGPBitmap read GetGPBitmap; 72 | property Graphics : IGPGraphics read GetGraphics; 73 | 74 | end; 75 | //--------------------------------------------------------------------------- 76 | TIGPFMXGraphics = class( TIGPGraphics ) 77 | protected 78 | FBitmap : IGPBitmap; 79 | FCanvas : TCanvas; 80 | 81 | public 82 | class function Create( ACanvas : TCanvas ) : IGPGraphics; inline; 83 | 84 | public 85 | constructor CreateObject( ACanvas : TCanvas ); 86 | destructor Destroy(); override; 87 | 88 | end; 89 | //--------------------------------------------------------------------------- 90 | TIGPFMXCanvasHelper = class helper for TCanvas 91 | protected 92 | function GetGraphics() : IGPGraphics; inline; 93 | 94 | public 95 | property Graphics : IGPGraphics read GetGraphics; 96 | 97 | end; 98 | //--------------------------------------------------------------------------- 99 | implementation 100 | 101 | uses 102 | {$IFDEF MSWINDOWS} 103 | Winapi.Windows, 104 | {$ENDIF} 105 | System.Types, System.UITypes; 106 | 107 | type 108 | TFMXBitmap = FMX.Graphics.TBitmap; 109 | 110 | //--------------------------------------------------------------------------- 111 | procedure CopyC4R( pSrc : PByte; 112 | srcStep: Integer; 113 | pDst: PByte; 114 | dstStep: Integer; 115 | roiSize: TSize); 116 | begin 117 | for var Y : Integer := 0 to roiSize.cy - 1 do 118 | begin 119 | Move( pSrc^, pDst^, roiSize.cx * 4 ); 120 | Inc( pSrc, srcStep ); 121 | Inc( pDst, dstStep ); 122 | end; 123 | 124 | end; 125 | //--------------------------------------------------------------------------- 126 | //--------------------------------------------------------------------------- 127 | //--------------------------------------------------------------------------- 128 | //--------------------------------------------------------------------------- 129 | constructor TIGPFMXBitmap.CreateObject( ABitmap : TFMXBitmap ); 130 | begin 131 | {$IFDEF MSWINDOWS} 132 | var ASize := TSize.Create( ABitmap.Width, ABitmap.Height ); 133 | inherited CreateObject( ASize.cx, ASize.cy ); 134 | var AInstanceHolder : IGPBitmap := Self; 135 | 136 | var AGPBitmapData := LockBits( TIGPRect.Create( ASize ), [ TIGPImageLockMode.Read ], GPPixelFormat32bppARGB ); 137 | var ABitmapData : TBitmapData; 138 | 139 | ABitmap.Map( TMapAccess.Read, ABitmapData ); 140 | 141 | CopyC4R( PByte( ABitmapData.Data ), ABitmapData.Pitch, AGPBitmapData.Scan0, AGPBitmapData.Stride, ASize ); 142 | ABitmap.Unmap( ABitmapData ); 143 | AGPBitmapData := NIL; 144 | {$ELSE} 145 | inherited Create(); 146 | {$ENDIF} 147 | end; 148 | //--------------------------------------------------------------------------- 149 | class function TIGPFMXBitmap.Create( ABitmap : TFMXBitmap ) : IGPBitmap; 150 | begin 151 | Result := CreateObject( ABitmap ); 152 | end; 153 | //--------------------------------------------------------------------------- 154 | //--------------------------------------------------------------------------- 155 | //--------------------------------------------------------------------------- 156 | //--------------------------------------------------------------------------- 157 | function TIGPFMXBitmapHelper.GetGPBitmap() : IGPBitmap; 158 | begin 159 | Result := TIGPFMXBitmap.CreateObject( Self ); 160 | end; 161 | //--------------------------------------------------------------------------- 162 | function TIGPFMXBitmapHelper.GetGraphics() : IGPGraphics; 163 | begin 164 | Result := TIGPFMXGraphics.CreateObject( Canvas ); 165 | end; 166 | //--------------------------------------------------------------------------- 167 | function TIGPFMXBitmapHelper.ForGraphics( const AProc : TConstProc ) : FMX.Graphics.TBitmap; 168 | begin 169 | Assert( Assigned( AProc )); 170 | AProc( TIGPFMXGraphics.CreateObject( Canvas ) ); 171 | Result := Self; 172 | end; 173 | //--------------------------------------------------------------------------- 174 | //--------------------------------------------------------------------------- 175 | //--------------------------------------------------------------------------- 176 | //--------------------------------------------------------------------------- 177 | constructor TIGPFMXGraphics.CreateObject( ACanvas : TCanvas ); 178 | begin 179 | {$IFDEF MSWINDOWS} 180 | FBitmap := TIGPBitmap.Create( ACanvas.Width, ACanvas.Height ); 181 | inherited CreateObject( FBitmap ); 182 | {$ELSE} 183 | inherited CreateObject(); 184 | {$ENDIF} 185 | FCanvas := ACanvas; 186 | end; 187 | //--------------------------------------------------------------------------- 188 | destructor TIGPFMXGraphics.Destroy(); 189 | begin 190 | {$IFDEF MSWINDOWS} 191 | var ASize := TSize.Create( FCanvas.Width, FCanvas.Height ); 192 | var ABitmap := TSmartPointer.Create( TFMXBitmap.Create( ASize.cx, ASize.cy )); 193 | var ABitmapData := FBitmap.LockBits( TIGPRect.Create( ASize ), [ TIGPImageLockMode.Read ], GPPixelFormat32bppARGB ); 194 | 195 | var AFMXBitmapData : TBitmapData; 196 | ABitmap.Map( TMapAccess.Write, AFMXBitmapData ); 197 | 198 | CopyC4R( ABitmapData.Scan0, ABitmapData.Stride, PByte( AFMXBitmapData.Data ), AFMXBitmapData.Pitch, ASize ); 199 | ABitmap.Unmap( AFMXBitmapData ); 200 | 201 | ABitmapData := NIL; 202 | FCanvas.BeginScene(); 203 | try 204 | FCanvas.DrawBitmap( ABitmap(), TRectF.Create( 0, 0, ASize.cx, ASize.cy ), TRectF.Create( 0, 0, ASize.cx, ASize.cy ), 1 ); 205 | finally 206 | FCanvas.EndScene(); 207 | end; 208 | 209 | ABitmap := NIL; 210 | {$ENDIF} 211 | inherited; 212 | end; 213 | //--------------------------------------------------------------------------- 214 | class function TIGPFMXGraphics.Create( ACanvas : TCanvas ) : IGPGraphics; 215 | begin 216 | Result := CreateObject( ACanvas ); 217 | end; 218 | //--------------------------------------------------------------------------- 219 | //--------------------------------------------------------------------------- 220 | //--------------------------------------------------------------------------- 221 | //--------------------------------------------------------------------------- 222 | function TIGPFMXCanvasHelper.GetGraphics() : IGPGraphics; 223 | begin 224 | Result := TIGPFMXGraphics.CreateObject( Self ); 225 | end; 226 | //--------------------------------------------------------------------------- 227 | //--------------------------------------------------------------------------- 228 | //--------------------------------------------------------------------------- 229 | //--------------------------------------------------------------------------- 230 | end. 231 | 232 | 233 | -------------------------------------------------------------------------------- /Help/IGDIPlusD12_h2reg.ini: -------------------------------------------------------------------------------- 1 | ;------- Register -r switch 2 | 3 | [Reg_Namespace] 4 | ;|| 5 | ;hw.h2reg|COL_Master.HxC|H2Reg.exe Documentation - www.helpware.net 6 | IGDIPlusVCL.HxS|IGDIPlusDoc_COL_MASTER.HxC|PlotlLab Components 7 | 8 | [Reg_Title] 9 | ;|||||||||| 10 | ;hw.h2reg|h2reg|1033|h2reg.HxS|h2reg.HxS|||||| 11 | IGDIPlusVCL.HxS|IGDIPlusVCL||IGDIPlusVCL.HxS|IGDIPlusVCL.HxS| 12 | 13 | [Reg_Plugin] 14 | ;|||| 15 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 16 | embarcadero.rs2009|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 17 | 18 | [Reg_Filter] 19 | ;|| 20 | ;hw.h2reg|h2reg helpware documentation|("helpware"="h2reg") 21 | 22 | ;------- UnRegister -u switch 23 | 24 | [UnReg_Namespace] 25 | ; 26 | ;hw.h2reg 27 | IGDIPlusVCL.HxS 28 | 29 | [UnReg_Title] 30 | ;|| 31 | ;hw.h2reg|h2reg|1033 32 | IGDIPlusVCL.HxS|IGDIPlusVCL| 33 | 34 | [UnReg_Plugin] 35 | ;|||| 36 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 37 | embarcadero.rs2009|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 38 | 39 | [UnReg_Filter] 40 | ;| 41 | ;hw.h2reg|h2reg helpware documentation 42 | 43 | ;------- Merge -m switch 44 | 45 | [Merge_Namespace] 46 | ;ms.vscc+ 47 | 48 | ;------ Optional Stuff 49 | 50 | [MAIN] 51 | DebugMode=0 ;Set to 1 to log everything - Checks your resources (ship with =0) 52 | DumpNSToLog_before=0 ;Very verbose but good for debugging - dumps all NS info to log file before Registration 53 | DumpNSToLog_after=0 ;Very verbose but good for debugging - dumps all NS info to log file after Registration 54 | OKtoReport_FinalRegError=0 ;Report general error at end if a registration error was logged 55 | OKtoReport_FinalUnRegError=0 ;Report general error at end if a unregistration error was logged 56 | 57 | ;Advanced feature - These can be set then used as etc specifiers. They can 58 | ;also be set via the H2Reg.exe command line. Command line has preference over INI file. 59 | UserDir1='' 60 | UserDir2='' 61 | UserDir3='' 62 | UserDir4='' 63 | 64 | 65 | ; Strings Resources & Translation 66 | [en] ; English 67 | ErrSt_SysFileNotFound = 'Installation Error. Error reading system file or file not found.|%s' 68 | ErrSt_MSHelp2RTNotFound = 'MS Help 2.x runtime files are not installed on this PC.' 69 | ErrSt_NotAdminMode = 'You must be logged on as an Administrator.' 70 | ErrSt_Extra = 'Installation/registration of Help files cannot proceed.' 71 | 72 | Msg_Registering = 'Registering Online Documentation Files:' 73 | Msg_UnRegistering = 'Unregistering Online Documentation Files:' 74 | Msg_LoggingNSInfo = 'Logging Namespace Info' 75 | Msg_Registering_Namespaces = 'Registering Namespaces' 76 | Msg_Registering_Titles = 'Registering Titles' 77 | Msg_Registering_Plugins = 'Registering Plug-ins' 78 | Msg_Registering_Filters = 'Registering Filters' 79 | Msg_UnRegistering_Namespaces = 'Unregistering Namespaces' 80 | Msg_UnRegistering_Titles = 'Unregistering Titles' 81 | Msg_UnRegistering_Plugins = 'Unregistering Plug-ins' 82 | Msg_UnRegistering_Filters = 'Unregistering Filters' 83 | Msg_Merging_Namespaces = 'Merging Help Indexes. This may take several minutes' 84 | PopupSt_FinalRegError='There were errors reported while Registering help files.||View Log file?' 85 | PopupSt_FinalUnRegError='There were errors reported while Unregistering help files.||View Log file?' 86 | 87 | 88 | ; International Strings - Defaults to [en] 89 | [de] ; German 90 | [ja] ; Japanese 91 | [fr] ; French 92 | [es] ; Spanish 93 | [it] ; Italian 94 | [ko] ; Korean 95 | [cn] ; Chinese (Simplified) 96 | [tw] ; Chinese (Traditional) 97 | [sv] ; Swedish 98 | [nl] ; Dutch 99 | [ru] ; Russian 100 | [ar] ; Arabic 101 | [he] ; Hebrew 102 | [da] ; Danish 103 | [no] ; Norwegian 104 | [fi] ; Finnish 105 | [pt] ; Portuguese 106 | [br] ; Brazilian 107 | [cs] ; Czech 108 | [pl] ; Polish 109 | [hu] ; Hungarian 110 | [el] ; Greek 111 | [tr] ; Turkish 112 | [sl] ; Slovenian 113 | [sk] ; Slovakian 114 | [eu] ; Basque 115 | [ca] ; Catalan 116 | 117 | -------------------------------------------------------------------------------- /Help/IGDIPlusD13_h2reg.ini: -------------------------------------------------------------------------------- 1 | ;------- Register -r switch 2 | 3 | [Reg_Namespace] 4 | ;|| 5 | ;hw.h2reg|COL_Master.HxC|H2Reg.exe Documentation - www.helpware.net 6 | IGDIPlusVCL.HxS|IGDIPlusDoc_COL_MASTER.HxC|PlotlLab Components 7 | 8 | [Reg_Title] 9 | ;|||||||||| 10 | ;hw.h2reg|h2reg|1033|h2reg.HxS|h2reg.HxS|||||| 11 | IGDIPlusVCL.HxS|IGDIPlusVCL||IGDIPlusVCL.HxS|IGDIPlusVCL.HxS| 12 | 13 | [Reg_Plugin] 14 | ;|||| 15 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 16 | embarcadero.rs2010|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 17 | 18 | [Reg_Filter] 19 | ;|| 20 | ;hw.h2reg|h2reg helpware documentation|("helpware"="h2reg") 21 | 22 | ;------- UnRegister -u switch 23 | 24 | [UnReg_Namespace] 25 | ; 26 | ;hw.h2reg 27 | IGDIPlusVCL.HxS 28 | 29 | [UnReg_Title] 30 | ;|| 31 | ;hw.h2reg|h2reg|1033 32 | IGDIPlusVCL.HxS|IGDIPlusVCL| 33 | 34 | [UnReg_Plugin] 35 | ;|||| 36 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 37 | embarcadero.rs2010|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 38 | 39 | [UnReg_Filter] 40 | ;| 41 | ;hw.h2reg|h2reg helpware documentation 42 | 43 | ;------- Merge -m switch 44 | 45 | [Merge_Namespace] 46 | ;ms.vscc+ 47 | 48 | ;------ Optional Stuff 49 | 50 | [MAIN] 51 | DebugMode=0 ;Set to 1 to log everything - Checks your resources (ship with =0) 52 | DumpNSToLog_before=0 ;Very verbose but good for debugging - dumps all NS info to log file before Registration 53 | DumpNSToLog_after=0 ;Very verbose but good for debugging - dumps all NS info to log file after Registration 54 | OKtoReport_FinalRegError=0 ;Report general error at end if a registration error was logged 55 | OKtoReport_FinalUnRegError=0 ;Report general error at end if a unregistration error was logged 56 | 57 | ;Advanced feature - These can be set then used as etc specifiers. They can 58 | ;also be set via the H2Reg.exe command line. Command line has preference over INI file. 59 | UserDir1='' 60 | UserDir2='' 61 | UserDir3='' 62 | UserDir4='' 63 | 64 | 65 | ; Strings Resources & Translation 66 | [en] ; English 67 | ErrSt_SysFileNotFound = 'Installation Error. Error reading system file or file not found.|%s' 68 | ErrSt_MSHelp2RTNotFound = 'MS Help 2.x runtime files are not installed on this PC.' 69 | ErrSt_NotAdminMode = 'You must be logged on as an Administrator.' 70 | ErrSt_Extra = 'Installation/registration of Help files cannot proceed.' 71 | 72 | Msg_Registering = 'Registering Online Documentation Files:' 73 | Msg_UnRegistering = 'Unregistering Online Documentation Files:' 74 | Msg_LoggingNSInfo = 'Logging Namespace Info' 75 | Msg_Registering_Namespaces = 'Registering Namespaces' 76 | Msg_Registering_Titles = 'Registering Titles' 77 | Msg_Registering_Plugins = 'Registering Plug-ins' 78 | Msg_Registering_Filters = 'Registering Filters' 79 | Msg_UnRegistering_Namespaces = 'Unregistering Namespaces' 80 | Msg_UnRegistering_Titles = 'Unregistering Titles' 81 | Msg_UnRegistering_Plugins = 'Unregistering Plug-ins' 82 | Msg_UnRegistering_Filters = 'Unregistering Filters' 83 | Msg_Merging_Namespaces = 'Merging Help Indexes. This may take several minutes' 84 | PopupSt_FinalRegError='There were errors reported while Registering help files.||View Log file?' 85 | PopupSt_FinalUnRegError='There were errors reported while Unregistering help files.||View Log file?' 86 | 87 | 88 | ; International Strings - Defaults to [en] 89 | [de] ; German 90 | [ja] ; Japanese 91 | [fr] ; French 92 | [es] ; Spanish 93 | [it] ; Italian 94 | [ko] ; Korean 95 | [cn] ; Chinese (Simplified) 96 | [tw] ; Chinese (Traditional) 97 | [sv] ; Swedish 98 | [nl] ; Dutch 99 | [ru] ; Russian 100 | [ar] ; Arabic 101 | [he] ; Hebrew 102 | [da] ; Danish 103 | [no] ; Norwegian 104 | [fi] ; Finnish 105 | [pt] ; Portuguese 106 | [br] ; Brazilian 107 | [cs] ; Czech 108 | [pl] ; Polish 109 | [hu] ; Hungarian 110 | [el] ; Greek 111 | [tr] ; Turkish 112 | [sl] ; Slovenian 113 | [sk] ; Slovakian 114 | [eu] ; Basque 115 | [ca] ; Catalan 116 | 117 | -------------------------------------------------------------------------------- /Help/IGDIPlusD15_h2reg.ini: -------------------------------------------------------------------------------- 1 | ;------- Register -r switch 2 | 3 | [Reg_Namespace] 4 | ;|| 5 | ;hw.h2reg|COL_Master.HxC|H2Reg.exe Documentation - www.helpware.net 6 | IGDIPlusVCL.HxS|IGDIPlusDoc_COL_MASTER.HxC|PlotlLab Components 7 | 8 | [Reg_Title] 9 | ;|||||||||| 10 | ;hw.h2reg|h2reg|1033|h2reg.HxS|h2reg.HxS|||||| 11 | IGDIPlusVCL.HxS|IGDIPlusVCL||IGDIPlusVCL.HxS|IGDIPlusVCL.HxS| 12 | 13 | [Reg_Plugin] 14 | ;|||| 15 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 16 | embarcadero.rs_xe|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 17 | 18 | [Reg_Filter] 19 | ;|| 20 | ;hw.h2reg|h2reg helpware documentation|("helpware"="h2reg") 21 | 22 | ;------- UnRegister -u switch 23 | 24 | [UnReg_Namespace] 25 | ; 26 | ;hw.h2reg 27 | IGDIPlusVCL.HxS 28 | 29 | [UnReg_Title] 30 | ;|| 31 | ;hw.h2reg|h2reg|1033 32 | IGDIPlusVCL.HxS|IGDIPlusVCL| 33 | 34 | [UnReg_Plugin] 35 | ;|||| 36 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 37 | embarcadero.rs_xe|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 38 | 39 | [UnReg_Filter] 40 | ;| 41 | ;hw.h2reg|h2reg helpware documentation 42 | 43 | ;------- Merge -m switch 44 | 45 | [Merge_Namespace] 46 | ;ms.vscc+ 47 | 48 | ;------ Optional Stuff 49 | 50 | [MAIN] 51 | DebugMode=0 ;Set to 1 to log everything - Checks your resources (ship with =0) 52 | DumpNSToLog_before=0 ;Very verbose but good for debugging - dumps all NS info to log file before Registration 53 | DumpNSToLog_after=0 ;Very verbose but good for debugging - dumps all NS info to log file after Registration 54 | OKtoReport_FinalRegError=0 ;Report general error at end if a registration error was logged 55 | OKtoReport_FinalUnRegError=0 ;Report general error at end if a unregistration error was logged 56 | 57 | ;Advanced feature - These can be set then used as etc specifiers. They can 58 | ;also be set via the H2Reg.exe command line. Command line has preference over INI file. 59 | UserDir1='' 60 | UserDir2='' 61 | UserDir3='' 62 | UserDir4='' 63 | 64 | 65 | ; Strings Resources & Translation 66 | [en] ; English 67 | ErrSt_SysFileNotFound = 'Installation Error. Error reading system file or file not found.|%s' 68 | ErrSt_MSHelp2RTNotFound = 'MS Help 2.x runtime files are not installed on this PC.' 69 | ErrSt_NotAdminMode = 'You must be logged on as an Administrator.' 70 | ErrSt_Extra = 'Installation/registration of Help files cannot proceed.' 71 | 72 | Msg_Registering = 'Registering Online Documentation Files:' 73 | Msg_UnRegistering = 'Unregistering Online Documentation Files:' 74 | Msg_LoggingNSInfo = 'Logging Namespace Info' 75 | Msg_Registering_Namespaces = 'Registering Namespaces' 76 | Msg_Registering_Titles = 'Registering Titles' 77 | Msg_Registering_Plugins = 'Registering Plug-ins' 78 | Msg_Registering_Filters = 'Registering Filters' 79 | Msg_UnRegistering_Namespaces = 'Unregistering Namespaces' 80 | Msg_UnRegistering_Titles = 'Unregistering Titles' 81 | Msg_UnRegistering_Plugins = 'Unregistering Plug-ins' 82 | Msg_UnRegistering_Filters = 'Unregistering Filters' 83 | Msg_Merging_Namespaces = 'Merging Help Indexes. This may take several minutes' 84 | PopupSt_FinalRegError='There were errors reported while Registering help files.||View Log file?' 85 | PopupSt_FinalUnRegError='There were errors reported while Unregistering help files.||View Log file?' 86 | 87 | 88 | ; International Strings - Defaults to [en] 89 | [de] ; German 90 | [ja] ; Japanese 91 | [fr] ; French 92 | [es] ; Spanish 93 | [it] ; Italian 94 | [ko] ; Korean 95 | [cn] ; Chinese (Simplified) 96 | [tw] ; Chinese (Traditional) 97 | [sv] ; Swedish 98 | [nl] ; Dutch 99 | [ru] ; Russian 100 | [ar] ; Arabic 101 | [he] ; Hebrew 102 | [da] ; Danish 103 | [no] ; Norwegian 104 | [fi] ; Finnish 105 | [pt] ; Portuguese 106 | [br] ; Brazilian 107 | [cs] ; Czech 108 | [pl] ; Polish 109 | [hu] ; Hungarian 110 | [el] ; Greek 111 | [tr] ; Turkish 112 | [sl] ; Slovenian 113 | [sk] ; Slovakian 114 | [eu] ; Basque 115 | [ca] ; Catalan 116 | 117 | -------------------------------------------------------------------------------- /Help/IGDIPlusD16_h2reg.ini: -------------------------------------------------------------------------------- 1 | ;------- Register -r switch 2 | 3 | [Reg_Namespace] 4 | ;|| 5 | ;hw.h2reg|COL_Master.HxC|H2Reg.exe Documentation - www.helpware.net 6 | IGDIPlusVCL.HxS|IGDIPlusDoc_COL_MASTER.HxC|PlotlLab Components 7 | 8 | [Reg_Title] 9 | ;|||||||||| 10 | ;hw.h2reg|h2reg|1033|h2reg.HxS|h2reg.HxS|||||| 11 | IGDIPlusVCL.HxS|IGDIPlusVCL||IGDIPlusVCL.HxS|IGDIPlusVCL.HxS| 12 | 13 | [Reg_Plugin] 14 | ;|||| 15 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 16 | embarcadero.rs_xe2|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 17 | 18 | [Reg_Filter] 19 | ;|| 20 | ;hw.h2reg|h2reg helpware documentation|("helpware"="h2reg") 21 | 22 | ;------- UnRegister -u switch 23 | 24 | [UnReg_Namespace] 25 | ; 26 | ;hw.h2reg 27 | IGDIPlusVCL.HxS 28 | 29 | [UnReg_Title] 30 | ;|| 31 | ;hw.h2reg|h2reg|1033 32 | IGDIPlusVCL.HxS|IGDIPlusVCL| 33 | 34 | [UnReg_Plugin] 35 | ;|||| 36 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 37 | embarcadero.rs_xe2|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 38 | 39 | [UnReg_Filter] 40 | ;| 41 | ;hw.h2reg|h2reg helpware documentation 42 | 43 | ;------- Merge -m switch 44 | 45 | [Merge_Namespace] 46 | ;ms.vscc+ 47 | 48 | ;------ Optional Stuff 49 | 50 | [MAIN] 51 | DebugMode=0 ;Set to 1 to log everything - Checks your resources (ship with =0) 52 | DumpNSToLog_before=0 ;Very verbose but good for debugging - dumps all NS info to log file before Registration 53 | DumpNSToLog_after=0 ;Very verbose but good for debugging - dumps all NS info to log file after Registration 54 | OKtoReport_FinalRegError=0 ;Report general error at end if a registration error was logged 55 | OKtoReport_FinalUnRegError=0 ;Report general error at end if a unregistration error was logged 56 | 57 | ;Advanced feature - These can be set then used as etc specifiers. They can 58 | ;also be set via the H2Reg.exe command line. Command line has preference over INI file. 59 | UserDir1='' 60 | UserDir2='' 61 | UserDir3='' 62 | UserDir4='' 63 | 64 | 65 | ; Strings Resources & Translation 66 | [en] ; English 67 | ErrSt_SysFileNotFound = 'Installation Error. Error reading system file or file not found.|%s' 68 | ErrSt_MSHelp2RTNotFound = 'MS Help 2.x runtime files are not installed on this PC.' 69 | ErrSt_NotAdminMode = 'You must be logged on as an Administrator.' 70 | ErrSt_Extra = 'Installation/registration of Help files cannot proceed.' 71 | 72 | Msg_Registering = 'Registering Online Documentation Files:' 73 | Msg_UnRegistering = 'Unregistering Online Documentation Files:' 74 | Msg_LoggingNSInfo = 'Logging Namespace Info' 75 | Msg_Registering_Namespaces = 'Registering Namespaces' 76 | Msg_Registering_Titles = 'Registering Titles' 77 | Msg_Registering_Plugins = 'Registering Plug-ins' 78 | Msg_Registering_Filters = 'Registering Filters' 79 | Msg_UnRegistering_Namespaces = 'Unregistering Namespaces' 80 | Msg_UnRegistering_Titles = 'Unregistering Titles' 81 | Msg_UnRegistering_Plugins = 'Unregistering Plug-ins' 82 | Msg_UnRegistering_Filters = 'Unregistering Filters' 83 | Msg_Merging_Namespaces = 'Merging Help Indexes. This may take several minutes' 84 | PopupSt_FinalRegError='There were errors reported while Registering help files.||View Log file?' 85 | PopupSt_FinalUnRegError='There were errors reported while Unregistering help files.||View Log file?' 86 | 87 | 88 | ; International Strings - Defaults to [en] 89 | [de] ; German 90 | [ja] ; Japanese 91 | [fr] ; French 92 | [es] ; Spanish 93 | [it] ; Italian 94 | [ko] ; Korean 95 | [cn] ; Chinese (Simplified) 96 | [tw] ; Chinese (Traditional) 97 | [sv] ; Swedish 98 | [nl] ; Dutch 99 | [ru] ; Russian 100 | [ar] ; Arabic 101 | [he] ; Hebrew 102 | [da] ; Danish 103 | [no] ; Norwegian 104 | [fi] ; Finnish 105 | [pt] ; Portuguese 106 | [br] ; Brazilian 107 | [cs] ; Czech 108 | [pl] ; Polish 109 | [hu] ; Hungarian 110 | [el] ; Greek 111 | [tr] ; Turkish 112 | [sl] ; Slovenian 113 | [sk] ; Slovakian 114 | [eu] ; Basque 115 | [ca] ; Catalan 116 | 117 | -------------------------------------------------------------------------------- /Help/IGDIPlusD17_h2reg.ini: -------------------------------------------------------------------------------- 1 | ;------- Register -r switch 2 | 3 | [Reg_Namespace] 4 | ;|| 5 | ;hw.h2reg|COL_Master.HxC|H2Reg.exe Documentation - www.helpware.net 6 | IGDIPlusVCL.HxS|IGDIPlusDoc_COL_MASTER.HxC|PlotlLab Components 7 | 8 | [Reg_Title] 9 | ;|||||||||| 10 | ;hw.h2reg|h2reg|1033|h2reg.HxS|h2reg.HxS|||||| 11 | IGDIPlusVCL.HxS|IGDIPlusVCL||IGDIPlusVCL.HxS|IGDIPlusVCL.HxS| 12 | 13 | [Reg_Plugin] 14 | ;|||| 15 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 16 | embarcadero.rs_xe3|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 17 | 18 | [Reg_Filter] 19 | ;|| 20 | ;hw.h2reg|h2reg helpware documentation|("helpware"="h2reg") 21 | 22 | ;------- UnRegister -u switch 23 | 24 | [UnReg_Namespace] 25 | ; 26 | ;hw.h2reg 27 | IGDIPlusVCL.HxS 28 | 29 | [UnReg_Title] 30 | ;|| 31 | ;hw.h2reg|h2reg|1033 32 | IGDIPlusVCL.HxS|IGDIPlusVCL| 33 | 34 | [UnReg_Plugin] 35 | ;|||| 36 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 37 | embarcadero.rs_xe3|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 38 | 39 | [UnReg_Filter] 40 | ;| 41 | ;hw.h2reg|h2reg helpware documentation 42 | 43 | ;------- Merge -m switch 44 | 45 | [Merge_Namespace] 46 | ;ms.vscc+ 47 | 48 | ;------ Optional Stuff 49 | 50 | [MAIN] 51 | DebugMode=0 ;Set to 1 to log everything - Checks your resources (ship with =0) 52 | DumpNSToLog_before=0 ;Very verbose but good for debugging - dumps all NS info to log file before Registration 53 | DumpNSToLog_after=0 ;Very verbose but good for debugging - dumps all NS info to log file after Registration 54 | OKtoReport_FinalRegError=0 ;Report general error at end if a registration error was logged 55 | OKtoReport_FinalUnRegError=0 ;Report general error at end if a unregistration error was logged 56 | 57 | ;Advanced feature - These can be set then used as etc specifiers. They can 58 | ;also be set via the H2Reg.exe command line. Command line has preference over INI file. 59 | UserDir1='' 60 | UserDir2='' 61 | UserDir3='' 62 | UserDir4='' 63 | 64 | 65 | ; Strings Resources & Translation 66 | [en] ; English 67 | ErrSt_SysFileNotFound = 'Installation Error. Error reading system file or file not found.|%s' 68 | ErrSt_MSHelp2RTNotFound = 'MS Help 2.x runtime files are not installed on this PC.' 69 | ErrSt_NotAdminMode = 'You must be logged on as an Administrator.' 70 | ErrSt_Extra = 'Installation/registration of Help files cannot proceed.' 71 | 72 | Msg_Registering = 'Registering Online Documentation Files:' 73 | Msg_UnRegistering = 'Unregistering Online Documentation Files:' 74 | Msg_LoggingNSInfo = 'Logging Namespace Info' 75 | Msg_Registering_Namespaces = 'Registering Namespaces' 76 | Msg_Registering_Titles = 'Registering Titles' 77 | Msg_Registering_Plugins = 'Registering Plug-ins' 78 | Msg_Registering_Filters = 'Registering Filters' 79 | Msg_UnRegistering_Namespaces = 'Unregistering Namespaces' 80 | Msg_UnRegistering_Titles = 'Unregistering Titles' 81 | Msg_UnRegistering_Plugins = 'Unregistering Plug-ins' 82 | Msg_UnRegistering_Filters = 'Unregistering Filters' 83 | Msg_Merging_Namespaces = 'Merging Help Indexes. This may take several minutes' 84 | PopupSt_FinalRegError='There were errors reported while Registering help files.||View Log file?' 85 | PopupSt_FinalUnRegError='There were errors reported while Unregistering help files.||View Log file?' 86 | 87 | 88 | ; International Strings - Defaults to [en] 89 | [de] ; German 90 | [ja] ; Japanese 91 | [fr] ; French 92 | [es] ; Spanish 93 | [it] ; Italian 94 | [ko] ; Korean 95 | [cn] ; Chinese (Simplified) 96 | [tw] ; Chinese (Traditional) 97 | [sv] ; Swedish 98 | [nl] ; Dutch 99 | [ru] ; Russian 100 | [ar] ; Arabic 101 | [he] ; Hebrew 102 | [da] ; Danish 103 | [no] ; Norwegian 104 | [fi] ; Finnish 105 | [pt] ; Portuguese 106 | [br] ; Brazilian 107 | [cs] ; Czech 108 | [pl] ; Polish 109 | [hu] ; Hungarian 110 | [el] ; Greek 111 | [tr] ; Turkish 112 | [sl] ; Slovenian 113 | [sk] ; Slovakian 114 | [eu] ; Basque 115 | [ca] ; Catalan 116 | 117 | -------------------------------------------------------------------------------- /Help/IGDIPlusD18_h2reg.ini: -------------------------------------------------------------------------------- 1 | ;------- Register -r switch 2 | 3 | [Reg_Namespace] 4 | ;|| 5 | ;hw.h2reg|COL_Master.HxC|H2Reg.exe Documentation - www.helpware.net 6 | IGDIPlusVCL.HxS|IGDIPlusDoc_COL_MASTER.HxC|PlotlLab Components 7 | 8 | [Reg_Title] 9 | ;|||||||||| 10 | ;hw.h2reg|h2reg|1033|h2reg.HxS|h2reg.HxS|||||| 11 | IGDIPlusVCL.HxS|IGDIPlusVCL||IGDIPlusVCL.HxS|IGDIPlusVCL.HxS| 12 | 13 | [Reg_Plugin] 14 | ;|||| 15 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 16 | embarcadero.rs_xe4|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 17 | 18 | [Reg_Filter] 19 | ;|| 20 | ;hw.h2reg|h2reg helpware documentation|("helpware"="h2reg") 21 | 22 | ;------- UnRegister -u switch 23 | 24 | [UnReg_Namespace] 25 | ; 26 | ;hw.h2reg 27 | IGDIPlusVCL.HxS 28 | 29 | [UnReg_Title] 30 | ;|| 31 | ;hw.h2reg|h2reg|1033 32 | IGDIPlusVCL.HxS|IGDIPlusVCL| 33 | 34 | [UnReg_Plugin] 35 | ;|||| 36 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 37 | embarcadero.rs_xe4|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 38 | 39 | [UnReg_Filter] 40 | ;| 41 | ;hw.h2reg|h2reg helpware documentation 42 | 43 | ;------- Merge -m switch 44 | 45 | [Merge_Namespace] 46 | ;ms.vscc+ 47 | 48 | ;------ Optional Stuff 49 | 50 | [MAIN] 51 | DebugMode=0 ;Set to 1 to log everything - Checks your resources (ship with =0) 52 | DumpNSToLog_before=0 ;Very verbose but good for debugging - dumps all NS info to log file before Registration 53 | DumpNSToLog_after=0 ;Very verbose but good for debugging - dumps all NS info to log file after Registration 54 | OKtoReport_FinalRegError=0 ;Report general error at end if a registration error was logged 55 | OKtoReport_FinalUnRegError=0 ;Report general error at end if a unregistration error was logged 56 | 57 | ;Advanced feature - These can be set then used as etc specifiers. They can 58 | ;also be set via the H2Reg.exe command line. Command line has preference over INI file. 59 | UserDir1='' 60 | UserDir2='' 61 | UserDir3='' 62 | UserDir4='' 63 | 64 | 65 | ; Strings Resources & Translation 66 | [en] ; English 67 | ErrSt_SysFileNotFound = 'Installation Error. Error reading system file or file not found.|%s' 68 | ErrSt_MSHelp2RTNotFound = 'MS Help 2.x runtime files are not installed on this PC.' 69 | ErrSt_NotAdminMode = 'You must be logged on as an Administrator.' 70 | ErrSt_Extra = 'Installation/registration of Help files cannot proceed.' 71 | 72 | Msg_Registering = 'Registering Online Documentation Files:' 73 | Msg_UnRegistering = 'Unregistering Online Documentation Files:' 74 | Msg_LoggingNSInfo = 'Logging Namespace Info' 75 | Msg_Registering_Namespaces = 'Registering Namespaces' 76 | Msg_Registering_Titles = 'Registering Titles' 77 | Msg_Registering_Plugins = 'Registering Plug-ins' 78 | Msg_Registering_Filters = 'Registering Filters' 79 | Msg_UnRegistering_Namespaces = 'Unregistering Namespaces' 80 | Msg_UnRegistering_Titles = 'Unregistering Titles' 81 | Msg_UnRegistering_Plugins = 'Unregistering Plug-ins' 82 | Msg_UnRegistering_Filters = 'Unregistering Filters' 83 | Msg_Merging_Namespaces = 'Merging Help Indexes. This may take several minutes' 84 | PopupSt_FinalRegError='There were errors reported while Registering help files.||View Log file?' 85 | PopupSt_FinalUnRegError='There were errors reported while Unregistering help files.||View Log file?' 86 | 87 | 88 | ; International Strings - Defaults to [en] 89 | [de] ; German 90 | [ja] ; Japanese 91 | [fr] ; French 92 | [es] ; Spanish 93 | [it] ; Italian 94 | [ko] ; Korean 95 | [cn] ; Chinese (Simplified) 96 | [tw] ; Chinese (Traditional) 97 | [sv] ; Swedish 98 | [nl] ; Dutch 99 | [ru] ; Russian 100 | [ar] ; Arabic 101 | [he] ; Hebrew 102 | [da] ; Danish 103 | [no] ; Norwegian 104 | [fi] ; Finnish 105 | [pt] ; Portuguese 106 | [br] ; Brazilian 107 | [cs] ; Czech 108 | [pl] ; Polish 109 | [hu] ; Hungarian 110 | [el] ; Greek 111 | [tr] ; Turkish 112 | [sl] ; Slovenian 113 | [sk] ; Slovakian 114 | [eu] ; Basque 115 | [ca] ; Catalan 116 | 117 | -------------------------------------------------------------------------------- /Help/IGDIPlusD19_h2reg.ini: -------------------------------------------------------------------------------- 1 | ;------- Register -r switch 2 | 3 | [Reg_Namespace] 4 | ;|| 5 | ;hw.h2reg|COL_Master.HxC|H2Reg.exe Documentation - www.helpware.net 6 | IGDIPlusVCL.HxS|IGDIPlusDoc_COL_MASTER.HxC|PlotlLab Components 7 | 8 | [Reg_Title] 9 | ;|||||||||| 10 | ;hw.h2reg|h2reg|1033|h2reg.HxS|h2reg.HxS|||||| 11 | IGDIPlusVCL.HxS|IGDIPlusVCL||IGDIPlusVCL.HxS|IGDIPlusVCL.HxS| 12 | 13 | [Reg_Plugin] 14 | ;|||| 15 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 16 | embarcadero.rs_xe5|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 17 | 18 | [Reg_Filter] 19 | ;|| 20 | ;hw.h2reg|h2reg helpware documentation|("helpware"="h2reg") 21 | 22 | ;------- UnRegister -u switch 23 | 24 | [UnReg_Namespace] 25 | ; 26 | ;hw.h2reg 27 | IGDIPlusVCL.HxS 28 | 29 | [UnReg_Title] 30 | ;|| 31 | ;hw.h2reg|h2reg|1033 32 | IGDIPlusVCL.HxS|IGDIPlusVCL| 33 | 34 | [UnReg_Plugin] 35 | ;|||| 36 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 37 | embarcadero.rs_xe5|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 38 | 39 | [UnReg_Filter] 40 | ;| 41 | ;hw.h2reg|h2reg helpware documentation 42 | 43 | ;------- Merge -m switch 44 | 45 | [Merge_Namespace] 46 | ;ms.vscc+ 47 | 48 | ;------ Optional Stuff 49 | 50 | [MAIN] 51 | DebugMode=0 ;Set to 1 to log everything - Checks your resources (ship with =0) 52 | DumpNSToLog_before=0 ;Very verbose but good for debugging - dumps all NS info to log file before Registration 53 | DumpNSToLog_after=0 ;Very verbose but good for debugging - dumps all NS info to log file after Registration 54 | OKtoReport_FinalRegError=0 ;Report general error at end if a registration error was logged 55 | OKtoReport_FinalUnRegError=0 ;Report general error at end if a unregistration error was logged 56 | 57 | ;Advanced feature - These can be set then used as etc specifiers. They can 58 | ;also be set via the H2Reg.exe command line. Command line has preference over INI file. 59 | UserDir1='' 60 | UserDir2='' 61 | UserDir3='' 62 | UserDir4='' 63 | 64 | 65 | ; Strings Resources & Translation 66 | [en] ; English 67 | ErrSt_SysFileNotFound = 'Installation Error. Error reading system file or file not found.|%s' 68 | ErrSt_MSHelp2RTNotFound = 'MS Help 2.x runtime files are not installed on this PC.' 69 | ErrSt_NotAdminMode = 'You must be logged on as an Administrator.' 70 | ErrSt_Extra = 'Installation/registration of Help files cannot proceed.' 71 | 72 | Msg_Registering = 'Registering Online Documentation Files:' 73 | Msg_UnRegistering = 'Unregistering Online Documentation Files:' 74 | Msg_LoggingNSInfo = 'Logging Namespace Info' 75 | Msg_Registering_Namespaces = 'Registering Namespaces' 76 | Msg_Registering_Titles = 'Registering Titles' 77 | Msg_Registering_Plugins = 'Registering Plug-ins' 78 | Msg_Registering_Filters = 'Registering Filters' 79 | Msg_UnRegistering_Namespaces = 'Unregistering Namespaces' 80 | Msg_UnRegistering_Titles = 'Unregistering Titles' 81 | Msg_UnRegistering_Plugins = 'Unregistering Plug-ins' 82 | Msg_UnRegistering_Filters = 'Unregistering Filters' 83 | Msg_Merging_Namespaces = 'Merging Help Indexes. This may take several minutes' 84 | PopupSt_FinalRegError='There were errors reported while Registering help files.||View Log file?' 85 | PopupSt_FinalUnRegError='There were errors reported while Unregistering help files.||View Log file?' 86 | 87 | 88 | ; International Strings - Defaults to [en] 89 | [de] ; German 90 | [ja] ; Japanese 91 | [fr] ; French 92 | [es] ; Spanish 93 | [it] ; Italian 94 | [ko] ; Korean 95 | [cn] ; Chinese (Simplified) 96 | [tw] ; Chinese (Traditional) 97 | [sv] ; Swedish 98 | [nl] ; Dutch 99 | [ru] ; Russian 100 | [ar] ; Arabic 101 | [he] ; Hebrew 102 | [da] ; Danish 103 | [no] ; Norwegian 104 | [fi] ; Finnish 105 | [pt] ; Portuguese 106 | [br] ; Brazilian 107 | [cs] ; Czech 108 | [pl] ; Polish 109 | [hu] ; Hungarian 110 | [el] ; Greek 111 | [tr] ; Turkish 112 | [sl] ; Slovenian 113 | [sk] ; Slovakian 114 | [eu] ; Basque 115 | [ca] ; Catalan 116 | 117 | -------------------------------------------------------------------------------- /Help/IGDIPlusDXE6_h2reg.ini: -------------------------------------------------------------------------------- 1 | ;------- Register -r switch 2 | 3 | [Reg_Namespace] 4 | ;|| 5 | ;hw.h2reg|COL_Master.HxC|H2Reg.exe Documentation - www.helpware.net 6 | IGDIPlusVCL.HxS|IGDIPlusDoc_COL_MASTER.HxC|PlotlLab Components 7 | 8 | [Reg_Title] 9 | ;|||||||||| 10 | ;hw.h2reg|h2reg|1033|h2reg.HxS|h2reg.HxS|||||| 11 | IGDIPlusVCL.HxS|IGDIPlusVCL||IGDIPlusVCL.HxS|IGDIPlusVCL.HxS| 12 | 13 | [Reg_Plugin] 14 | ;|||| 15 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 16 | embarcadero.rs_xe6|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 17 | 18 | [Reg_Filter] 19 | ;|| 20 | ;hw.h2reg|h2reg helpware documentation|("helpware"="h2reg") 21 | 22 | ;------- UnRegister -u switch 23 | 24 | [UnReg_Namespace] 25 | ; 26 | ;hw.h2reg 27 | IGDIPlusVCL.HxS 28 | 29 | [UnReg_Title] 30 | ;|| 31 | ;hw.h2reg|h2reg|1033 32 | IGDIPlusVCL.HxS|IGDIPlusVCL| 33 | 34 | [UnReg_Plugin] 35 | ;|||| 36 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 37 | embarcadero.rs_xe6|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 38 | 39 | [UnReg_Filter] 40 | ;| 41 | ;hw.h2reg|h2reg helpware documentation 42 | 43 | ;------- Merge -m switch 44 | 45 | [Merge_Namespace] 46 | ;ms.vscc+ 47 | 48 | ;------ Optional Stuff 49 | 50 | [MAIN] 51 | DebugMode=0 ;Set to 1 to log everything - Checks your resources (ship with =0) 52 | DumpNSToLog_before=0 ;Very verbose but good for debugging - dumps all NS info to log file before Registration 53 | DumpNSToLog_after=0 ;Very verbose but good for debugging - dumps all NS info to log file after Registration 54 | OKtoReport_FinalRegError=0 ;Report general error at end if a registration error was logged 55 | OKtoReport_FinalUnRegError=0 ;Report general error at end if a unregistration error was logged 56 | 57 | ;Advanced feature - These can be set then used as etc specifiers. They can 58 | ;also be set via the H2Reg.exe command line. Command line has preference over INI file. 59 | UserDir1='' 60 | UserDir2='' 61 | UserDir3='' 62 | UserDir4='' 63 | 64 | 65 | ; Strings Resources & Translation 66 | [en] ; English 67 | ErrSt_SysFileNotFound = 'Installation Error. Error reading system file or file not found.|%s' 68 | ErrSt_MSHelp2RTNotFound = 'MS Help 2.x runtime files are not installed on this PC.' 69 | ErrSt_NotAdminMode = 'You must be logged on as an Administrator.' 70 | ErrSt_Extra = 'Installation/registration of Help files cannot proceed.' 71 | 72 | Msg_Registering = 'Registering Online Documentation Files:' 73 | Msg_UnRegistering = 'Unregistering Online Documentation Files:' 74 | Msg_LoggingNSInfo = 'Logging Namespace Info' 75 | Msg_Registering_Namespaces = 'Registering Namespaces' 76 | Msg_Registering_Titles = 'Registering Titles' 77 | Msg_Registering_Plugins = 'Registering Plug-ins' 78 | Msg_Registering_Filters = 'Registering Filters' 79 | Msg_UnRegistering_Namespaces = 'Unregistering Namespaces' 80 | Msg_UnRegistering_Titles = 'Unregistering Titles' 81 | Msg_UnRegistering_Plugins = 'Unregistering Plug-ins' 82 | Msg_UnRegistering_Filters = 'Unregistering Filters' 83 | Msg_Merging_Namespaces = 'Merging Help Indexes. This may take several minutes' 84 | PopupSt_FinalRegError='There were errors reported while Registering help files.||View Log file?' 85 | PopupSt_FinalUnRegError='There were errors reported while Unregistering help files.||View Log file?' 86 | 87 | 88 | ; International Strings - Defaults to [en] 89 | [de] ; German 90 | [ja] ; Japanese 91 | [fr] ; French 92 | [es] ; Spanish 93 | [it] ; Italian 94 | [ko] ; Korean 95 | [cn] ; Chinese (Simplified) 96 | [tw] ; Chinese (Traditional) 97 | [sv] ; Swedish 98 | [nl] ; Dutch 99 | [ru] ; Russian 100 | [ar] ; Arabic 101 | [he] ; Hebrew 102 | [da] ; Danish 103 | [no] ; Norwegian 104 | [fi] ; Finnish 105 | [pt] ; Portuguese 106 | [br] ; Brazilian 107 | [cs] ; Czech 108 | [pl] ; Polish 109 | [hu] ; Hungarian 110 | [el] ; Greek 111 | [tr] ; Turkish 112 | [sl] ; Slovenian 113 | [sk] ; Slovakian 114 | [eu] ; Basque 115 | [ca] ; Catalan 116 | 117 | -------------------------------------------------------------------------------- /Help/IGDIPlusDXE7_h2reg.ini: -------------------------------------------------------------------------------- 1 | ;------- Register -r switch 2 | 3 | [Reg_Namespace] 4 | ;|| 5 | ;hw.h2reg|COL_Master.HxC|H2Reg.exe Documentation - www.helpware.net 6 | IGDIPlusVCL.HxS|IGDIPlusDoc_COL_MASTER.HxC|PlotlLab Components 7 | 8 | [Reg_Title] 9 | ;|||||||||| 10 | ;hw.h2reg|h2reg|1033|h2reg.HxS|h2reg.HxS|||||| 11 | IGDIPlusVCL.HxS|IGDIPlusVCL||IGDIPlusVCL.HxS|IGDIPlusVCL.HxS| 12 | 13 | [Reg_Plugin] 14 | ;|||| 15 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 16 | embarcadero.rs_xe7|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 17 | 18 | [Reg_Filter] 19 | ;|| 20 | ;hw.h2reg|h2reg helpware documentation|("helpware"="h2reg") 21 | 22 | ;------- UnRegister -u switch 23 | 24 | [UnReg_Namespace] 25 | ; 26 | ;hw.h2reg 27 | IGDIPlusVCL.HxS 28 | 29 | [UnReg_Title] 30 | ;|| 31 | ;hw.h2reg|h2reg|1033 32 | IGDIPlusVCL.HxS|IGDIPlusVCL| 33 | 34 | [UnReg_Plugin] 35 | ;|||| 36 | ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA 37 | embarcadero.rs_xe7|_DEFAULT|IGDIPlusVCL.HxS|_DEFAULT| 38 | 39 | [UnReg_Filter] 40 | ;| 41 | ;hw.h2reg|h2reg helpware documentation 42 | 43 | ;------- Merge -m switch 44 | 45 | [Merge_Namespace] 46 | ;ms.vscc+ 47 | 48 | ;------ Optional Stuff 49 | 50 | [MAIN] 51 | DebugMode=0 ;Set to 1 to log everything - Checks your resources (ship with =0) 52 | DumpNSToLog_before=0 ;Very verbose but good for debugging - dumps all NS info to log file before Registration 53 | DumpNSToLog_after=0 ;Very verbose but good for debugging - dumps all NS info to log file after Registration 54 | OKtoReport_FinalRegError=0 ;Report general error at end if a registration error was logged 55 | OKtoReport_FinalUnRegError=0 ;Report general error at end if a unregistration error was logged 56 | 57 | ;Advanced feature - These can be set then used as etc specifiers. They can 58 | ;also be set via the H2Reg.exe command line. Command line has preference over INI file. 59 | UserDir1='' 60 | UserDir2='' 61 | UserDir3='' 62 | UserDir4='' 63 | 64 | 65 | ; Strings Resources & Translation 66 | [en] ; English 67 | ErrSt_SysFileNotFound = 'Installation Error. Error reading system file or file not found.|%s' 68 | ErrSt_MSHelp2RTNotFound = 'MS Help 2.x runtime files are not installed on this PC.' 69 | ErrSt_NotAdminMode = 'You must be logged on as an Administrator.' 70 | ErrSt_Extra = 'Installation/registration of Help files cannot proceed.' 71 | 72 | Msg_Registering = 'Registering Online Documentation Files:' 73 | Msg_UnRegistering = 'Unregistering Online Documentation Files:' 74 | Msg_LoggingNSInfo = 'Logging Namespace Info' 75 | Msg_Registering_Namespaces = 'Registering Namespaces' 76 | Msg_Registering_Titles = 'Registering Titles' 77 | Msg_Registering_Plugins = 'Registering Plug-ins' 78 | Msg_Registering_Filters = 'Registering Filters' 79 | Msg_UnRegistering_Namespaces = 'Unregistering Namespaces' 80 | Msg_UnRegistering_Titles = 'Unregistering Titles' 81 | Msg_UnRegistering_Plugins = 'Unregistering Plug-ins' 82 | Msg_UnRegistering_Filters = 'Unregistering Filters' 83 | Msg_Merging_Namespaces = 'Merging Help Indexes. This may take several minutes' 84 | PopupSt_FinalRegError='There were errors reported while Registering help files.||View Log file?' 85 | PopupSt_FinalUnRegError='There were errors reported while Unregistering help files.||View Log file?' 86 | 87 | 88 | ; International Strings - Defaults to [en] 89 | [de] ; German 90 | [ja] ; Japanese 91 | [fr] ; French 92 | [es] ; Spanish 93 | [it] ; Italian 94 | [ko] ; Korean 95 | [cn] ; Chinese (Simplified) 96 | [tw] ; Chinese (Traditional) 97 | [sv] ; Swedish 98 | [nl] ; Dutch 99 | [ru] ; Russian 100 | [ar] ; Arabic 101 | [he] ; Hebrew 102 | [da] ; Danish 103 | [no] ; Norwegian 104 | [fi] ; Finnish 105 | [pt] ; Portuguese 106 | [br] ; Brazilian 107 | [cs] ; Czech 108 | [pl] ; Polish 109 | [hu] ; Hungarian 110 | [el] ; Greek 111 | [tr] ; Turkish 112 | [sl] ; Slovenian 113 | [sk] ; Slovakian 114 | [eu] ; Basque 115 | [ca] ; Catalan 116 | 117 | -------------------------------------------------------------------------------- /Help/IGDIPlusDoc.HxC: -------------------------------------------------------------------------------- 1 |  2 | 3 | 10 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Help/IGDIPlusDoc_COL_MASTER.HxC: -------------------------------------------------------------------------------- 1 |  2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Help/IGDIPlusDoc_COL_MASTER.HxT: -------------------------------------------------------------------------------- 1 |  2 | 3 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Help/IGDIPlusDoc_COL_MASTER_A.HxK: -------------------------------------------------------------------------------- 1 |  2 | 3 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Help/IGDIPlusDoc_COL_MASTER_F.HxK: -------------------------------------------------------------------------------- 1 |  2 | 3 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Help/IGDIPlusDoc_COL_MASTER_K.HxK: -------------------------------------------------------------------------------- 1 |  2 | 3 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Help/IGDIPlusDoc_COL_MASTER_NamedURL.HxK: -------------------------------------------------------------------------------- 1 |  2 | 3 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Help/IGDIPlusVCL.HxS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmitov/IGDIPlus/5c1ffebe21b119bd5fc913c68f3d52960d64b2cf/Help/IGDIPlusVCL.HxS -------------------------------------------------------------------------------- /Lib/cbgdiplus.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmitov/IGDIPlus/5c1ffebe21b119bd5fc913c68f3d52960d64b2cf/Lib/cbgdiplus.a -------------------------------------------------------------------------------- /Lib/cbgdiplus.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmitov/IGDIPlus/5c1ffebe21b119bd5fc913c68f3d52960d64b2cf/Lib/cbgdiplus.lib -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # IGDI- 2 | Delphi friendly interface based GDI+ library. 3 | 4 | The free open source library allows quick and easy implementations of complex GDI+ applications, in a natural Delphi-friendly code. 5 | 6 | For example, to make this: 7 | 8 | ![IGDI+ Demo](http://www.mitov.com/IGDIPlusDemo.jpg) 9 | 10 | ... you write code like this: 11 | 12 | ```delphi 13 | procedure TForm1.FormPaint(Sender: TObject); 14 | begin 15 | var AGraphics := TIGPGraphics.Create( Canvas ); 16 | AGraphics.SmoothingMode := TIGPSmoothingMode.AntiAlias; 17 | AGraphics.TextRenderingHint := TIGPTextRenderingHint.AntiAlias; 18 | 19 | var ALeftTopCorner := TPointF.Create( 20, 20 ); 20 | var AFont := TIGPFont.Create( 'Microsoft Sans Serif', 40, [ fsBold ] ); 21 | var ARect := AGraphics.GetStringBoundingBoxF( 'Welcome to IGDI+', AFont, ALeftTopCorner ); 22 | var ARect1 := ARect.Inflate( 10, 10 ); 23 | 24 | // Draw a fancy rounded rectangle. 25 | AGraphics.DrawRoundRectangleF( 26 | TIGPPen.Create( TIGPLinearGradientBrush.Create( ARect1.Inflate( 2, 2 ), aclRed, aclBlue, TIGPLinearGradientMode.Vertical ), 4 ), 27 | TIGPPathGradientBrush.Create( 28 | TIGPGraphicsPath.Create().AddRoundRectangleF( ARect1, TIGPSizeF.Create( 20, 20 ) ) 29 | ) 30 | .SetInterpolationColorArrays( [ aclGreen, aclCyan, aclYellow ], [ 0, 0.3, 1 ] ) 31 | .SetCenterPointF( TPointF.Create( 250, 50 )) 32 | .SetFocusScales( 0.87, 0.2 ), 33 | ARect1, TIGPSizeF.Create( 20, 20 ) ); 34 | 35 | // Draw a text with semitransparent shadow. 36 | AGraphics.DrawStringF( 'Welcome to IGDI+', 37 | AFont, 38 | TPointF.Create( 23, 23 ), 39 | TIGPSolidBrush.Create( MakeARGBColor( 50, aclBlack )) ) 40 | 41 | .DrawStringF( 'Welcome to IGDI+', 42 | AFont, 43 | ALeftTopCorner, 44 | TIGPLinearGradientBrush.Create( ARect, aclRed, aclBlue, TIGPLinearGradientMode.ForwardDiagonal )); 45 | 46 | 47 | // Draw a closed curve. 48 | AGraphics.DrawClosedCurveF( TIGPPen.Create( aclRed, 3 ), TIGPSolidBrush.Create( aclBlue ), 49 | [ 50 | TPointF.Create( 60, 160 ), 51 | TPointF.Create( 150, 180 ), 52 | TPointF.Create( 200, 140 ), 53 | TPointF.Create( 180, 220 ), 54 | TPointF.Create( 120, 200 ), 55 | TPointF.Create( 80, 260 ) 56 | ] ); 57 | 58 | // Draw a semitransparent star. 59 | var APath := TIGPGraphicsPath.Create(); 60 | APath.AddLinesF( 61 | [ 62 | TPointF.Create( 75, 0 ), 63 | TPointF.Create( 100, 50 ), 64 | TPointF.Create( 150, 50 ), 65 | TPointF.Create( 112, 75 ), 66 | TPointF.Create( 150, 150 ), 67 | TPointF.Create( 75, 100 ), 68 | TPointF.Create( 0, 150 ), 69 | TPointF.Create( 37, 75 ), 70 | TPointF.Create( 0, 50 ), 71 | TPointF.Create( 50, 50 ) 72 | ] ); 73 | 74 | AGraphics.TranslateTransform( 420, 30 ) 75 | .FillPath( 76 | TIGPPathGradientBrush.Create( APath ) 77 | .SetCenterColor( MakeColor( 200, 255, 0, 0)) 78 | .SetSurroundColors( 79 | [ 80 | MakeColor(80, 0, 0, 0), 81 | MakeColor(80, 0, 255, 0), 82 | MakeColor(80, 0, 0, 255), 83 | MakeColor(80, 255, 255, 255), 84 | MakeColor(80, 0, 0, 0), 85 | MakeColor(80, 0, 255, 0), 86 | MakeColor(80, 0, 0, 255), 87 | MakeColor(80, 255, 255, 255), 88 | MakeColor(80, 0, 0, 0), 89 | MakeColor(80, 0, 255, 0) 90 | ] ), 91 | 92 | APath ); 93 | 94 | // Draw rotated ellipse. 95 | AGraphics.ResetTransform() 96 | .TranslateTransform( 300, 160 ) 97 | .RotateTransform( 30 ) 98 | .DrawEllipseF( 99 | TIGPPen.Create( aclRed, 3 ), 100 | TIGPLinearGradientBrush.Create( TPointF.Create( 0, 0 ), TPointF.Create( 20, 20 ), aclYellow, aclGreen ) 101 | .SetWrapMode( TIGPWrapMode.TileFlipX ), 102 | 0, 0, 200, 80 ); 103 | 104 | end; 105 | ``` 106 | -------------------------------------------------------------------------------- /VCL.IGDIPlusExt.pas: -------------------------------------------------------------------------------- 1 | {****************************************************************************** 2 | 3 | Copyright (C) 2008-2025 by Boian Mitov 4 | mitov@mitov.com 5 | www.mitov.com 6 | www.igdiplus.org 7 | www.openwire.org 8 | 9 | This software is provided 'as-is', without any express or 10 | implied warranty. In no event will the author be held liable 11 | for any damages arising from the use of this software. 12 | 13 | Permission is granted to anyone to use this software for any 14 | purpose, including commercial applications, and to alter it 15 | and redistribute it freely, subject to the following 16 | restrictions: 17 | 18 | 1. The origin of this software must not be misrepresented, 19 | you must not claim that you wrote the original software. 20 | If you use this software in a product, an acknowledgment 21 | in the product documentation would be appreciated but is 22 | not required. 23 | 24 | 2. Altered source versions must be plainly marked as such, and 25 | must not be misrepresented as being the original software. 26 | 27 | 3. This notice may not be removed or altered from any source 28 | distribution. 29 | 30 | ******************************************************************************} 31 | unit VCL.IGDIPlusExt; 32 | 33 | {$HPPEMIT NOUSINGNAMESPACE} 34 | 35 | interface 36 | 37 | uses 38 | IGDIPlus, VCL.Graphics, Mitov.Containers.Common; 39 | 40 | type 41 | TIGPBitmapHelper = class helper for TIGPBitmap 42 | public 43 | class function Create( ABitmap : TBitmap ) : IGPBitmap; overload; inline; 44 | class function Create( AIcon : TIcon ) : IGPBitmap; overload; inline; 45 | 46 | public 47 | constructor CreateObject( ABitmap : TBitmap ); overload; 48 | constructor CreateObject( AIcon : TIcon ); overload; 49 | 50 | end; 51 | //--------------------------------------------------------------------------- 52 | TIGPVclBitmapHelper = class helper for TBitmap 53 | protected 54 | function GetGPBitmap() : IGPBitmap; inline; 55 | function GetGraphics() : IGPGraphics; inline; 56 | 57 | public 58 | function ForGraphics( const AProc : TConstProc ) : TBitmap; 59 | 60 | public 61 | property GPBitmap : IGPBitmap read GetGPBitmap; 62 | property Graphics : IGPGraphics read GetGraphics; 63 | 64 | end; 65 | //--------------------------------------------------------------------------- 66 | TIGPGraphicsHelper = class helper for TIGPGraphics 67 | public 68 | class function Create( canvas : TCanvas ) : IGPGraphics; overload; inline; 69 | 70 | public 71 | constructor CreateObject( canvas : TCanvas ); overload; 72 | 73 | public 74 | class function FromCanvas( canvas : TCanvas ) : IGPGraphics; overload; inline; 75 | 76 | end; 77 | //--------------------------------------------------------------------------- 78 | TIGPVclCanvasHelper = class helper for TCanvas 79 | protected 80 | function GetGraphics() : IGPGraphics; inline; 81 | 82 | public 83 | function ForGraphics( const AProc : TConstProc ) : TCanvas; 84 | 85 | public 86 | property Graphics : IGPGraphics read GetGraphics; 87 | 88 | end; 89 | //--------------------------------------------------------------------------- 90 | implementation 91 | //--------------------------------------------------------------------------- 92 | constructor TIGPBitmapHelper.CreateObject( ABitmap : TBitmap ); 93 | begin 94 | CreateHBitmapObject( ABitmap.Handle, ABitmap.Palette ); 95 | end; 96 | //--------------------------------------------------------------------------- 97 | constructor TIGPBitmapHelper.CreateObject( AIcon : TIcon ); 98 | begin 99 | CreateHICONObject( AIcon.Handle ); 100 | end; 101 | //--------------------------------------------------------------------------- 102 | class function TIGPBitmapHelper.Create( ABitmap : TBitmap ) : IGPBitmap; 103 | begin 104 | Result := CreateObject( ABitmap ); 105 | end; 106 | //--------------------------------------------------------------------------- 107 | class function TIGPBitmapHelper.Create( AIcon : TIcon ) : IGPBitmap; 108 | begin 109 | Result := CreateObject( AIcon ); 110 | end; 111 | //--------------------------------------------------------------------------- 112 | //--------------------------------------------------------------------------- 113 | //--------------------------------------------------------------------------- 114 | //--------------------------------------------------------------------------- 115 | function TIGPVclBitmapHelper.GetGPBitmap() : IGPBitmap; 116 | begin 117 | Result := TIGPBitmap.CreateObject( Self ); 118 | end; 119 | //--------------------------------------------------------------------------- 120 | function TIGPVclBitmapHelper.GetGraphics() : IGPGraphics; 121 | begin 122 | Result := TIGPGraphics.CreateObject( Canvas ); 123 | end; 124 | //--------------------------------------------------------------------------- 125 | function TIGPVclBitmapHelper.ForGraphics( const AProc : TConstProc ) : TBitmap; 126 | begin 127 | Assert( Assigned( AProc )); 128 | AProc( TIGPGraphics.CreateObject( Canvas ) ); 129 | Result := Self; 130 | end; 131 | //--------------------------------------------------------------------------- 132 | //--------------------------------------------------------------------------- 133 | //--------------------------------------------------------------------------- 134 | //--------------------------------------------------------------------------- 135 | class function TIGPGraphicsHelper.FromCanvas( canvas : TCanvas ) : IGPGraphics; 136 | begin 137 | Result := TIGPGraphics.Create(canvas); 138 | end; 139 | //--------------------------------------------------------------------------- 140 | constructor TIGPGraphicsHelper.CreateObject( canvas : TCanvas ); 141 | begin 142 | CreateObject( canvas.Handle ); 143 | end; 144 | //--------------------------------------------------------------------------- 145 | class function TIGPGraphicsHelper.Create( canvas : TCanvas ) : IGPGraphics; 146 | begin 147 | Result := CreateObject( canvas ); 148 | end; 149 | //--------------------------------------------------------------------------- 150 | //--------------------------------------------------------------------------- 151 | //--------------------------------------------------------------------------- 152 | //--------------------------------------------------------------------------- 153 | function TIGPVclCanvasHelper.GetGraphics() : IGPGraphics; 154 | begin 155 | Result := TIGPGraphics.CreateObject( Self ); 156 | end; 157 | //--------------------------------------------------------------------------- 158 | function TIGPVclCanvasHelper.ForGraphics( const AProc : TConstProc ) : TCanvas; 159 | begin 160 | Assert( Assigned( AProc )); 161 | AProc( TIGPGraphics.CreateObject( Self ) ); 162 | Result := Self; 163 | end; 164 | //--------------------------------------------------------------------------- 165 | //--------------------------------------------------------------------------- 166 | //--------------------------------------------------------------------------- 167 | //--------------------------------------------------------------------------- 168 | end. 169 | --------------------------------------------------------------------------------