├── .gitattributes ├── .gitignore ├── .hgignore ├── .hgtags ├── Design ├── CustomPngImageListEditor.dfm ├── CustomPngImageListEditor.pas ├── HighDPI │ ├── PngImageListEditor.dfm │ └── PngImageListEditor.pas ├── LowDPI │ ├── PngImageListEditor.dfm │ └── PngImageListEditor.pas ├── PngComponentEditors.pas ├── PngComponents.dcr ├── PngComponentsRegister.pas ├── PngImageListEditor.dfm └── PngImageListEditor.pas ├── Docs ├── Changelog.txt ├── License.txt ├── PngComponents.html └── pngimage.chm ├── Example Images ├── Computer_32.png ├── FolderClosed_32.png ├── FolderOpen_32.png └── RemoteComputer_32.png ├── Images ├── TPngBitBtn128.png ├── TPngBitBtn16.png ├── TPngBitBtn24.png ├── TPngBitBtn32.png ├── TPngCheckListBox128.png ├── TPngCheckListBox16.png ├── TPngCheckListBox24.png ├── TPngCheckListBox32.png ├── TPngImageCollection128.png ├── TPngImageCollection16.png ├── TPngImageCollection24.png ├── TPngImageCollection32.png ├── TPngImageList128.png ├── TPngImageList16.png ├── TPngImageList24.png ├── TPngImageList32.png ├── TPngSpeedButton128.png ├── TPngSpeedButton16.png ├── TPngSpeedButton24.png └── TPngSpeedButton32.png ├── Include └── Thany.inc ├── Packages ├── 11AndAbove │ ├── CBuilder │ │ ├── PngComponentsC.cbproj │ │ ├── PngComponentsC.cpp │ │ ├── PngComponentsC.res │ │ ├── PngComponentsCBuilder.groupproj │ │ ├── PngComponentsCDesign.cbproj │ │ ├── PngComponentsCDesign.cpp │ │ └── PngComponentsCDesign.res │ └── Delphi │ │ ├── PNGComponentsDelphi.groupproj │ │ ├── PngComponentsD.dpk │ │ ├── PngComponentsD.dproj │ │ ├── PngComponentsD.res │ │ ├── PngComponentsDDesign.dpk │ │ ├── PngComponentsDDesign.dproj │ │ ├── PngComponentsDDesign.res │ │ ├── PngComponentsDesign_Icon.ico │ │ └── PngComponents_Icon.ico ├── Berlin │ ├── CBuilder │ │ ├── PngComponentsC.cbproj │ │ ├── PngComponentsC.cpp │ │ ├── PngComponentsC.res │ │ ├── PngComponentsCBuilder.groupproj │ │ ├── PngComponentsCDesign.cbproj │ │ ├── PngComponentsCDesign.cpp │ │ └── PngComponentsCDesign.res │ └── Delphi │ │ ├── PNGComponentsDelphi.groupproj │ │ ├── PngComponentsD.dpk │ │ ├── PngComponentsD.dproj │ │ ├── PngComponentsD.res │ │ ├── PngComponentsDDesign.dpk │ │ ├── PngComponentsDDesign.dproj │ │ ├── PngComponentsDDesign.res │ │ ├── PngComponentsDesign_Icon.ico │ │ └── PngComponents_Icon.ico ├── Rio │ ├── CBuilder │ │ ├── PngComponentsC.cbproj │ │ ├── PngComponentsC.cpp │ │ ├── PngComponentsC.res │ │ ├── PngComponentsCBuilder.groupproj │ │ ├── PngComponentsCDesign.cbproj │ │ ├── PngComponentsCDesign.cpp │ │ └── PngComponentsCDesign.res │ └── Delphi │ │ ├── PNGComponentsDelphi.groupproj │ │ ├── PngComponentsD.dpk │ │ ├── PngComponentsD.dproj │ │ ├── PngComponentsD.res │ │ ├── PngComponentsDDesign.dpk │ │ ├── PngComponentsDDesign.dproj │ │ ├── PngComponentsDDesign.res │ │ ├── PngComponentsDesign_Icon.ico │ │ └── PngComponents_Icon.ico ├── Sydney │ ├── CBuilder │ │ ├── PngComponentsC.cbproj │ │ ├── PngComponentsC.cpp │ │ ├── PngComponentsC.res │ │ ├── PngComponentsCBuilder.groupproj │ │ ├── PngComponentsCDesign.cbproj │ │ ├── PngComponentsCDesign.cpp │ │ └── PngComponentsCDesign.res │ └── Delphi │ │ ├── PNGComponentsDelphi.groupproj │ │ ├── PngComponentsD.dpk │ │ ├── PngComponentsD.dproj │ │ ├── PngComponentsD.res │ │ ├── PngComponentsDDesign.dpk │ │ ├── PngComponentsDDesign.dproj │ │ ├── PngComponentsDDesign.res │ │ ├── PngComponentsDesign_Icon.ico │ │ └── PngComponents_Icon.ico └── Tokyo │ ├── CBuilder │ ├── PngComponentsC.cbproj │ ├── PngComponentsC.cpp │ ├── PngComponentsC.res │ ├── PngComponentsCBuilder.groupproj │ ├── PngComponentsCDesign.cbproj │ ├── PngComponentsCDesign.cpp │ └── PngComponentsCDesign.res │ └── Delphi │ ├── PNGComponentsDelphi.groupproj │ ├── PngComponentsD.dpk │ ├── PngComponentsD.dproj │ ├── PngComponentsD.res │ ├── PngComponentsDDesign.dpk │ ├── PngComponentsDDesign.dproj │ ├── PngComponentsDDesign.res │ ├── PngComponentsDesign_Icon.ico │ └── PngComponents_Icon.ico ├── PngObject ├── obj │ ├── adler32.obj │ ├── compress.obj │ ├── deflate.obj │ ├── infback.obj │ ├── infblock.obj │ ├── infcodes.obj │ ├── inffast.obj │ ├── inflate.obj │ ├── inftrees.obj │ ├── infutil.obj │ └── trees.obj ├── pngimage.pas ├── pnglang.pas └── pngzlib.pas ├── Source ├── PngBitBtn.pas ├── PngButtonFunctions.pas ├── PngCheckListBox.pas ├── PngFunctions.pas ├── PngImageList.pas ├── PngSpeedButton.pas └── PngTBXOfficeXPTheme.pas ├── Tests └── PngBtnTest │ ├── ProjectPngBtnTest.dpr │ ├── ProjectPngBtnTest.dproj │ ├── ProjectPngBtnTest.res │ ├── Unit1.dfm │ └── Unit1.pas ├── license.txt └── readme.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Explicitly declare text files you want to always be normalized and converted 5 | # to native line endings on checkout. 6 | *.pas text 7 | *.dfm text 8 | *.md text 9 | *.txt text 10 | *.java text 11 | *.cs text 12 | *.dpk -text 13 | *.dproj -text 14 | *.groupproj -text 15 | 16 | # Declare files that will always have CRLF line endings on checkout. 17 | 18 | # Denote all files that are truly binary and should not be modified. 19 | *.exe binary 20 | *.res binary 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | Release 3 | Debug 4 | __history 5 | *.stat 6 | *.local 7 | *.identcache 8 | *.dcu 9 | *.dsk 10 | *.~* 11 | *.obj 12 | *.tmp 13 | *.apk 14 | *.bpl 15 | *.cgi 16 | *.d 17 | *.dct 18 | *.dcr 19 | *.dres 20 | *.dst 21 | *.entitlements 22 | *.i 23 | *.ilc 24 | *.ild 25 | *.ilf 26 | *.ilr 27 | *.ils 28 | *.ipa 29 | *.map 30 | *.o 31 | *.ocx 32 | *.pdi 33 | *.profile 34 | *.sdk 35 | *.rsm 36 | *.so 37 | *.tds 38 | *.vlb 39 | *.hpp 40 | *.tvsconfig 41 | -------------------------------------------------------------------------------- /.hgignore: -------------------------------------------------------------------------------- 1 | syntax: glob 2 | *.local 3 | *.identcache 4 | *.~* 5 | PngComponents.zip 6 | *.dsk 7 | *.tvsconfig 8 | D2007 9 | *.stat 10 | *.zip 11 | *.dcu 12 | *.dcp 13 | *.bpl 14 | *.exe 15 | *.d 16 | *.o 17 | *.obj 18 | *.bpi 19 | *.a 20 | *.pch 21 | *.lib 22 | -------------------------------------------------------------------------------- /.hgtags: -------------------------------------------------------------------------------- 1 | 09c92b0e815a315ed70bf7972e0740197c871d48 V1.1.0 2 | -------------------------------------------------------------------------------- /Design/CustomPngImageListEditor.dfm: -------------------------------------------------------------------------------- 1 | object CustomPngImageListEditorDlg: TCustomPngImageListEditorDlg 2 | Left = 202 3 | Top = 128 4 | BorderIcons = [biSystemMenu] 5 | Caption = 'Editing PngImageList' 6 | ClientHeight = 288 7 | ClientWidth = 461 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -12 12 | Font.Name = 'Segoe UI' 13 | Font.Style = [] 14 | OldCreateOrder = True 15 | Position = poScreenCenter 16 | OnClose = FormClose 17 | OnCreate = FormCreate 18 | OnResize = FormResize 19 | OnShow = FormShow 20 | PixelsPerInch = 96 21 | TextHeight = 15 22 | object pnlMain: TPanel 23 | Left = 0 24 | Top = 0 25 | Width = 461 26 | Height = 249 27 | BevelOuter = bvNone 28 | TabOrder = 0 29 | DesignSize = ( 30 | 461 31 | 249) 32 | object gbxProperties: TGroupBox 33 | Left = 8 34 | Top = 4 35 | Width = 177 36 | Height = 128 37 | Anchors = [akLeft, akTop, akBottom] 38 | Caption = 'Image properties' 39 | TabOrder = 0 40 | object lblName: TLabel 41 | Left = 10 42 | Top = 20 43 | Width = 35 44 | Height = 15 45 | Caption = '&Name:' 46 | FocusControl = edtName 47 | end 48 | object lblBackgroundColor: TLabel 49 | Left = 10 50 | Top = 64 51 | Width = 97 52 | Height = 15 53 | Caption = '&Background color:' 54 | FocusControl = cmbBackgroundColor 55 | end 56 | object edtName: TEdit 57 | Left = 8 58 | Top = 35 59 | Width = 161 60 | Height = 23 61 | TabOrder = 0 62 | OnChange = edtNameChange 63 | end 64 | object cmbBackgroundColor: TComboBox 65 | Left = 29 66 | Top = 79 67 | Width = 140 68 | Height = 23 69 | TabOrder = 2 70 | OnChange = cmbBackgroundColorChange 71 | OnDblClick = cmbBackgroundColorDblClick 72 | OnExit = cmbBackgroundColorExit 73 | end 74 | object pnlBackgroundColor: TPanel 75 | Left = 8 76 | Top = 79 77 | Width = 20 78 | Height = 21 79 | BevelOuter = bvNone 80 | BorderStyle = bsSingle 81 | TabOrder = 1 82 | OnClick = cmbBackgroundColorDblClick 83 | end 84 | end 85 | object lbxImages: TListBox 86 | Left = 276 87 | Top = 8 88 | Width = 177 89 | Height = 209 90 | Style = lbOwnerDrawVariable 91 | Anchors = [akLeft, akTop, akRight, akBottom] 92 | DragCursor = crDefault 93 | DragMode = dmAutomatic 94 | MultiSelect = True 95 | TabOrder = 3 96 | OnClick = lbxImagesClick 97 | OnDblClick = lbxImagesDblClick 98 | OnDragOver = lbxImagesDragOver 99 | OnDrawItem = lbxImagesDrawItem 100 | OnEnter = lbxImagesEnter 101 | OnExit = lbxImagesExit 102 | OnKeyDown = lbxImagesKeyDown 103 | OnMeasureItem = lbxImagesMeasureItem 104 | OnMouseUp = lbxImagesMouseUp 105 | OnStartDrag = lbxImagesStartDrag 106 | end 107 | object cmbPreviewBackground: TComboBox 108 | Left = 276 109 | Top = 220 110 | Width = 177 111 | Height = 21 112 | Style = csOwnerDrawFixed 113 | Anchors = [akLeft, akRight, akBottom] 114 | ItemHeight = 15 115 | TabOrder = 4 116 | OnChange = cmbPreviewBackgroundChange 117 | OnDrawItem = cmbPreviewBackgroundDrawItem 118 | Items.Strings = ( 119 | 'Default background' 120 | 'Checkerboard background' 121 | 'Diamonds background' 122 | 'Slashed background' 123 | 'Backslashed background') 124 | end 125 | object gbxImageInfo: TGroupBox 126 | Left = 10 127 | Top = 138 128 | Width = 177 129 | Height = 105 130 | Anchors = [akLeft, akBottom] 131 | Caption = 'Image information' 132 | TabOrder = 1 133 | object lblDimensions: TLabel 134 | Left = 8 135 | Top = 20 136 | Width = 80 137 | Height = 13 138 | Alignment = taRightJustify 139 | AutoSize = False 140 | Caption = 'Dimensions:' 141 | end 142 | object lblColorDepth: TLabel 143 | Left = 8 144 | Top = 36 145 | Width = 80 146 | Height = 13 147 | Alignment = taRightJustify 148 | AutoSize = False 149 | Caption = 'Color depth:' 150 | end 151 | object lblTransparency: TLabel 152 | Left = 8 153 | Top = 52 154 | Width = 80 155 | Height = 13 156 | Alignment = taRightJustify 157 | AutoSize = False 158 | Caption = 'Transparency:' 159 | end 160 | object lblCompression: TLabel 161 | Left = 8 162 | Top = 68 163 | Width = 80 164 | Height = 13 165 | Alignment = taRightJustify 166 | AutoSize = False 167 | Caption = 'Compression:' 168 | end 169 | object lblFiltering: TLabel 170 | Left = 8 171 | Top = 84 172 | Width = 80 173 | Height = 13 174 | Alignment = taRightJustify 175 | AutoSize = False 176 | Caption = 'Filtering:' 177 | end 178 | object lblDimensionsValue: TLabel 179 | Left = 96 180 | Top = 20 181 | Width = 76 182 | Height = 13 183 | AutoSize = False 184 | ShowAccelChar = False 185 | end 186 | object lblColorDepthValue: TLabel 187 | Left = 96 188 | Top = 36 189 | Width = 76 190 | Height = 13 191 | AutoSize = False 192 | ShowAccelChar = False 193 | end 194 | object lblTransparencyValue: TLabel 195 | Left = 96 196 | Top = 52 197 | Width = 76 198 | Height = 13 199 | AutoSize = False 200 | ShowAccelChar = False 201 | end 202 | object lblCompressionValue: TLabel 203 | Left = 96 204 | Top = 68 205 | Width = 76 206 | Height = 13 207 | AutoSize = False 208 | ShowAccelChar = False 209 | end 210 | object lblFilteringValue: TLabel 211 | Left = 96 212 | Top = 84 213 | Width = 76 214 | Height = 13 215 | AutoSize = False 216 | ShowAccelChar = False 217 | end 218 | end 219 | object pnlActionButtons: TPanel 220 | Left = 193 221 | Top = 35 222 | Width = 75 223 | Height = 178 224 | Anchors = [akLeft] 225 | BevelOuter = bvNone 226 | TabOrder = 2 227 | object btnAdd: TButton 228 | Left = 0 229 | Top = 0 230 | Width = 75 231 | Height = 25 232 | Caption = '&Add' 233 | TabOrder = 0 234 | OnClick = btnAddClick 235 | end 236 | object btnDelete: TButton 237 | Left = 0 238 | Top = 29 239 | Width = 75 240 | Height = 25 241 | Caption = '&Delete' 242 | TabOrder = 1 243 | OnClick = btnDeleteClick 244 | end 245 | object btnReplace: TButton 246 | Left = 0 247 | Top = 58 248 | Width = 75 249 | Height = 25 250 | Caption = '&Replace' 251 | TabOrder = 2 252 | OnClick = btnReplaceClick 253 | end 254 | object btnClear: TButton 255 | Left = 0 256 | Top = 87 257 | Width = 75 258 | Height = 25 259 | Caption = '&Clear' 260 | TabOrder = 3 261 | OnClick = btnClearClick 262 | end 263 | object btnUp: TButton 264 | Left = 0 265 | Top = 124 266 | Width = 75 267 | Height = 25 268 | Caption = '&Up' 269 | TabOrder = 4 270 | OnClick = btnUpClick 271 | end 272 | object btnDown: TButton 273 | Left = 0 274 | Top = 153 275 | Width = 75 276 | Height = 25 277 | Caption = '&Down' 278 | TabOrder = 5 279 | OnClick = btnDownClick 280 | end 281 | end 282 | end 283 | object pnlButtons: TPanel 284 | Left = 0 285 | Top = 249 286 | Width = 461 287 | Height = 37 288 | BevelOuter = bvNone 289 | TabOrder = 1 290 | DesignSize = ( 291 | 461 292 | 37) 293 | object pnlModalButtons: TPanel 294 | Left = 152 295 | Top = 4 296 | Width = 158 297 | Height = 25 298 | Anchors = [akBottom] 299 | BevelOuter = bvNone 300 | TabOrder = 0 301 | object btnOK: TButton 302 | Left = 0 303 | Top = 0 304 | Width = 75 305 | Height = 25 306 | Caption = '&OK' 307 | Default = True 308 | ModalResult = 1 309 | TabOrder = 0 310 | end 311 | object btnCancel: TButton 312 | Left = 83 313 | Top = 0 314 | Width = 75 315 | Height = 25 316 | Cancel = True 317 | Caption = '&Cancel' 318 | ModalResult = 2 319 | TabOrder = 1 320 | end 321 | end 322 | object chkUseFilenames: TCheckBox 323 | Left = 341 324 | Top = 7 325 | Width = 112 326 | Height = 17 327 | Anchors = [akTop, akRight] 328 | Caption = 'Use Filenames' 329 | Checked = True 330 | State = cbChecked 331 | TabOrder = 1 332 | end 333 | end 334 | object dlgOpenPicture: TOpenPictureDialog 335 | DefaultExt = 'png' 336 | Filter = 'Portable Network Graphics (*.png)|*.png' 337 | Options = [ofHideReadOnly, ofPathMustExist, ofFileMustExist, ofEnableSizing] 338 | Title = 'Browse for a PNG file' 339 | Left = 40 340 | Top = 251 341 | end 342 | object dlgColor: TColorDialog 343 | Options = [cdAnyColor] 344 | Left = 72 345 | Top = 251 346 | end 347 | object Images: TPngImageCollection 348 | Items = <> 349 | Left = 8 350 | Top = 251 351 | end 352 | end 353 | -------------------------------------------------------------------------------- /Design/HighDPI/PngImageListEditor.pas: -------------------------------------------------------------------------------- 1 | unit PngImageListEditor; 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, CustomPngImageListEditor, PngImageList, Vcl.ExtDlgs, Vcl.StdCtrls, Vcl.Buttons, PngBitBtn, 8 | Vcl.ExtCtrls, System.ImageList, Vcl.ImgList, Vcl.BaseImageCollection, Vcl.ImageCollection, Vcl.VirtualImageList; 9 | 10 | type 11 | TPngImageListEditorDlg = class(TCustomPngImageListEditorDlg) 12 | BtnImages: TVirtualImageList; 13 | ImageCollection1: TImageCollection; 14 | private 15 | public 16 | end; 17 | 18 | implementation 19 | 20 | {$R *.dfm} 21 | 22 | end. 23 | -------------------------------------------------------------------------------- /Design/LowDPI/PngImageListEditor.pas: -------------------------------------------------------------------------------- 1 | unit PngImageListEditor; 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, CustomPngImageListEditor, PngImageList, Vcl.ExtDlgs, Vcl.StdCtrls, Vcl.Buttons, PngBitBtn, 8 | Vcl.ExtCtrls, System.ImageList, Vcl.ImgList; 9 | 10 | type 11 | TPngImageListEditorDlg = class(TCustomPngImageListEditorDlg) 12 | BtnImages: TPngImageList; 13 | private 14 | public 15 | end; 16 | 17 | var 18 | PngImageListEditorDlg: TPngImageListEditorDlg; 19 | 20 | implementation 21 | 22 | {$R *.dfm} 23 | 24 | end. 25 | -------------------------------------------------------------------------------- /Design/PngComponentEditors.pas: -------------------------------------------------------------------------------- 1 | unit PngComponentEditors; 2 | 3 | interface 4 | 5 | uses 6 | Windows, SysUtils, Forms, Classes, Controls, PngImageList, TypInfo, 7 | DesignIntf, DesignEditors, ColnEdit; 8 | 9 | type 10 | TPngImageListEditor = class(TComponentEditor) 11 | public 12 | procedure Edit; override; 13 | procedure ExecuteVerb(Index: Integer); override; 14 | function GetVerb(Index: Integer): string; override; 15 | function GetVerbCount: Integer; override; 16 | end; 17 | 18 | TPngImageCollectionEditor = class(TComponentEditor) 19 | public 20 | procedure Edit; override; 21 | procedure ExecuteVerb(Index: Integer); override; 22 | function GetVerb(Index: Integer): string; override; 23 | function GetVerbCount: Integer; override; 24 | end; 25 | 26 | TPngButtonEditor = class(TComponentEditor) 27 | public 28 | procedure Edit; override; 29 | procedure ExecuteVerb(Index: Integer); override; 30 | function GetVerb(Index: Integer): string; override; 31 | function GetVerbCount: Integer; override; 32 | end; 33 | 34 | TPngImageListImagesEditor = class(TStringProperty) 35 | public 36 | procedure Edit; override; 37 | function GetAttributes: TPropertyAttributes; override; 38 | function GetValue: string; override; 39 | end; 40 | 41 | TPngImageCollectionItemsEditor = class(TPngImageListImagesEditor) 42 | public 43 | procedure Edit; override; 44 | end; 45 | 46 | TEditProperty = class 47 | private 48 | FPropery: string; 49 | procedure EnumProperty(const Prop: IProperty); 50 | public 51 | constructor Create(Component: TComponent; const Prop: string; Designer: IDesigner); 52 | end; 53 | 54 | implementation 55 | 56 | uses 57 | PngImageListEditor; 58 | 59 | resourcestring 60 | SEditImage = '&Edit image...'; 61 | SRecreateImages = '&Recreate images...'; 62 | SEditImages = '&Edit images...'; 63 | SEditing = 'Editing %s.%s'; 64 | SPNGObjectsHaveBeenCopied = 'The PNG objects have been copied to the internal imagelist.'; 65 | 66 | //This type is neccesary to be able to call CopyPngs without having to make it 67 | //public in the TPngImageList class. 68 | type 69 | TPngImageListAccess = class(TPngImageList); 70 | 71 | procedure EditProperty(Component: TComponent; const Prop: string; Designer: IDesigner); 72 | begin 73 | TEditProperty.Create(Component, Prop, Designer).Free; 74 | end; 75 | 76 | { TPngImageListEditor } 77 | 78 | procedure TPngImageListEditor.Edit; 79 | var 80 | Component: TPngImageList; 81 | begin 82 | Component := GetComponent as TPngImageList; 83 | EditProperty(Component, 'PngImages', Designer); // do not localize 84 | end; 85 | 86 | procedure TPngImageListEditor.ExecuteVerb(Index: Integer); 87 | begin 88 | case Index of 89 | 0: Edit; 90 | 1: begin 91 | TPngImageListAccess(GetComponent).CopyPngs; 92 | MessageBox(0, PChar(SPNGObjectsHaveBeenCopied), 93 | PChar(string(GetComponent.ClassName)), MB_ICONINFORMATION or MB_OK); 94 | end; 95 | end; 96 | end; 97 | 98 | function TPngImageListEditor.GetVerb(Index: Integer): string; 99 | begin 100 | case Index of 101 | 0: Result := SEditImages; 102 | 1: Result := SRecreateImages; 103 | end; 104 | end; 105 | 106 | function TPngImageListEditor.GetVerbCount: Integer; 107 | begin 108 | Result := 2; 109 | end; 110 | 111 | { TPngImageCollectionEditor } 112 | 113 | procedure TPngImageCollectionEditor.Edit; 114 | var 115 | Component: TPngImageCollection; 116 | begin 117 | Component := GetComponent as TPngImageCollection; 118 | EditProperty(Component, 'Items', Designer); // do not localize 119 | end; 120 | 121 | procedure TPngImageCollectionEditor.ExecuteVerb(Index: Integer); 122 | begin 123 | Edit; 124 | end; 125 | 126 | function TPngImageCollectionEditor.GetVerb(Index: Integer): string; 127 | begin 128 | Result := SEditImages; 129 | end; 130 | 131 | function TPngImageCollectionEditor.GetVerbCount: Integer; 132 | begin 133 | Result := 1; 134 | end; 135 | 136 | procedure TPngButtonEditor.Edit; 137 | begin 138 | EditProperty(GetComponent, 'OnClick', Designer); // do not localize 139 | end; 140 | 141 | { TPngButtonEditor } 142 | 143 | procedure TPngButtonEditor.ExecuteVerb(Index: Integer); 144 | begin 145 | EditProperty(GetComponent, 'PngImage', Designer); // do not localize 146 | end; 147 | 148 | function TPngButtonEditor.GetVerb(Index: Integer): string; 149 | begin 150 | Result := SEditImage; 151 | end; 152 | 153 | function TPngButtonEditor.GetVerbCount: Integer; 154 | begin 155 | Result := 1; 156 | end; 157 | 158 | { TEditProperty } 159 | 160 | constructor TEditProperty.Create(Component: TComponent; const Prop: string; Designer: IDesigner); 161 | var 162 | Components: IDesignerSelections; 163 | begin 164 | inherited Create; 165 | FPropery := Prop; 166 | Components := TDesignerSelections.Create; 167 | Components.Add(Component); 168 | GetComponentProperties(Components, tkAny, Designer, EnumProperty); 169 | end; 170 | 171 | procedure TEditProperty.EnumProperty(const Prop: IProperty); 172 | begin 173 | if Prop.GetName = FPropery then 174 | Prop.Edit; 175 | end; 176 | 177 | { TPngImageListImagesEditor } 178 | 179 | procedure TPngImageListImagesEditor.Edit; 180 | var 181 | ImageList: TPngImageList; 182 | dlg: TPngImageListEditorDlg; 183 | begin 184 | dlg := TPngImageListEditorDlg.Create(nil); 185 | try 186 | ImageList := GetComponent(0) as TPngImageList; 187 | dlg.Caption := Format(SEditing, [ImageList.Name, GetName]); 188 | dlg.Images.Items.Assign(ImageList.PngImages); 189 | dlg.ImageWidth := ImageList.Width; 190 | dlg.ImageHeight := ImageList.Height; 191 | if dlg.ShowModal = mrOK then begin 192 | ImageList.Width := dlg.ImageWidth; 193 | ImageList.Height := dlg.ImageHeight; 194 | ImageList.PngImages.Assign(dlg.Images.Items); 195 | Designer.Modified; 196 | end; 197 | finally 198 | dlg.Free; 199 | end; 200 | end; 201 | 202 | function TPngImageListImagesEditor.GetAttributes: TPropertyAttributes; 203 | begin 204 | Result := inherited GetAttributes + [paDialog, paReadOnly]; 205 | end; 206 | 207 | function TPngImageListImagesEditor.GetValue: string; 208 | begin 209 | Result := '(PNG images)'; // do not localize 210 | end; 211 | 212 | { TPngImageCollectionItemsEditor } 213 | 214 | procedure TPngImageCollectionItemsEditor.Edit; 215 | var 216 | Collection: TPngImageCollection; 217 | dlg: TPngImageListEditorDlg; 218 | begin 219 | Collection := GetComponent(0) as TPngImageCollection; 220 | dlg := TPngImageListEditorDlg.Create(nil); 221 | try 222 | dlg.Caption := Format(SEditing, [Collection.Name, GetName]); 223 | dlg.Images.Items.Assign(Collection.Items); 224 | if dlg.ShowModal = mrOK then begin 225 | Collection.Items.Assign(dlg.Images.Items); 226 | Designer.Modified; 227 | end; 228 | finally 229 | dlg.Free; 230 | end; 231 | end; 232 | 233 | end. 234 | -------------------------------------------------------------------------------- /Design/PngComponents.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Design/PngComponents.dcr -------------------------------------------------------------------------------- /Design/PngComponentsRegister.pas: -------------------------------------------------------------------------------- 1 | unit PngComponentsRegister; 2 | 3 | interface 4 | 5 | uses 6 | Classes, DesignIntf, TypInfo, 7 | PngSpeedButton, PngBitBtn, PngImageList, PngCheckListBox, PngComponentEditors; 8 | 9 | procedure Register; 10 | 11 | implementation 12 | 13 | const 14 | SPageName = 'Png'; 15 | 16 | procedure Register; 17 | begin 18 | //Register all components 19 | RegisterComponents(SPageName, [TPngSpeedButton, TPngBitBtn, TPngImageList, 20 | TPngImageCollection, TPngCheckListBox]); 21 | 22 | //Register component editors 23 | RegisterComponentEditor(TPngImageList, TPngImageListEditor); 24 | RegisterComponentEditor(TPngImageCollection, TPngImageCollectionEditor); 25 | RegisterComponentEditor(TPngBitBtn, TPngButtonEditor); 26 | RegisterComponentEditor(TPngSpeedButton, TPngButtonEditor); 27 | 28 | //Register property editors 29 | RegisterPropertyEditor(TypeInfo(TPngImageCollectionItems), TPngImageList, 30 | 'PngImages', TPngImageListImagesEditor); // do not localize 31 | RegisterPropertyEditor(TypeInfo(TPngImageCollectionItems), TPngImageCollection, 32 | 'Items', TPngImageCollectionItemsEditor); // do not localize 33 | 34 | //Hide properties that should be omitted 35 | UnlistPublishedProperty(TPngSpeedButton, 'NumGlyphs'); // do not localize 36 | UnlistPublishedProperty(TPngSpeedButton, 'Glyph'); // do not localize 37 | UnlistPublishedProperty(TPngBitBtn, 'NumGlyphs'); // do not localize 38 | UnlistPublishedProperty(TPngBitBtn, 'Glyph'); // do not localize 39 | end; 40 | 41 | end. 42 | -------------------------------------------------------------------------------- /Docs/Changelog.txt: -------------------------------------------------------------------------------- 1 | PngComponents 1.1: 2 | - Common: "adopted" the project from Martijn Saly 3 | - Common: added D2009 support (mostly changed PngObject to PngImage) 4 | - Common: removed compatibility with versions below Delphi 7 5 | - Common: removed references to Thany.Inc (use RTLVersion instead) 6 | - Common: cleaned up the code (mostly to use my formatting style) 7 | - Editor: added "use file name" in PngImageListEditor (sets the name of the image to it's filename) 8 | 9 | PngComponents 1.0 RC3: 10 | - Editor: Fixed "invalid header" exception when adding a PNG to the list. 11 | - Editor: Everything should now look good on "large fonts" setting. 12 | - PngBitBtn: Positioning and drawing of the glyph was sometimes a bit odd. 13 | - PngBitBtn: Removed the need to draw an empty TBitmap glyph, prior to drawing the PNG glyph. 14 | - PngSpeedButton: The image is now shifted down-right by 1 pixel, when the button is down but not pressed, to match the behavior of a normal SpeedButton. 15 | - PngImageList: Fixed range check errors in PngToIcon32. 16 | - PngImageList: Fixed possible AccessViolation in PngToIcon32. 17 | - PngImageList: Fixed AccessViolation in AddImages. 18 | - PngImageList: Fixed memory leak in CopyPngs. 19 | - PngImageList: Added BeginUpdate and EndUpdate methods, to temporarily prevent the internal imagelist from being updated. 20 | - PngImageList: The patched methods are more efficient, because they now manipulate the internal imagelist directly, rather than relying on CopyPngs. 21 | - PngImageList: Added calls to Change in the patched methods. 22 | 23 | PngComponents 1.0 RC2: 24 | - Editor: Fixed endless loop when repetitively removing the last image in a list of at least 3 (thanks to Aleksander Oven). 25 | - Editor: Fixed possible out-of-bounds error when moving an image down using the Down button (thanks to Spiril). 26 | - Editor: Now using Graphics.GetColorValues to retrieve available color identifiers (thanks to LJ and Ryan Mills). 27 | - Editor: Rewritten ParseBackgroundColor and SelectBackgroundColor to use IdentToColor, StringToColor and ColorToIdent from Gaphics unit (thanks to LJ and Ryan Mills). 28 | - Editor: It is now possible to set the background color to more than 1 selected image. 29 | - Editor: Minor GUI fixes 30 | - PngBitBtn: When Margin <> -1 and the button is focused, the image must be shifted 1 pixel, to match the behavior of a normal BitBtn. 31 | - PngBitBtn: Fixed EPngHeaderNotPresent when assigning a nil to the PngImage property. 32 | - PngBitBtn: PngImage property now behaves correctly when assigning an action. Note that the image will not be stored in the DFM if it came from a TActionList.ImageList (thanks to robvdl) 33 | - PngSpeedButton: The same fixes that apply to PngBitBtn, applied to PngSpeedButton. 34 | - PngImageList: Adding a default action to an imagelist no longer results in out of bounds errors (thanks to robvdl). 35 | - PngImageList: 14 methods that couldn't be overridden are now patched (thanks to Vladimir Bochkarev). However, adding a default action to an imagelist still doesn't call the "new" Add method, but supposedly the legacy ImageList_Add() function, which cannot be patched. 36 | - PngImageList: Fixed memory leak in CopyPngs (thanks to M. Youssfi). 37 | - Common: Added Amount parameter to MakeImageBlended and MakeImageGrayscale. 38 | - Common: Added function ConvertToPNG, which converts a TGraphic to a PNG object, if not already. 39 | - Common: Added functions CreatePNG and CreatePNGMasked, which create a new PNG object based on a bitmap and a (color or bitmap) mask. 40 | - Common: Added function CopyImageFromImageList, which effectively copies an image from a normal imagelist or a PngImageList into a PNG. 41 | - Common: Added function SlicePNG for future use. This slices a large PNG object into smaller, equally-sized ones. 42 | - Common: Added zlib version 1.2.2 to the PNG package (thanks to Vladimir Bochkarev). 43 | 44 | PngComponents 1.0 RC1: 45 | - Initial public release -------------------------------------------------------------------------------- /Docs/License.txt: -------------------------------------------------------------------------------- 1 | END-USER LICENSE AGREEMENT 2 | 3 | All files included in this archive are Copyright (C) 2002-2005 Martijn Saly. 4 | Use and/or distribution of them requires acceptance of the following License 5 | Agreement. 6 | 7 | -------------------------------------------------------------------------------- 8 | 9 | - "Author" herein refers to Martijn Saly (the creator of this package and 10 | containing files and software). 11 | - "Software" herein refers to all files bearing this notice, as well as any 12 | other files and source code included with this package (typically extracted 13 | from a .zip or .cab archive), and all content in them, regardless of whether 14 | any modifications have been made. 15 | - "Compile" herein refers to the automatic process of translating the Software's 16 | source code into executable machine code by a compiler such as the one 17 | included with Borland's Delphi or C++Builder. 18 | 19 | Except where otherwise noted, all of the documentation and Software included in 20 | the this package is copyrighted by Martijn Saly (the Author). 21 | 22 | Copyright (C) 2002-2005 Martijn Saly. All rights reserved. 23 | 24 | 25 | Use and distribution of the software is permitted provided that all of the 26 | following terms are accepted. Terms 5 through 8 apply only to distributions 27 | which include source code that one can Compile. 28 | 29 | 1) The Software is provided "as-is," without any express or implied warranty. In 30 | no event shall the Author be held liable for any damages arising from the use 31 | or Compile of the Software. 32 | 33 | 2) All redistributions of the Software's files must be in their original, 34 | unmodified form. Distributions of modified versions of the files is not 35 | permitted without express written permission of the Author. 36 | 37 | 3) All redistributions of the Software's files must retain all copyright notices 38 | and web site addresses that are currently in place, and must include this 39 | list of conditions in its original, unmodified form. 40 | 41 | 4) None of the Software's files may be redistributed for profit or as part of 42 | another software package without express written permission of the Author. 43 | 44 | 5) If applicable, you are permitted to Compile the Software, in orginal or 45 | modified form, into any kind of application, including commercial or 46 | shareware applications, or any application you are profiting from. 47 | 48 | 6) If applicable, redistribution of any of the Software's files in object form 49 | (including but not limited to .DCU and .OBJ formats) is strictly prohibited 50 | without express written permission of the Author. 51 | 52 | 7) If applicable, distribution of the Software in compiled package format 53 | (the BPL file) is permitted, as long as the Software is distributed as part 54 | of an application. 55 | 56 | 8) If applicable, distribution of the Software in compiled package format 57 | (the BPL file) is prohibed if the distribution does not specifically belong 58 | to an application, written by the same author as the application was written 59 | by. 60 | 61 | 9) Full backward compatibility in future versions of the Software is not 62 | guaranteed. In no event shall the Author be held liable for any inconvenience 63 | or damages arising from lack of backward compatibility. 64 | 65 | If you do not agree to all of the above terms, you are not permitted to use or 66 | Compile the Software in any way, and all copies of it must be deleted from your 67 | system(s). 68 | 69 | ---------------------------------------------------------------------------- 70 | 71 | Martijn Saly 72 | martijn@thany.org 73 | http://www.thany.org/ -------------------------------------------------------------------------------- /Docs/PngComponents.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Docs/PngComponents.html -------------------------------------------------------------------------------- /Docs/pngimage.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Docs/pngimage.chm -------------------------------------------------------------------------------- /Example Images/Computer_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Example Images/Computer_32.png -------------------------------------------------------------------------------- /Example Images/FolderClosed_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Example Images/FolderClosed_32.png -------------------------------------------------------------------------------- /Example Images/FolderOpen_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Example Images/FolderOpen_32.png -------------------------------------------------------------------------------- /Example Images/RemoteComputer_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Example Images/RemoteComputer_32.png -------------------------------------------------------------------------------- /Images/TPngBitBtn128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngBitBtn128.png -------------------------------------------------------------------------------- /Images/TPngBitBtn16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngBitBtn16.png -------------------------------------------------------------------------------- /Images/TPngBitBtn24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngBitBtn24.png -------------------------------------------------------------------------------- /Images/TPngBitBtn32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngBitBtn32.png -------------------------------------------------------------------------------- /Images/TPngCheckListBox128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngCheckListBox128.png -------------------------------------------------------------------------------- /Images/TPngCheckListBox16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngCheckListBox16.png -------------------------------------------------------------------------------- /Images/TPngCheckListBox24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngCheckListBox24.png -------------------------------------------------------------------------------- /Images/TPngCheckListBox32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngCheckListBox32.png -------------------------------------------------------------------------------- /Images/TPngImageCollection128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngImageCollection128.png -------------------------------------------------------------------------------- /Images/TPngImageCollection16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngImageCollection16.png -------------------------------------------------------------------------------- /Images/TPngImageCollection24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngImageCollection24.png -------------------------------------------------------------------------------- /Images/TPngImageCollection32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngImageCollection32.png -------------------------------------------------------------------------------- /Images/TPngImageList128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngImageList128.png -------------------------------------------------------------------------------- /Images/TPngImageList16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngImageList16.png -------------------------------------------------------------------------------- /Images/TPngImageList24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngImageList24.png -------------------------------------------------------------------------------- /Images/TPngImageList32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngImageList32.png -------------------------------------------------------------------------------- /Images/TPngSpeedButton128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngSpeedButton128.png -------------------------------------------------------------------------------- /Images/TPngSpeedButton16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngSpeedButton16.png -------------------------------------------------------------------------------- /Images/TPngSpeedButton24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngSpeedButton24.png -------------------------------------------------------------------------------- /Images/TPngSpeedButton32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Images/TPngSpeedButton32.png -------------------------------------------------------------------------------- /Include/Thany.inc: -------------------------------------------------------------------------------- 1 | {$B-} 2 | {$X+} 3 | {$T+} 4 | {$P+} 5 | {$H+} 6 | {$J-} 7 | 8 | {$IFNDEF WIN32} 9 | Thany components do not support 16-bit Windows. 10 | {$ENDIF} 11 | 12 | {$IFDEF VER170} 13 | {$DEFINE THANY_COMPILER_9} 14 | {$IFDEF BCB} 15 | {$DEFINE THANY_CPPB} 16 | {$DEFINE THANY_CPPB_9} 17 | {$ELSE} 18 | {$DEFINE THANY_DELPHI} 19 | {$DEFINE THANY_DELPHI_9} 20 | {$ENDIF} 21 | {$ENDIF} 22 | 23 | {$IFDEF VER180} 24 | {$DEFINE THANY_COMPILER_10} 25 | {$IFDEF BCB} 26 | {$DEFINE THANY_CPPB} 27 | {$DEFINE THANY_CPPB_10} 28 | {$ELSE} 29 | {$DEFINE THANY_DELPHI} 30 | {$DEFINE THANY_DELPHI_10} 31 | {$ENDIF} 32 | {$ENDIF} 33 | 34 | {$IFDEF VER150} 35 | {$DEFINE THANY_COMPILER_7} 36 | {$IFDEF BCB} 37 | {$DEFINE THANY_CPPB} 38 | {$DEFINE THANY_CPPB_7} 39 | {$ELSE} 40 | {$DEFINE THANY_DELPHI} 41 | {$DEFINE THANY_DELPHI_7} 42 | {$ENDIF} 43 | {$ENDIF} 44 | 45 | {$IFDEF VER140} 46 | {$DEFINE THANY_COMPILER_6} 47 | {$IFDEF BCB} 48 | {$DEFINE THANY_CPPB} 49 | {$DEFINE THANY_CPPB_6} 50 | {$ELSE} 51 | {$DEFINE THANY_DELPHI} 52 | {$DEFINE THANY_DELPHI_6} 53 | {$ENDIF} 54 | {$ENDIF} 55 | 56 | {$IFDEF VER130} 57 | {$DEFINE THANY_COMPILER_5} 58 | {$IFDEF BCB} 59 | {$DEFINE THANY_CPPB} 60 | {$DEFINE THANY_CPPB_5} 61 | {$ELSE} 62 | {$DEFINE THANY_DELPHI} 63 | {$DEFINE THANY_DELPHI_5} 64 | {$ENDIF} 65 | {$ENDIF} 66 | 67 | {$IFDEF VER125} 68 | {$DEFINE THANY_COMPILER_4} 69 | {$DEFINE THANY_CPPB} 70 | {$DEFINE THANY_CPPB_4} 71 | {$ENDIF} 72 | 73 | {$IFDEF VER120} 74 | {$DEFINE THANY_COMPILER_4} 75 | {$DEFINE THANY_DELPHI} 76 | {$DEFINE THANY_DELPHI_4} 77 | {$ENDIF} 78 | 79 | {$IFDEF VER110} 80 | {$DEFINE THANY_COMPILER_3} 81 | {$DEFINE THANY_CPPB} 82 | {$DEFINE THANY_CPPB_3} 83 | {$ENDIF} 84 | 85 | {$IFDEF VER100} 86 | {$DEFINE THANY_COMPILER_3} 87 | {$DEFINE THANY_DELPHI} 88 | {$DEFINE THANY_DELPHI_3} 89 | {$ENDIF} 90 | 91 | {$IFDEF VER93} 92 | {$DEFINE THANY_COMPILER_2} 93 | {$DEFINE THANY_CPPB} 94 | {$DEFINE THANY_CPPB_1} 95 | {$ENDIF} 96 | 97 | {$IFDEF VER90} 98 | {$DEFINE THANY_COMPILER_2} 99 | {$DEFINE THANY_DELPHI} 100 | {$DEFINE THANY_DELPHI_2} 101 | {$ENDIF} 102 | 103 | {$IFNDEF THANY_CPPB} 104 | {$IFNDEF THANY_DELPHI} 105 | {$DEFINE THANY_UNKNOWN_COMPILER} 106 | {$ENDIF} 107 | {$ENDIF} 108 | 109 | {$IFDEF THANY_COMPILER_2} 110 | {$DEFINE THANY_COMPILER_2_UP} 111 | {$ENDIF} 112 | 113 | {$IFDEF THANY_COMPILER_3} 114 | {$DEFINE THANY_COMPILER_2_UP} 115 | {$DEFINE THANY_COMPILER_3_UP} 116 | {$ENDIF} 117 | 118 | {$IFDEF THANY_COMPILER_4} 119 | {$DEFINE THANY_COMPILER_2_UP} 120 | {$DEFINE THANY_COMPILER_3_UP} 121 | {$DEFINE THANY_COMPILER_4_UP} 122 | {$ENDIF} 123 | 124 | {$IFDEF THANY_COMPILER_5} 125 | {$DEFINE THANY_COMPILER_2_UP} 126 | {$DEFINE THANY_COMPILER_3_UP} 127 | {$DEFINE THANY_COMPILER_4_UP} 128 | {$DEFINE THANY_COMPILER_5_UP} 129 | {$ENDIF} 130 | 131 | {$IFDEF THANY_COMPILER_6} 132 | {$DEFINE THANY_COMPILER_2_UP} 133 | {$DEFINE THANY_COMPILER_3_UP} 134 | {$DEFINE THANY_COMPILER_4_UP} 135 | {$DEFINE THANY_COMPILER_5_UP} 136 | {$DEFINE THANY_COMPILER_6_UP} 137 | {$ENDIF} 138 | 139 | {$IFDEF THANY_COMPILER_7} 140 | {$DEFINE THANY_COMPILER_2_UP} 141 | {$DEFINE THANY_COMPILER_3_UP} 142 | {$DEFINE THANY_COMPILER_4_UP} 143 | {$DEFINE THANY_COMPILER_5_UP} 144 | {$DEFINE THANY_COMPILER_6_UP} 145 | {$DEFINE THANY_COMPILER_7_UP} 146 | {$ENDIF} 147 | 148 | {$IFDEF THANY_COMPILER_9} 149 | {$DEFINE THANY_COMPILER_2_UP} 150 | {$DEFINE THANY_COMPILER_3_UP} 151 | {$DEFINE THANY_COMPILER_4_UP} 152 | {$DEFINE THANY_COMPILER_5_UP} 153 | {$DEFINE THANY_COMPILER_6_UP} 154 | {$DEFINE THANY_COMPILER_7_UP} 155 | {$DEFINE THANY_COMPILER_9_UP} 156 | {$ENDIF} 157 | 158 | {$IFDEF THANY_COMPILER_10} 159 | {$DEFINE THANY_COMPILER_2_UP} 160 | {$DEFINE THANY_COMPILER_3_UP} 161 | {$DEFINE THANY_COMPILER_4_UP} 162 | {$DEFINE THANY_COMPILER_5_UP} 163 | {$DEFINE THANY_COMPILER_6_UP} 164 | {$DEFINE THANY_COMPILER_7_UP} 165 | {$DEFINE THANY_COMPILER_9_UP} 166 | {$DEFINE THANY_COMPILER_10_UP} 167 | {$ENDIF} 168 | 169 | {$IFDEF THANY_DELPHI_2} 170 | {$DEFINE THANY_DELPHI_2_UP} 171 | {$ENDIF} 172 | 173 | {$IFDEF THANY_DELPHI_3} 174 | {$DEFINE THANY_DELPHI_2_UP} 175 | {$DEFINE THANY_DELPHI_3_UP} 176 | {$ENDIF} 177 | 178 | {$IFDEF THANY_DELPHI_4} 179 | {$DEFINE THANY_DELPHI_2_UP} 180 | {$DEFINE THANY_DELPHI_3_UP} 181 | {$DEFINE THANY_DELPHI_4_UP} 182 | {$ENDIF} 183 | 184 | {$IFDEF THANY_DELPHI_5} 185 | {$DEFINE THANY_DELPHI_2_UP} 186 | {$DEFINE THANY_DELPHI_3_UP} 187 | {$DEFINE THANY_DELPHI_4_UP} 188 | {$DEFINE THANY_DELPHI_5_UP} 189 | {$ENDIF} 190 | 191 | {$IFDEF THANY_DELPHI_6} 192 | {$DEFINE THANY_DELPHI_2_UP} 193 | {$DEFINE THANY_DELPHI_3_UP} 194 | {$DEFINE THANY_DELPHI_4_UP} 195 | {$DEFINE THANY_DELPHI_5_UP} 196 | {$DEFINE THANY_DELPHI_6_UP} 197 | {$ENDIF} 198 | 199 | {$IFDEF THANY_DELPHI_7} 200 | {$DEFINE THANY_DELPHI_2_UP} 201 | {$DEFINE THANY_DELPHI_3_UP} 202 | {$DEFINE THANY_DELPHI_4_UP} 203 | {$DEFINE THANY_DELPHI_5_UP} 204 | {$DEFINE THANY_DELPHI_6_UP} 205 | {$DEFINE THANY_DELPHI_7_UP} 206 | {$ENDIF} 207 | 208 | {$IFDEF THANY_DELPHI_9} 209 | {$DEFINE THANY_DELPHI_2_UP} 210 | {$DEFINE THANY_DELPHI_3_UP} 211 | {$DEFINE THANY_DELPHI_4_UP} 212 | {$DEFINE THANY_DELPHI_5_UP} 213 | {$DEFINE THANY_DELPHI_6_UP} 214 | {$DEFINE THANY_DELPHI_7_UP} 215 | {$DEFINE THANY_DELPHI_9_UP} 216 | {$ENDIF} 217 | 218 | {$IFDEF THANY_DELPHI_10} 219 | {$DEFINE THANY_DELPHI_2_UP} 220 | {$DEFINE THANY_DELPHI_3_UP} 221 | {$DEFINE THANY_DELPHI_4_UP} 222 | {$DEFINE THANY_DELPHI_5_UP} 223 | {$DEFINE THANY_DELPHI_6_UP} 224 | {$DEFINE THANY_DELPHI_7_UP} 225 | {$DEFINE THANY_DELPHI_9_UP} 226 | {$DEFINE THANY_DELPHI_10_UP} 227 | {$ENDIF} 228 | 229 | {$IFDEF THANY_CPPB_3} 230 | {$DEFINE THANY_CPPB_3_UP} 231 | {$ENDIF} 232 | 233 | {$IFDEF THANY_CPPB_4} 234 | {$DEFINE THANY_CPPB_3_UP} 235 | {$DEFINE THANY_CPPB_4_UP} 236 | {$ENDIF} 237 | 238 | {$IFDEF THANY_CPPB_5} 239 | {$DEFINE THANY_CPPB_3_UP} 240 | {$DEFINE THANY_CPPB_4_UP} 241 | {$DEFINE THANY_CPPB_5_UP} 242 | {$ENDIF} 243 | 244 | {$IFDEF THANY_CPPB_6} 245 | {$DEFINE THANY_CPPB_3_UP} 246 | {$DEFINE THANY_CPPB_4_UP} 247 | {$DEFINE THANY_CPPB_5_UP} 248 | {$DEFINE THANY_CPPB_6_UP} 249 | {$ENDIF} 250 | 251 | {$IFDEF THANY_CPPB_7} 252 | {$DEFINE THANY_CPPB_3_UP} 253 | {$DEFINE THANY_CPPB_4_UP} 254 | {$DEFINE THANY_CPPB_5_UP} 255 | {$DEFINE THANY_CPPB_6_UP} 256 | {$DEFINE THANY_CPPB_7_UP} 257 | {$ENDIF} 258 | 259 | {$IFDEF THANY_CPPB_9} 260 | {$DEFINE THANY_CPPB_3_UP} 261 | {$DEFINE THANY_CPPB_4_UP} 262 | {$DEFINE THANY_CPPB_5_UP} 263 | {$DEFINE THANY_CPPB_6_UP} 264 | {$DEFINE THANY_CPPB_7_UP} 265 | {$DEFINE THANY_CPPB_9_UP} 266 | {$ENDIF} 267 | 268 | {$IFDEF THANY_CPPB_3_UP} 269 | // C++Builder requires this if you use Delphi components in run-time packages. 270 | {$ObjExportAll On} 271 | {$ENDIF} 272 | 273 | {$IFDEF THANY_COMPILER_7_UP} 274 | {$DEFINE ThemeSupport} 275 | {$ENDIF} 276 | -------------------------------------------------------------------------------- /Packages/11AndAbove/CBuilder/PngComponentsC.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package-Quelltext. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | extern "C" int _libmain(unsigned long reason) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Packages/11AndAbove/CBuilder/PngComponentsC.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/11AndAbove/CBuilder/PngComponentsC.res -------------------------------------------------------------------------------- /Packages/11AndAbove/CBuilder/PngComponentsCBuilder.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {D04BE039-27F4-45BB-BA45-31AE5AEB15A6} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Default.Personality.12 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Packages/11AndAbove/CBuilder/PngComponentsCDesign.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package-Quelltext. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | extern "C" int _libmain(unsigned long reason) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Packages/11AndAbove/CBuilder/PngComponentsCDesign.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/11AndAbove/CBuilder/PngComponentsCDesign.res -------------------------------------------------------------------------------- /Packages/11AndAbove/Delphi/PNGComponentsDelphi.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {9829CB6A-45D8-43A8-AD5F-BEC254921B24} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Default.Personality.12 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | {B3C4180B-520B-41C8-8853-0351F059AA78} 51 | Debug;Release 52 | Win32 53 | True 54 | 55 | 56 | {A567FA24-8D23-4C0B-9AD6-102B2A1F6D0B} 57 | Debug;Release 58 | Win32;Win64 59 | True 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /Packages/11AndAbove/Delphi/PngComponentsD.dpk: -------------------------------------------------------------------------------- 1 | package PngComponentsD; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS OFF} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION ON} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO OFF} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES OFF} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE RELEASE} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$DESCRIPTION 'Png Components for Delphi'} 29 | {$LIBSUFFIX AUTO} 30 | {$RUNONLY} 31 | {$IMPLICITBUILD ON} 32 | 33 | requires 34 | vclactnband, 35 | vcl, 36 | rtl, 37 | vclimg; 38 | 39 | contains 40 | PngSpeedButton in '..\..\..\Source\PngSpeedButton.pas', 41 | PngFunctions in '..\..\..\Source\PngFunctions.pas', 42 | PngImageList in '..\..\..\Source\PngImageList.pas', 43 | PngBitBtn in '..\..\..\Source\PngBitBtn.pas', 44 | PngButtonFunctions in '..\..\..\Source\PngButtonFunctions.pas', 45 | PngCheckListBox in '..\..\..\Source\PngCheckListBox.pas'; 46 | 47 | end. 48 | -------------------------------------------------------------------------------- /Packages/11AndAbove/Delphi/PngComponentsD.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | True 4 | Package 5 | True 6 | Release 7 | DCC32 8 | VCL 9 | PngComponentsD.dpk 10 | Win32 11 | {A567FA24-8D23-4C0B-9AD6-102B2A1F6D0B} 12 | PngComponentsD 13 | 20.3 14 | 3 15 | 16 | 17 | true 18 | 19 | 20 | true 21 | Base 22 | true 23 | 24 | 25 | true 26 | Base 27 | true 28 | 29 | 30 | true 31 | Base 32 | true 33 | 34 | 35 | true 36 | Cfg_1 37 | true 38 | true 39 | 40 | 41 | true 42 | Cfg_1 43 | true 44 | true 45 | 46 | 47 | true 48 | Base 49 | true 50 | 51 | 52 | true 53 | Cfg_2 54 | true 55 | true 56 | 57 | 58 | true 59 | Cfg_2 60 | true 61 | true 62 | 63 | 64 | PngComponentsD 65 | ..\cpp\$(Platform)\$(Config) 66 | All 67 | $(Platform)\$(Config) 68 | 0 69 | C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PngComponents140.bpl 70 | Png Components for Delphi 71 | ..\cpp\$(Platform)\$(Config) 72 | 00400000 73 | false 74 | Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace) 75 | ..\cpp\$(Platform)\$(Config) 76 | x86 77 | 0 78 | false 79 | $(Auto) 80 | true 81 | true 82 | true 83 | CompanyName=;FileDescription=Png Components Runtime;FileVersion=1.2.0.0;InternalName=PngComponents;LegalCopyright=;LegalTrademarks=;OriginalFilename=PngComponents;ProductName=Png Components;ProductVersion=1.2;Comments= 84 | 1031 85 | 2 86 | 87 | 88 | System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 89 | PngComponents_Icon.ico 90 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 91 | 1033 92 | 0 93 | 94 | 95 | System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) 96 | PngComponents_Icon.ico 97 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 98 | 1033 99 | 100 | 101 | RELEASE;$(DCC_Define) 102 | false 103 | 0 104 | 105 | 106 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 107 | 1033 108 | 0 109 | 110 | 111 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 112 | 1033 113 | 114 | 115 | $(Platform)\$(Config) 116 | $(Platform)\$(Config) 117 | 0 118 | DEBUG;$(DCC_Define) 119 | 120 | 121 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 122 | 1033 123 | 0 124 | 125 | 126 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 127 | 1033 128 | 129 | 130 | 131 | MainSource 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | Base 145 | 146 | 147 | Cfg_1 148 | Base 149 | 150 | 151 | Cfg_2 152 | Base 153 | 154 | 155 | 156 | 157 | 158 | Delphi.Personality.12 159 | Package 160 | 161 | 162 | 163 | PngComponentsD.dpk 164 | 165 | 166 | 167 | True 168 | False 169 | 1 170 | 2 171 | 0 172 | 0 173 | False 174 | False 175 | False 176 | False 177 | False 178 | 1031 179 | 1252 180 | 181 | 182 | 183 | Png Components Runtime 184 | 1.2.0.0 185 | PngComponents 186 | 187 | 188 | PngComponents 189 | Png Components 190 | 1 191 | 192 | 193 | 194 | 195 | 196 | False 197 | False 198 | False 199 | False 200 | False 201 | True 202 | True 203 | False 204 | False 205 | False 206 | 207 | 208 | 12 209 | 210 | 211 | 212 | -------------------------------------------------------------------------------- /Packages/11AndAbove/Delphi/PngComponentsD.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/11AndAbove/Delphi/PngComponentsD.res -------------------------------------------------------------------------------- /Packages/11AndAbove/Delphi/PngComponentsDDesign.dpk: -------------------------------------------------------------------------------- 1 | package PngComponentsDDesign; 2 | 3 | {$R *.res} 4 | {$R '..\..\..\Design\PngComponents.dcr'} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO OFF} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS OFF} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION ON} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO OFF} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES OFF} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST OFF} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE RELEASE} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'Png components for Delphi designtime'} 30 | {$LIBSUFFIX AUTO} 31 | {$DESIGNONLY} 32 | {$IMPLICITBUILD ON} 33 | 34 | requires 35 | designide, 36 | PngComponentsD; 37 | 38 | contains 39 | PngComponentsRegister in '..\..\..\Design\PngComponentsRegister.pas', 40 | PngComponentEditors in '..\..\..\Design\PngComponentEditors.pas', 41 | PngImageListEditor in '..\..\..\Design\PngImageListEditor.pas' {PngImageListEditorDlg}; 42 | 43 | end. 44 | -------------------------------------------------------------------------------- /Packages/11AndAbove/Delphi/PngComponentsDDesign.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | True 4 | Package 5 | True 6 | Release 7 | DCC32 8 | VCL 9 | PngComponentsDDesign.dpk 10 | Win32 11 | {B3C4180B-520B-41C8-8853-0351F059AA78} 12 | PngComponentsDDesign 13 | 20.3 14 | 3 15 | 16 | 17 | true 18 | 19 | 20 | true 21 | Base 22 | true 23 | 24 | 25 | true 26 | Base 27 | true 28 | 29 | 30 | true 31 | Base 32 | true 33 | 34 | 35 | true 36 | Cfg_1 37 | true 38 | true 39 | 40 | 41 | true 42 | Base 43 | true 44 | 45 | 46 | true 47 | Cfg_2 48 | true 49 | true 50 | 51 | 52 | PngComponentsDDesign 53 | ..\cpp\$(Platform)\$(Config) 54 | All 55 | $(Platform)\$(Config) 56 | 0 57 | C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PngComponentsDesign140.bpl 58 | Png components for Delphi designtime 59 | ..\cpp\$(Platform)\$(Config) 60 | 00400000 61 | false 62 | System;Xml;Data;Datasnap;Web;Soap;Winapi;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) 63 | ..\cpp\$(Platform)\$(Config) 64 | x86 65 | 0 66 | false 67 | true 68 | $(Auto) 69 | true 70 | true 71 | CompanyName=;FileDescription=Png Components Design Time;FileVersion=1.2.0.0;InternalName=PngComponentsDesign;LegalCopyright=;LegalTrademarks=;OriginalFilename=PngComponentsDesign;ProductName=Png Components;ProductVersion=1.2;Comments= 72 | 1031 73 | 2 74 | 75 | 76 | System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 77 | PngComponents;PngComponentsD;$(DCC_UsePackage) 78 | PngComponentsDesign_Icon.ico 79 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 80 | 1033 81 | 82 | 83 | Debug 84 | System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) 85 | true 86 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 87 | 1033 88 | 89 | 90 | RELEASE;$(DCC_Define) 91 | false 92 | 0 93 | 94 | 95 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 96 | 1033 97 | 0 98 | 99 | 100 | $(Platform)\$(Config) 101 | $(Platform)\$(Config) 102 | 0 103 | DEBUG;$(DCC_Define) 104 | 105 | 106 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 107 | 1033 108 | 0 109 | 110 | 111 | 112 | MainSource 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 |
PngImageListEditorDlg
121 |
122 | 123 | Base 124 | 125 | 126 | Cfg_1 127 | Base 128 | 129 | 130 | Cfg_2 131 | Base 132 | 133 |
134 | 135 | 136 | 137 | Delphi.Personality.12 138 | Package 139 | 140 | 141 | 142 | PngComponentsDDesign.dpk 143 | 144 | 145 | 146 | True 147 | False 148 | 1 149 | 2 150 | 0 151 | 0 152 | False 153 | False 154 | False 155 | False 156 | False 157 | 1031 158 | 1252 159 | 160 | 161 | 162 | Png Components Design Time 163 | 1.2.0.0 164 | PngComponentsDesign 165 | 166 | 167 | PngComponentsDesign 168 | Png Components 169 | 1 170 | 171 | 172 | 173 | 174 | 175 | False 176 | False 177 | False 178 | False 179 | False 180 | True 181 | True 182 | False 183 | False 184 | False 185 | 186 | 187 | 12 188 | 189 | 190 |
191 | -------------------------------------------------------------------------------- /Packages/11AndAbove/Delphi/PngComponentsDDesign.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/11AndAbove/Delphi/PngComponentsDDesign.res -------------------------------------------------------------------------------- /Packages/11AndAbove/Delphi/PngComponentsDesign_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/11AndAbove/Delphi/PngComponentsDesign_Icon.ico -------------------------------------------------------------------------------- /Packages/11AndAbove/Delphi/PngComponents_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/11AndAbove/Delphi/PngComponents_Icon.ico -------------------------------------------------------------------------------- /Packages/Berlin/CBuilder/PngComponentsC.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package-Quelltext. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | extern "C" int _libmain(unsigned long reason) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Packages/Berlin/CBuilder/PngComponentsC.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Berlin/CBuilder/PngComponentsC.res -------------------------------------------------------------------------------- /Packages/Berlin/CBuilder/PngComponentsCBuilder.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {D04BE039-27F4-45BB-BA45-31AE5AEB15A6} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Default.Personality.12 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Packages/Berlin/CBuilder/PngComponentsCDesign.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package-Quelltext. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | extern "C" int _libmain(unsigned long reason) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Packages/Berlin/CBuilder/PngComponentsCDesign.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Berlin/CBuilder/PngComponentsCDesign.res -------------------------------------------------------------------------------- /Packages/Berlin/Delphi/PNGComponentsDelphi.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {9829CB6A-45D8-43A8-AD5F-BEC254921B24} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Default.Personality.12 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | {B3C4180B-520B-41C8-8853-0351F059AA78} 51 | Debug;Release 52 | Win32 53 | True 54 | 55 | 56 | {A567FA24-8D23-4C0B-9AD6-102B2A1F6D0B} 57 | Debug;Release 58 | Win32;Win64 59 | True 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /Packages/Berlin/Delphi/PngComponentsD.dpk: -------------------------------------------------------------------------------- 1 | package PngComponentsD; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS OFF} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION ON} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO OFF} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES OFF} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE RELEASE} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$DESCRIPTION 'Png Components for Delphi'} 29 | {$LIBSUFFIX '240'} 30 | {$RUNONLY} 31 | {$IMPLICITBUILD ON} 32 | 33 | requires 34 | vclactnband, 35 | vcl, 36 | rtl, 37 | vclimg; 38 | 39 | contains 40 | PngSpeedButton in '..\..\..\Source\PngSpeedButton.pas', 41 | PngFunctions in '..\..\..\Source\PngFunctions.pas', 42 | PngImageList in '..\..\..\Source\PngImageList.pas', 43 | PngBitBtn in '..\..\..\Source\PngBitBtn.pas', 44 | PngButtonFunctions in '..\..\..\Source\PngButtonFunctions.pas', 45 | PngCheckListBox in '..\..\..\Source\PngCheckListBox.pas'; 46 | 47 | end. 48 | -------------------------------------------------------------------------------- /Packages/Berlin/Delphi/PngComponentsD.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Berlin/Delphi/PngComponentsD.res -------------------------------------------------------------------------------- /Packages/Berlin/Delphi/PngComponentsDDesign.dpk: -------------------------------------------------------------------------------- 1 | package PngComponentsDDesign; 2 | 3 | {$R *.res} 4 | {$R '..\..\..\Design\PngComponents.dcr'} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO OFF} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS OFF} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION ON} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO OFF} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES OFF} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST OFF} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE RELEASE} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'Png components for Delphi designtime'} 30 | {$LIBSUFFIX '240'} 31 | {$DESIGNONLY} 32 | {$IMPLICITBUILD ON} 33 | 34 | requires 35 | designide, 36 | PngComponentsD; 37 | 38 | contains 39 | PngComponentsRegister in '..\..\..\Design\PngComponentsRegister.pas', 40 | PngComponentEditors in '..\..\..\Design\PngComponentEditors.pas', 41 | PngImageListEditor in '..\..\..\Design\PngImageListEditor.pas' {PngImageListEditorDlg}; 42 | 43 | end. 44 | -------------------------------------------------------------------------------- /Packages/Berlin/Delphi/PngComponentsDDesign.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Berlin/Delphi/PngComponentsDDesign.res -------------------------------------------------------------------------------- /Packages/Berlin/Delphi/PngComponentsDesign_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Berlin/Delphi/PngComponentsDesign_Icon.ico -------------------------------------------------------------------------------- /Packages/Berlin/Delphi/PngComponents_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Berlin/Delphi/PngComponents_Icon.ico -------------------------------------------------------------------------------- /Packages/Rio/CBuilder/PngComponentsC.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package-Quelltext. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | extern "C" int _libmain(unsigned long reason) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Packages/Rio/CBuilder/PngComponentsC.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Rio/CBuilder/PngComponentsC.res -------------------------------------------------------------------------------- /Packages/Rio/CBuilder/PngComponentsCBuilder.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {D04BE039-27F4-45BB-BA45-31AE5AEB15A6} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Default.Personality.12 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Packages/Rio/CBuilder/PngComponentsCDesign.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package-Quelltext. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | extern "C" int _libmain(unsigned long reason) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Packages/Rio/CBuilder/PngComponentsCDesign.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Rio/CBuilder/PngComponentsCDesign.res -------------------------------------------------------------------------------- /Packages/Rio/Delphi/PNGComponentsDelphi.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {9829CB6A-45D8-43A8-AD5F-BEC254921B24} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Default.Personality.12 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | {B3C4180B-520B-41C8-8853-0351F059AA78} 51 | Debug;Release 52 | Win32 53 | True 54 | 55 | 56 | {A567FA24-8D23-4C0B-9AD6-102B2A1F6D0B} 57 | Debug;Release 58 | Win32;Win64 59 | True 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /Packages/Rio/Delphi/PngComponentsD.dpk: -------------------------------------------------------------------------------- 1 | package PngComponentsD; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS OFF} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION ON} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO OFF} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES OFF} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE RELEASE} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$DESCRIPTION 'Png Components for Delphi'} 29 | {$LIBSUFFIX '260'} 30 | {$RUNONLY} 31 | {$IMPLICITBUILD ON} 32 | 33 | requires 34 | vclactnband, 35 | vcl, 36 | rtl, 37 | vclimg; 38 | 39 | contains 40 | PngSpeedButton in '..\..\..\Source\PngSpeedButton.pas', 41 | PngFunctions in '..\..\..\Source\PngFunctions.pas', 42 | PngImageList in '..\..\..\Source\PngImageList.pas', 43 | PngBitBtn in '..\..\..\Source\PngBitBtn.pas', 44 | PngButtonFunctions in '..\..\..\Source\PngButtonFunctions.pas', 45 | PngCheckListBox in '..\..\..\Source\PngCheckListBox.pas'; 46 | 47 | end. 48 | -------------------------------------------------------------------------------- /Packages/Rio/Delphi/PngComponentsD.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Rio/Delphi/PngComponentsD.res -------------------------------------------------------------------------------- /Packages/Rio/Delphi/PngComponentsDDesign.dpk: -------------------------------------------------------------------------------- 1 | package PngComponentsDDesign; 2 | 3 | {$R *.res} 4 | {$R '..\..\..\Design\PngComponents.dcr'} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO OFF} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS OFF} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION ON} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO OFF} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES OFF} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST OFF} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE RELEASE} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'Png components for Delphi designtime'} 30 | {$LIBSUFFIX '260'} 31 | {$DESIGNONLY} 32 | {$IMPLICITBUILD ON} 33 | 34 | requires 35 | designide, 36 | PngComponentsD; 37 | 38 | contains 39 | PngComponentsRegister in '..\..\..\Design\PngComponentsRegister.pas', 40 | PngComponentEditors in '..\..\..\Design\PngComponentEditors.pas', 41 | PngImageListEditor in '..\..\..\Design\PngImageListEditor.pas' {PngImageListEditorDlg}; 42 | 43 | end. 44 | -------------------------------------------------------------------------------- /Packages/Rio/Delphi/PngComponentsDDesign.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | True 4 | Package 5 | True 6 | Release 7 | DCC32 8 | VCL 9 | PngComponentsDDesign.dpk 10 | Win32 11 | {B3C4180B-520B-41C8-8853-0351F059AA78} 12 | 18.8 13 | 1 14 | 15 | 16 | true 17 | 18 | 19 | true 20 | Base 21 | true 22 | 23 | 24 | true 25 | Base 26 | true 27 | 28 | 29 | true 30 | Cfg_1 31 | true 32 | true 33 | 34 | 35 | true 36 | Base 37 | true 38 | 39 | 40 | true 41 | Cfg_2 42 | true 43 | true 44 | 45 | 46 | PngComponentsDDesign 47 | All 48 | $(Platform)\$(Config) 49 | 0 50 | C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PngComponentsDesign140.bpl 51 | Png components for Delphi designtime 52 | 00400000 53 | false 54 | System;Xml;Data;Datasnap;Web;Soap;Winapi;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) 55 | x86 56 | 0 57 | false 58 | true 59 | 260 60 | true 61 | true 62 | CompanyName=;FileDescription=Png Components Design Time;FileVersion=1.2.0.0;InternalName=PngComponentsDesign;LegalCopyright=;LegalTrademarks=;OriginalFilename=PngComponentsDesign;ProductName=Png Components;ProductVersion=1.2;Comments= 63 | 1031 64 | 2 65 | 66 | 67 | System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 68 | PngComponents;PngComponentsD;$(DCC_UsePackage) 69 | PngComponentsDesign_Icon.ico 70 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 71 | 1033 72 | 73 | 74 | RELEASE;$(DCC_Define) 75 | false 76 | 0 77 | 78 | 79 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 80 | 1033 81 | 0 82 | 83 | 84 | $(Platform)\$(Config) 85 | $(Platform)\$(Config) 86 | 0 87 | DEBUG;$(DCC_Define) 88 | 89 | 90 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 91 | 1033 92 | 0 93 | 94 | 95 | 96 | MainSource 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 |
PngImageListEditorDlg
105 |
106 | 107 | Base 108 | 109 | 110 | Cfg_1 111 | Base 112 | 113 | 114 | Cfg_2 115 | Base 116 | 117 |
118 | 119 | 120 | 121 | Delphi.Personality.12 122 | Package 123 | 124 | 125 | 126 | PngComponentsDDesign.dpk 127 | 128 | 129 | 130 | True 131 | False 132 | 1 133 | 2 134 | 0 135 | 0 136 | False 137 | False 138 | False 139 | False 140 | False 141 | 1031 142 | 1252 143 | 144 | 145 | 146 | Png Components Design Time 147 | 1.2.0.0 148 | PngComponentsDesign 149 | 150 | 151 | PngComponentsDesign 152 | Png Components 153 | 1 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | PngComponentsDDesign.bpl 162 | true 163 | 164 | 165 | 166 | 167 | 0 168 | 169 | 170 | 171 | 172 | 0 173 | 174 | 175 | 176 | 177 | 0 178 | 179 | 180 | 181 | 182 | 0 183 | .dll;.bpl 184 | 185 | 186 | 187 | 188 | 0 189 | .bpl 190 | 191 | 192 | 193 | 194 | 0 195 | 196 | 197 | 198 | 199 | 0 200 | 201 | 202 | 203 | 204 | 1 205 | 206 | 207 | 208 | 209 | Assets 210 | 1 211 | 212 | 213 | 214 | 215 | Assets 216 | 1 217 | 218 | 219 | 220 | 221 | 222 | False 223 | False 224 | False 225 | False 226 | False 227 | True 228 | False 229 | False 230 | False 231 | False 232 | 233 | 234 | 12 235 | 236 | 237 |
238 | -------------------------------------------------------------------------------- /Packages/Rio/Delphi/PngComponentsDDesign.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Rio/Delphi/PngComponentsDDesign.res -------------------------------------------------------------------------------- /Packages/Rio/Delphi/PngComponentsDesign_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Rio/Delphi/PngComponentsDesign_Icon.ico -------------------------------------------------------------------------------- /Packages/Rio/Delphi/PngComponents_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Rio/Delphi/PngComponents_Icon.ico -------------------------------------------------------------------------------- /Packages/Sydney/CBuilder/PngComponentsC.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package-Quelltext. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | extern "C" int _libmain(unsigned long reason) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Packages/Sydney/CBuilder/PngComponentsC.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Sydney/CBuilder/PngComponentsC.res -------------------------------------------------------------------------------- /Packages/Sydney/CBuilder/PngComponentsCBuilder.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {D04BE039-27F4-45BB-BA45-31AE5AEB15A6} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Default.Personality.12 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Packages/Sydney/CBuilder/PngComponentsCDesign.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package-Quelltext. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | extern "C" int _libmain(unsigned long reason) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Packages/Sydney/CBuilder/PngComponentsCDesign.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Sydney/CBuilder/PngComponentsCDesign.res -------------------------------------------------------------------------------- /Packages/Sydney/Delphi/PNGComponentsDelphi.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {9829CB6A-45D8-43A8-AD5F-BEC254921B24} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Default.Personality.12 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | {A567FA24-8D23-4C0B-9AD6-102B2A1F6D0B} 51 | Debug;Release 52 | Win32;Win64 53 | True 54 | 55 | 56 | {B3C4180B-520B-41C8-8853-0351F059AA78} 57 | Debug;Release 58 | Win32 59 | True 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /Packages/Sydney/Delphi/PngComponentsD.dpk: -------------------------------------------------------------------------------- 1 | package PngComponentsD; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS OFF} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION ON} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO OFF} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES OFF} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE RELEASE} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$DESCRIPTION 'Png Components for Delphi'} 29 | {$LIBSUFFIX '270'} 30 | {$RUNONLY} 31 | {$IMPLICITBUILD ON} 32 | 33 | requires 34 | vclactnband, 35 | vcl, 36 | rtl, 37 | vclimg; 38 | 39 | contains 40 | PngSpeedButton in '..\..\..\Source\PngSpeedButton.pas', 41 | PngFunctions in '..\..\..\Source\PngFunctions.pas', 42 | PngImageList in '..\..\..\Source\PngImageList.pas', 43 | PngBitBtn in '..\..\..\Source\PngBitBtn.pas', 44 | PngButtonFunctions in '..\..\..\Source\PngButtonFunctions.pas', 45 | PngCheckListBox in '..\..\..\Source\PngCheckListBox.pas'; 46 | 47 | end. 48 | -------------------------------------------------------------------------------- /Packages/Sydney/Delphi/PngComponentsD.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | True 4 | Package 5 | True 6 | Release 7 | DCC32 8 | VCL 9 | PngComponentsD.dpk 10 | Win32 11 | {A567FA24-8D23-4C0B-9AD6-102B2A1F6D0B} 12 | 19.1 13 | 3 14 | 15 | 16 | true 17 | 18 | 19 | true 20 | Base 21 | true 22 | 23 | 24 | true 25 | Base 26 | true 27 | 28 | 29 | true 30 | Base 31 | true 32 | 33 | 34 | true 35 | Cfg_1 36 | true 37 | true 38 | 39 | 40 | true 41 | Cfg_1 42 | true 43 | true 44 | 45 | 46 | true 47 | Base 48 | true 49 | 50 | 51 | true 52 | Cfg_2 53 | true 54 | true 55 | 56 | 57 | true 58 | Cfg_2 59 | true 60 | true 61 | 62 | 63 | PngComponentsD 64 | ..\cpp\$(Platform)\$(Config) 65 | All 66 | $(Platform)\$(Config) 67 | 0 68 | C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PngComponents140.bpl 69 | Png Components for Delphi 70 | ..\cpp\$(Platform)\$(Config) 71 | 00400000 72 | false 73 | Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace) 74 | ..\cpp\$(Platform)\$(Config) 75 | x86 76 | 0 77 | false 78 | 270 79 | true 80 | true 81 | true 82 | CompanyName=;FileDescription=Png Components Runtime;FileVersion=1.2.0.0;InternalName=PngComponents;LegalCopyright=;LegalTrademarks=;OriginalFilename=PngComponents;ProductName=Png Components;ProductVersion=1.2;Comments= 83 | 1031 84 | 2 85 | 86 | 87 | System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 88 | PngComponents_Icon.ico 89 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 90 | 1033 91 | 0 92 | 93 | 94 | System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) 95 | PngComponents_Icon.ico 96 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 97 | 1033 98 | 99 | 100 | RELEASE;$(DCC_Define) 101 | false 102 | 0 103 | 104 | 105 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 106 | 1033 107 | 0 108 | 109 | 110 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 111 | 1033 112 | 113 | 114 | $(Platform)\$(Config) 115 | $(Platform)\$(Config) 116 | 0 117 | DEBUG;$(DCC_Define) 118 | 119 | 120 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 121 | 1033 122 | 0 123 | 124 | 125 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 126 | 1033 127 | 128 | 129 | 130 | MainSource 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | Base 144 | 145 | 146 | Cfg_1 147 | Base 148 | 149 | 150 | Cfg_2 151 | Base 152 | 153 | 154 | 155 | 156 | 157 | Delphi.Personality.12 158 | Package 159 | 160 | 161 | 162 | PngComponentsD.dpk 163 | 164 | 165 | 166 | True 167 | False 168 | 1 169 | 2 170 | 0 171 | 0 172 | False 173 | False 174 | False 175 | False 176 | False 177 | 1031 178 | 1252 179 | 180 | 181 | 182 | Png Components Runtime 183 | 1.2.0.0 184 | PngComponents 185 | 186 | 187 | PngComponents 188 | Png Components 189 | 1 190 | 191 | 192 | 193 | 194 | 195 | False 196 | False 197 | False 198 | False 199 | True 200 | True 201 | False 202 | False 203 | 204 | 205 | 12 206 | 207 | 208 | 209 | -------------------------------------------------------------------------------- /Packages/Sydney/Delphi/PngComponentsD.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Sydney/Delphi/PngComponentsD.res -------------------------------------------------------------------------------- /Packages/Sydney/Delphi/PngComponentsDDesign.dpk: -------------------------------------------------------------------------------- 1 | package PngComponentsDDesign; 2 | 3 | {$R *.res} 4 | {$R '..\..\..\Design\PngComponents.dcr'} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO OFF} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS OFF} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION ON} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO OFF} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES OFF} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST OFF} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE RELEASE} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'Png components for Delphi designtime'} 30 | {$LIBSUFFIX '270'} 31 | {$DESIGNONLY} 32 | {$IMPLICITBUILD ON} 33 | 34 | requires 35 | designide, 36 | PngComponentsD; 37 | 38 | contains 39 | PngComponentsRegister in '..\..\..\Design\PngComponentsRegister.pas', 40 | PngComponentEditors in '..\..\..\Design\PngComponentEditors.pas', 41 | PngImageListEditor in '..\..\..\Design\PngImageListEditor.pas' {PngImageListEditorDlg}; 42 | 43 | end. 44 | -------------------------------------------------------------------------------- /Packages/Sydney/Delphi/PngComponentsDDesign.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | True 4 | Package 5 | True 6 | Release 7 | DCC32 8 | VCL 9 | PngComponentsDDesign.dpk 10 | Win32 11 | {B3C4180B-520B-41C8-8853-0351F059AA78} 12 | 19.1 13 | 1 14 | 15 | 16 | true 17 | 18 | 19 | true 20 | Base 21 | true 22 | 23 | 24 | true 25 | Base 26 | true 27 | 28 | 29 | true 30 | Cfg_1 31 | true 32 | true 33 | 34 | 35 | true 36 | Base 37 | true 38 | 39 | 40 | true 41 | Cfg_2 42 | true 43 | true 44 | 45 | 46 | PngComponentsDDesign 47 | ..\cpp\$(Platform)\$(Config) 48 | All 49 | $(Platform)\$(Config) 50 | 0 51 | C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PngComponentsDesign140.bpl 52 | Png components for Delphi designtime 53 | ..\cpp\$(Platform)\$(Config) 54 | 00400000 55 | false 56 | System;Xml;Data;Datasnap;Web;Soap;Winapi;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) 57 | ..\cpp\$(Platform)\$(Config) 58 | x86 59 | 0 60 | false 61 | true 62 | 270 63 | true 64 | true 65 | CompanyName=;FileDescription=Png Components Design Time;FileVersion=1.2.0.0;InternalName=PngComponentsDesign;LegalCopyright=;LegalTrademarks=;OriginalFilename=PngComponentsDesign;ProductName=Png Components;ProductVersion=1.2;Comments= 66 | 1031 67 | 2 68 | 69 | 70 | System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 71 | PngComponents;PngComponentsD;$(DCC_UsePackage) 72 | PngComponentsDesign_Icon.ico 73 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 74 | 1033 75 | 76 | 77 | RELEASE;$(DCC_Define) 78 | false 79 | 0 80 | 81 | 82 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 83 | 1033 84 | 0 85 | 86 | 87 | $(Platform)\$(Config) 88 | $(Platform)\$(Config) 89 | 0 90 | DEBUG;$(DCC_Define) 91 | 92 | 93 | CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) 94 | 1033 95 | 0 96 | 97 | 98 | 99 | MainSource 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 |
PngImageListEditorDlg
108 |
109 | 110 | Base 111 | 112 | 113 | Cfg_1 114 | Base 115 | 116 | 117 | Cfg_2 118 | Base 119 | 120 |
121 | 122 | 123 | 124 | Delphi.Personality.12 125 | Package 126 | 127 | 128 | 129 | PngComponentsDDesign.dpk 130 | 131 | 132 | 133 | True 134 | False 135 | 1 136 | 2 137 | 0 138 | 0 139 | False 140 | False 141 | False 142 | False 143 | False 144 | 1031 145 | 1252 146 | 147 | 148 | 149 | Png Components Design Time 150 | 1.2.0.0 151 | PngComponentsDesign 152 | 153 | 154 | PngComponentsDesign 155 | Png Components 156 | 1 157 | 158 | 159 | 160 | 161 | 162 | False 163 | False 164 | False 165 | False 166 | True 167 | False 168 | False 169 | False 170 | 171 | 172 | 12 173 | 174 | 175 |
176 | -------------------------------------------------------------------------------- /Packages/Sydney/Delphi/PngComponentsDDesign.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Sydney/Delphi/PngComponentsDDesign.res -------------------------------------------------------------------------------- /Packages/Sydney/Delphi/PngComponentsDesign_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Sydney/Delphi/PngComponentsDesign_Icon.ico -------------------------------------------------------------------------------- /Packages/Sydney/Delphi/PngComponents_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Sydney/Delphi/PngComponents_Icon.ico -------------------------------------------------------------------------------- /Packages/Tokyo/CBuilder/PngComponentsC.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package-Quelltext. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | extern "C" int _libmain(unsigned long reason) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Packages/Tokyo/CBuilder/PngComponentsC.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Tokyo/CBuilder/PngComponentsC.res -------------------------------------------------------------------------------- /Packages/Tokyo/CBuilder/PngComponentsCBuilder.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {D04BE039-27F4-45BB-BA45-31AE5AEB15A6} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Default.Personality.12 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Packages/Tokyo/CBuilder/PngComponentsCDesign.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package-Quelltext. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | extern "C" int _libmain(unsigned long reason) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Packages/Tokyo/CBuilder/PngComponentsCDesign.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Tokyo/CBuilder/PngComponentsCDesign.res -------------------------------------------------------------------------------- /Packages/Tokyo/Delphi/PNGComponentsDelphi.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {9829CB6A-45D8-43A8-AD5F-BEC254921B24} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Default.Personality.12 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | {A567FA24-8D23-4C0B-9AD6-102B2A1F6D0B} 51 | Debug;Release 52 | Win32;Win64 53 | True 54 | 55 | 56 | {B3C4180B-520B-41C8-8853-0351F059AA78} 57 | Debug;Release 58 | Win32 59 | True 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /Packages/Tokyo/Delphi/PngComponentsD.dpk: -------------------------------------------------------------------------------- 1 | package PngComponentsD; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS OFF} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION ON} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO OFF} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES OFF} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE RELEASE} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$DESCRIPTION 'Png Components for Delphi'} 29 | {$LIBSUFFIX '250'} 30 | {$RUNONLY} 31 | {$IMPLICITBUILD ON} 32 | 33 | requires 34 | vclactnband, 35 | vcl, 36 | rtl, 37 | vclimg; 38 | 39 | contains 40 | PngSpeedButton in '..\..\..\Source\PngSpeedButton.pas', 41 | PngFunctions in '..\..\..\Source\PngFunctions.pas', 42 | PngImageList in '..\..\..\Source\PngImageList.pas', 43 | PngBitBtn in '..\..\..\Source\PngBitBtn.pas', 44 | PngButtonFunctions in '..\..\..\Source\PngButtonFunctions.pas', 45 | PngCheckListBox in '..\..\..\Source\PngCheckListBox.pas'; 46 | 47 | end. 48 | -------------------------------------------------------------------------------- /Packages/Tokyo/Delphi/PngComponentsD.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Tokyo/Delphi/PngComponentsD.res -------------------------------------------------------------------------------- /Packages/Tokyo/Delphi/PngComponentsDDesign.dpk: -------------------------------------------------------------------------------- 1 | package PngComponentsDDesign; 2 | 3 | {$R *.res} 4 | {$R '..\..\..\Design\PngComponents.dcr'} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO OFF} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS OFF} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION ON} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO OFF} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES OFF} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST OFF} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE RELEASE} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'Png components for Delphi designtime'} 30 | {$LIBSUFFIX '250'} 31 | {$DESIGNONLY} 32 | {$IMPLICITBUILD ON} 33 | 34 | requires 35 | designide, 36 | PngComponentsD; 37 | 38 | contains 39 | PngComponentsRegister in '..\..\..\Design\PngComponentsRegister.pas', 40 | PngComponentEditors in '..\..\..\Design\PngComponentEditors.pas', 41 | PngImageListEditor in '..\..\..\Design\PngImageListEditor.pas' {PngImageListEditorDlg}; 42 | 43 | end. 44 | -------------------------------------------------------------------------------- /Packages/Tokyo/Delphi/PngComponentsDDesign.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Tokyo/Delphi/PngComponentsDDesign.res -------------------------------------------------------------------------------- /Packages/Tokyo/Delphi/PngComponentsDesign_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Tokyo/Delphi/PngComponentsDesign_Icon.ico -------------------------------------------------------------------------------- /Packages/Tokyo/Delphi/PngComponents_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Packages/Tokyo/Delphi/PngComponents_Icon.ico -------------------------------------------------------------------------------- /PngObject/obj/adler32.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/PngObject/obj/adler32.obj -------------------------------------------------------------------------------- /PngObject/obj/compress.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/PngObject/obj/compress.obj -------------------------------------------------------------------------------- /PngObject/obj/deflate.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/PngObject/obj/deflate.obj -------------------------------------------------------------------------------- /PngObject/obj/infback.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/PngObject/obj/infback.obj -------------------------------------------------------------------------------- /PngObject/obj/infblock.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/PngObject/obj/infblock.obj -------------------------------------------------------------------------------- /PngObject/obj/infcodes.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/PngObject/obj/infcodes.obj -------------------------------------------------------------------------------- /PngObject/obj/inffast.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/PngObject/obj/inffast.obj -------------------------------------------------------------------------------- /PngObject/obj/inflate.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/PngObject/obj/inflate.obj -------------------------------------------------------------------------------- /PngObject/obj/inftrees.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/PngObject/obj/inftrees.obj -------------------------------------------------------------------------------- /PngObject/obj/infutil.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/PngObject/obj/infutil.obj -------------------------------------------------------------------------------- /PngObject/obj/trees.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/PngObject/obj/trees.obj -------------------------------------------------------------------------------- /PngObject/pngimage.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/PngObject/pngimage.pas -------------------------------------------------------------------------------- /PngObject/pnglang.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/PngObject/pnglang.pas -------------------------------------------------------------------------------- /PngObject/pngzlib.pas: -------------------------------------------------------------------------------- 1 | {Portable Network Graphics Delphi ZLIB linking (16 May 2002) } 2 | 3 | {This unit links ZLIB to pngimage unit in order to implement } 4 | {the library. It's now using the new ZLIB version, 1.1.4 } 5 | {Note: The .obj files must be located in the subdirectory \obj} 6 | 7 | { Changed 2004.11.25 by Vladimir Bochkarev: } 8 | { Upgrade to the new ZLIB version, 1.2.1 } 9 | 10 | { Changed 2004.12.03 by Vladimir Bochkarev: } 11 | { Upgrade to the new ZLIB version, 1.2.2 } 12 | 13 | unit pngzlib; 14 | 15 | interface 16 | 17 | type 18 | 19 | TAlloc = function (AppData: Pointer; Items, Size: Integer): Pointer; 20 | TFree = procedure (AppData, Block: Pointer); 21 | 22 | // Internal structure. Ignore. 23 | TZStreamRec = packed record 24 | next_in: PChar; // next input byte 25 | avail_in: Integer; // number of bytes available at next_in 26 | total_in: Integer; // total nb of input bytes read so far 27 | 28 | next_out: PChar; // next output byte should be put here 29 | avail_out: Integer; // remaining free space at next_out 30 | total_out: Integer; // total nb of bytes output so far 31 | 32 | msg: PChar; // last error message, NULL if no error 33 | internal: Pointer; // not visible by applications 34 | 35 | zalloc: TAlloc; // used to allocate the internal state 36 | zfree: TFree; // used to free the internal state 37 | AppData: Pointer; // private data object passed to zalloc and zfree 38 | 39 | data_type: Integer; // best guess about the data type: ascii or binary 40 | adler: Integer; // adler32 value of the uncompressed data 41 | reserved: Integer; // reserved for future use 42 | end; 43 | 44 | function inflateInit_(var strm: TZStreamRec; version: PChar; 45 | recsize: Integer): Integer; forward; 46 | function inflate(var strm: TZStreamRec; flush: Integer): Integer; forward; 47 | function inflateEnd(var strm: TZStreamRec): Integer; forward; 48 | function deflateInit_(var strm: TZStreamRec; level: Integer; version: PChar; 49 | recsize: Integer): Integer; forward; 50 | function deflate(var strm: TZStreamRec; flush: Integer): Integer; forward; 51 | function deflateEnd(var strm: TZStreamRec): Integer; forward; 52 | 53 | const 54 | zlib_version = '1.2.2'; 55 | 56 | function adler32(adler: Integer; buf: PChar; len: Integer): Integer; 57 | 58 | const 59 | Z_NO_FLUSH = 0; 60 | Z_PARTIAL_FLUSH = 1; 61 | Z_SYNC_FLUSH = 2; 62 | Z_FULL_FLUSH = 3; 63 | Z_FINISH = 4; 64 | 65 | Z_OK = 0; 66 | Z_STREAM_END = 1; 67 | Z_NEED_DICT = 2; 68 | Z_ERRNO = (-1); 69 | Z_STREAM_ERROR = (-2); 70 | Z_DATA_ERROR = (-3); 71 | Z_MEM_ERROR = (-4); 72 | Z_BUF_ERROR = (-5); 73 | Z_VERSION_ERROR = (-6); 74 | 75 | Z_NO_COMPRESSION = 0; 76 | Z_BEST_SPEED = 1; 77 | Z_BEST_COMPRESSION = 9; 78 | Z_DEFAULT_COMPRESSION = (-1); 79 | 80 | Z_FILTERED = 1; 81 | Z_HUFFMAN_ONLY = 2; 82 | Z_DEFAULT_STRATEGY = 0; 83 | 84 | Z_BINARY = 0; 85 | Z_ASCII = 1; 86 | Z_UNKNOWN = 2; 87 | 88 | Z_DEFLATED = 8; 89 | 90 | _z_errmsg: array[0..9] of PChar = ( 91 | 'need dictionary', // Z_NEED_DICT (2) 92 | 'stream end', // Z_STREAM_END (1) 93 | '', // Z_OK (0) 94 | 'file error', // Z_ERRNO (-1) 95 | 'stream error', // Z_STREAM_ERROR (-2) 96 | 'data error', // Z_DATA_ERROR (-3) 97 | 'insufficient memory', // Z_MEM_ERROR (-4) 98 | 'buffer error', // Z_BUF_ERROR (-5) 99 | 'incompatible version', // Z_VERSION_ERROR (-6) 100 | '' 101 | ); 102 | 103 | implementation 104 | 105 | {$L obj\adler32.obj} 106 | {$L obj\compress.obj} 107 | {$L obj\deflate.obj} 108 | {$L obj\infback.obj} 109 | {$L obj\inffast.obj} 110 | {$L obj\inflate.obj} 111 | {$L obj\inftrees.obj} 112 | {$L obj\trees.obj} 113 | 114 | function adler32; external; 115 | procedure compressBound; external; 116 | 117 | function zcalloc(AppData: Pointer; Items, Size: Integer): Pointer; 118 | begin 119 | GetMem(Result, Items*Size); 120 | end; 121 | 122 | procedure zcfree(AppData, Block: Pointer); 123 | begin 124 | FreeMem(Block); 125 | end; 126 | 127 | procedure _memset(P: Pointer; B: Byte; count: Integer); cdecl; 128 | begin 129 | FillChar(P^, count, B); 130 | end; 131 | 132 | procedure _memcpy(dest, source: Pointer; count: Integer); cdecl; 133 | begin 134 | Move(source^, dest^, count); 135 | end; 136 | 137 | // inflate decompresses data 138 | function inflateInit_(var strm: TZStreamRec; version: PChar; 139 | recsize: Integer): Integer; external; 140 | function inflate(var strm: TZStreamRec; flush: Integer): Integer; external; 141 | function inflateEnd(var strm: TZStreamRec): Integer; external; 142 | function inflateReset(var strm: TZStreamRec): Integer; external; 143 | // deflate compresses data 144 | function deflateInit_(var strm: TZStreamRec; level: Integer; version: PChar; 145 | recsize: Integer): Integer; external; 146 | function deflate(var strm: TZStreamRec; flush: Integer): Integer; external; 147 | function deflateEnd(var strm: TZStreamRec): Integer; external; 148 | 149 | end. 150 | -------------------------------------------------------------------------------- /Source/PngBitBtn.pas: -------------------------------------------------------------------------------- 1 | unit PngBitBtn; 2 | 3 | interface 4 | 5 | uses 6 | Windows, Messages, Classes, Graphics, Controls, Buttons, pngimage, PngFunctions; 7 | 8 | type 9 | TPngBitBtn = class(TBitBtn) 10 | {$IF RTLVersion >= 24.0 } 11 | strict private 12 | class constructor Create; 13 | class destructor Destroy; 14 | {$IFEND} 15 | private 16 | FPngImage: TPngImage; 17 | FPngOptions: TPngOptions; 18 | FCanvas: TCanvas; 19 | FLastKind: TBitBtnKind; 20 | FImageFromAction: Boolean; 21 | FMouseInControl: Boolean; 22 | IsFocused: Boolean; 23 | function PngImageStored: Boolean; 24 | procedure SetPngImage(const Value: TPngImage); 25 | procedure SetPngOptions(const Value: TPngOptions); 26 | procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM; 27 | procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER; 28 | procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; 29 | protected 30 | procedure ActionChange(Sender: TObject; CheckDefaults: Boolean); override; 31 | procedure SetButtonStyle(ADefault: Boolean); override; 32 | public 33 | constructor Create(AOwner: TComponent); override; 34 | destructor Destroy; override; 35 | published 36 | property PngImage: TPngImage read FPngImage write SetPngImage stored PngImageStored; 37 | property PngOptions: TPngOptions read FPngOptions write SetPngOptions default [pngBlendOnDisabled]; 38 | property Glyph stored False; 39 | property NumGlyphs stored False; 40 | end; 41 | 42 | {$IF RTLVersion >= 24.0 } 43 | TPngBitBtnStyleHook = class(TBitBtnStyleHook) 44 | strict protected 45 | procedure DrawButton(ACanvas: TCanvas; AMouseInControl: Boolean); override; 46 | end; 47 | {$IFEND} 48 | 49 | implementation 50 | 51 | uses 52 | ActnList, Themes, PngButtonFunctions, PngImageList; 53 | 54 | const 55 | WordBreakFlag: array[Boolean] of Integer = (DT_SINGLELINE, DT_WORDBREAK); 56 | 57 | {$IF RTLVersion < 23.0 } 58 | type 59 | TThemeServicesHelper = class helper for TThemeServices 60 | private 61 | function GetEnabled: Boolean; 62 | public 63 | function GetElementContentRect(DC: HDC; Details: TThemedElementDetails; const BoundingRect: TRect; 64 | out ContentRect: TRect): Boolean; overload; 65 | property Enabled: Boolean read GetEnabled; 66 | end; 67 | 68 | function TThemeServicesHelper.GetElementContentRect(DC: HDC; Details: TThemedElementDetails; const BoundingRect: TRect; 69 | out ContentRect: TRect): Boolean; 70 | begin 71 | ContentRect := Self.ContentRect(DC, Details, BoundingRect); 72 | Result := true; 73 | end; 74 | 75 | function TThemeServicesHelper.GetEnabled: Boolean; 76 | begin 77 | Result := ThemesEnabled; 78 | end; 79 | 80 | function StyleServices: TThemeServices; 81 | begin 82 | result := ThemeServices; 83 | end; 84 | {$IFEND} 85 | 86 | { TPngBitBtn } 87 | 88 | {$IF RTLVersion >= 24.0 } 89 | class constructor TPngBitBtn.Create; 90 | begin 91 | TCustomStyleEngine.RegisterStyleHook(TPngBitBtn, TPngBitBtnStyleHook); 92 | end; 93 | 94 | class destructor TPngBitBtn.Destroy; 95 | begin 96 | TCustomStyleEngine.UnRegisterStyleHook(TPngBitBtn, TPngBitBtnStyleHook); 97 | end; 98 | {$IFEND} 99 | 100 | constructor TPngBitBtn.Create(AOwner: TComponent); 101 | begin 102 | inherited Create(AOwner); 103 | FPngImage := TPngImage.Create; 104 | FPngOptions := [pngBlendOnDisabled]; 105 | FCanvas := TCanvas.Create; 106 | FLastKind := bkCustom; 107 | FImageFromAction := False; 108 | end; 109 | 110 | 111 | destructor TPngBitBtn.Destroy; 112 | begin 113 | inherited Destroy; 114 | FPngImage.Free; 115 | FCanvas.Free; 116 | end; 117 | 118 | procedure TPngBitBtn.ActionChange(Sender: TObject; CheckDefaults: Boolean); 119 | begin 120 | inherited ActionChange(Sender, CheckDefaults); 121 | if Sender is TCustomAction then begin 122 | with TCustomAction(Sender) do begin 123 | //Copy image from action's imagelist 124 | if (PngImage.Empty or FImageFromAction) and (ActionList <> nil) and 125 | (ActionList.Images <> nil) and (ImageIndex >= 0) and (ImageIndex < 126 | ActionList.Images.Count) then begin 127 | CopyImageFromImageList(FPngImage, ActionList.Images, ImageIndex); 128 | FImageFromAction := True; 129 | end; 130 | end; 131 | end; 132 | end; 133 | 134 | procedure TPngBitBtn.SetButtonStyle(ADefault: Boolean); 135 | begin 136 | inherited SetButtonStyle(ADefault); 137 | if ADefault <> IsFocused then begin 138 | IsFocused := ADefault; 139 | Refresh; 140 | end; 141 | end; 142 | 143 | function TPngBitBtn.PngImageStored: Boolean; 144 | begin 145 | Result := not FImageFromAction; 146 | end; 147 | 148 | procedure TPngBitBtn.SetPngImage(const Value: TPngImage); 149 | begin 150 | //This is all neccesary, because you can't assign a nil to a TPngImage 151 | if Value = nil then begin 152 | FPngImage.Free; 153 | FPngImage := TPngImage.Create; 154 | end 155 | else begin 156 | FPngImage.Assign(Value); 157 | end; 158 | 159 | //To work around the gamma-problem 160 | with FPngImage do 161 | if not Empty and (Header.ColorType in [COLOR_RGB, COLOR_RGBALPHA, COLOR_PALETTE]) then 162 | Chunks.RemoveChunk(Chunks.ItemFromClass(TChunkgAMA)); 163 | 164 | FImageFromAction := False; 165 | Repaint; 166 | end; 167 | 168 | procedure TPngBitBtn.SetPngOptions(const Value: TPngOptions); 169 | begin 170 | if FPngOptions <> Value then begin 171 | FPngOptions := Value; 172 | Repaint; 173 | end; 174 | end; 175 | 176 | procedure TPngBitBtn.CNDrawItem(var Message: TWMDrawItem); 177 | var 178 | R, PaintRect: TRect; 179 | GlyphPos, TextPos: TPoint; 180 | IsDown, IsDefault: Boolean; 181 | Flags: Cardinal; 182 | Button: TThemedButton; 183 | Details: TThemedElementDetails; 184 | dtFlags: Integer; 185 | begin 186 | dtFlags := DrawTextBiDiModeFlags(0) or WordBreakFlag[WordWrap]; 187 | R := ClientRect; 188 | FCanvas.Handle := Message.DrawItemStruct^.hDC; 189 | FCanvas.Font := Self.Font; 190 | IsDown := Message.DrawItemStruct^.itemState and ODS_SELECTED <> 0; 191 | IsDefault := Message.DrawItemStruct^.itemState and ODS_FOCUS <> 0; 192 | 193 | //Draw the border 194 | if StyleServices.Enabled then begin 195 | //Themed border 196 | if not Enabled then 197 | Button := tbPushButtonDisabled 198 | else if IsDown then 199 | Button := tbPushButtonPressed 200 | else if FMouseInControl then 201 | Button := tbPushButtonHot 202 | else if IsFocused or IsDefault then 203 | Button := tbPushButtonDefaulted 204 | else 205 | Button := tbPushButtonNormal; 206 | 207 | //Paint the background, border, and finally get the inner rect 208 | Details := StyleServices.GetElementDetails(Button); 209 | StyleServices.DrawParentBackground(Handle, Message.DrawItemStruct.hDC, @Details, True); 210 | StyleServices.DrawElement(Message.DrawItemStruct.hDC, Details, Message.DrawItemStruct.rcItem); 211 | StyleServices.GetElementContentRect(FCanvas.Handle, Details, Message.DrawItemStruct.rcItem, R); 212 | end 213 | else begin 214 | //Draw the outer border, when focused 215 | if IsFocused or IsDefault then begin 216 | FCanvas.Pen.Color := clWindowFrame; 217 | FCanvas.Pen.Width := 1; 218 | FCanvas.Brush.Style := bsClear; 219 | FCanvas.Rectangle(R.Left, R.Top, R.Right, R.Bottom); 220 | InflateRect(R, -1, -1); 221 | end; 222 | //Draw the inner border 223 | if IsDown then begin 224 | FCanvas.Pen.Color := clBtnShadow; 225 | FCanvas.Pen.Width := 1; 226 | FCanvas.Brush.Color := clBtnFace; 227 | FCanvas.Rectangle(R.Left, R.Top, R.Right, R.Bottom); 228 | InflateRect(R, -1, -1); 229 | end 230 | else begin 231 | Flags := DFCS_BUTTONPUSH or DFCS_ADJUSTRECT; 232 | if Message.DrawItemStruct.itemState and ODS_DISABLED <> 0 then 233 | Flags := Flags or DFCS_INACTIVE; 234 | DrawFrameControl(Message.DrawItemStruct.hDC, R, DFC_BUTTON, Flags); 235 | end; 236 | //Adjust the rect when focused and/or down 237 | if IsFocused then begin 238 | R := ClientRect; 239 | InflateRect(R, -1, -1); 240 | end; 241 | if IsDown then 242 | OffsetRect(R, 1, 1); 243 | end; 244 | 245 | //Calculate the position of the PNG glyph 246 | CalcButtonLayout(FCanvas, FPngImage, ClientRect, IsDown, False, Caption, 247 | Layout, Margin, Spacing, GlyphPos, TextPos, dtFlags); 248 | 249 | //Draw the image 250 | if (FPngImage <> nil) and (Kind = bkCustom) and not FPngImage.Empty then begin 251 | PaintRect := Bounds(GlyphPos.X, GlyphPos.Y, FPngImage.Width, FPngImage.Height); 252 | if Enabled then 253 | DrawPNG(FPngImage, FCanvas, PaintRect, []) 254 | else 255 | DrawPNG(FPngImage, FCanvas, PaintRect, FPngOptions); 256 | end; 257 | 258 | //Draw the text 259 | if Length(Caption) > 0 then begin 260 | PaintRect := Rect(TextPos.X, TextPos.Y, Width, Height); 261 | FCanvas.Brush.Style := bsClear; 262 | //grayed Caption when disabled 263 | if not Enabled then begin 264 | OffsetRect(PaintRect, 1, 1); 265 | FCanvas.Font.Color := clBtnHighlight; 266 | DrawText(FCanvas.Handle, PChar(Caption), -1, PaintRect, DT_TOP or DT_LEFT or dtFlags); 267 | OffsetRect(PaintRect, -1, -1); 268 | FCanvas.Font.Color := clBtnShadow; 269 | end; 270 | 271 | DrawText(FCanvas.Handle, PChar(Caption), -1, PaintRect, DT_TOP or DT_LEFT or dtFlags); 272 | end; 273 | 274 | //Draw the focus rectangle 275 | if IsFocused and IsDefault then begin 276 | if not StyleServices.Enabled then begin 277 | R := ClientRect; 278 | InflateRect(R, -3, -3); 279 | end; 280 | FCanvas.Pen.Color := clWindowFrame; 281 | FCanvas.Brush.Color := clBtnFace; 282 | DrawFocusRect(FCanvas.Handle, R); 283 | end; 284 | 285 | FLastKind := Kind; 286 | FCanvas.Handle := 0; 287 | end; 288 | 289 | procedure TPngBitBtn.CMMouseEnter(var Message: TMessage); 290 | begin 291 | inherited; 292 | if StyleServices.Enabled and not FMouseInControl and not (csDesigning in ComponentState) then begin 293 | FMouseInControl := True; 294 | Repaint; 295 | end; 296 | end; 297 | 298 | procedure TPngBitBtn.CMMouseLeave(var Message: TMessage); 299 | begin 300 | inherited; 301 | if StyleServices.Enabled and FMouseInControl then begin 302 | FMouseInControl := False; 303 | Repaint; 304 | end; 305 | end; 306 | 307 | { TPngBitBtnStyleHook } 308 | {$IF RTLVersion >= 24.0 } 309 | procedure TPngBitBtnStyleHook.DrawButton(ACanvas: TCanvas; 310 | AMouseInControl: Boolean); 311 | var 312 | Details: TThemedElementDetails; 313 | DrawRect, PaintRect, TextRect: TRect; 314 | State: TButtonState; 315 | btn : TPngBitBtn; 316 | dtFlags: Integer; 317 | GlyphPos, TextPos: TPoint; 318 | 319 | LColor: TColor; 320 | LFormats: TTextFormat; 321 | begin 322 | if not (Control is TPngBitBtn) then 323 | begin 324 | inherited; 325 | Exit; 326 | end; 327 | if FPressed then 328 | Details := StyleServices.GetElementDetails(tbPushButtonPressed) 329 | else if AMouseInControl then 330 | Details := StyleServices.GetElementDetails(tbPushButtonHot) 331 | else if Focused or TPngBitBtn(Control).Default then 332 | Details := StyleServices.GetElementDetails(tbPushButtonDefaulted) 333 | else if Control.Enabled then 334 | Details := StyleServices.GetElementDetails(tbPushButtonNormal) 335 | else 336 | Details := StyleServices.GetElementDetails(tbPushButtonDisabled); 337 | DrawRect := Control.ClientRect; 338 | StyleServices.DrawElement(ACanvas.Handle, Details, DrawRect); 339 | 340 | btn := Control as TPngBitBtn; 341 | dtFlags := btn.DrawTextBiDiModeFlags(0) or WordBreakFlag[btn.WordWrap]; 342 | ACanvas.Font := btn.Font; 343 | if not btn.Enabled then State := bsDisabled 344 | else if FPressed then State := bsDown 345 | else State := bsUp; 346 | 347 | //Calculate the position of the PNG glyph 348 | CalcButtonLayout(ACanvas, btn.FPngImage, btn.ClientRect, FPressed, False, btn.Caption, 349 | btn.Layout, btn.Margin, btn.Spacing, GlyphPos, TextPos, dtFlags); 350 | 351 | //Draw the image 352 | if (btn.FPngImage <> nil) and (btn.Kind = bkCustom) and not btn.FPngImage.Empty then begin 353 | PaintRect := Bounds(GlyphPos.X, GlyphPos.Y, btn.FPngImage.Width, btn.FPngImage.Height); 354 | if btn.Enabled then 355 | DrawPNG(btn.FPngImage, ACanvas, PaintRect, []) 356 | else 357 | DrawPNG(btn.FPngImage, ACanvas, PaintRect, btn.FPngOptions); 358 | end; 359 | 360 | ACanvas.Brush.Style := bsClear; 361 | if (State = bsDisabled) or (not StyleServices.IsSystemStyle and (seFont in btn.StyleElements)) then 362 | begin 363 | if not StyleServices.GetElementColor(Details, ecTextColor, LColor) or (LColor = clNone) then 364 | LColor := ACanvas.Font.Color; 365 | end 366 | else 367 | LColor := ACanvas.Font.Color; 368 | 369 | LFormats := TTextFormatFlags(DT_NOCLIP or DT_CENTER or DT_VCENTER or dtFlags); 370 | 371 | if Length(btn.Caption) > 0 then begin 372 | TextRect := Rect(0, 0, btn.ClientRect.Right - btn.ClientRect.Left, 0); 373 | DrawText(ACanvas.Handle, PChar(btn.Caption), Length(btn.Caption), TextRect, DT_CALCRECT or dtFlags); 374 | end 375 | else begin 376 | TextRect := Rect(0, 0, 0, 0); 377 | end; 378 | 379 | OffsetRect(TextRect, TextPos.X + btn.ClientRect.Left, TextPos.Y + btn.ClientRect.Top); 380 | StyleServices.DrawText(ACanvas.Handle, Details, btn.Caption, TextRect, LFormats, LColor); 381 | 382 | end; 383 | {$IFEND} 384 | 385 | end. 386 | -------------------------------------------------------------------------------- /Source/PngButtonFunctions.pas: -------------------------------------------------------------------------------- 1 | unit PngButtonFunctions; 2 | 3 | interface 4 | 5 | uses 6 | Windows, Buttons, Graphics, pngimage; 7 | 8 | {$IF RTLVersion < 20.0 } 9 | type 10 | TPngImage = TPNGObject; 11 | {$IFEND} 12 | 13 | procedure CalcButtonLayout(Canvas: TCanvas; PngImage: TPngImage; const Client: 14 | TRect; Pressed, Down: Boolean; const Caption: string; Layout: TButtonLayout; 15 | Margin, Spacing: Integer; var GlyphPos, TextPos: TPoint; BiDiFlags: LongInt); 16 | 17 | implementation 18 | 19 | uses 20 | System.Types, System.Classes; 21 | 22 | procedure CalcButtonLayout(Canvas: TCanvas; PngImage: TPngImage; const Client: 23 | TRect; Pressed, Down: Boolean; const Caption: string; Layout: TButtonLayout; 24 | Margin, Spacing: Integer; var GlyphPos, TextPos: TPoint; BiDiFlags: LongInt); 25 | var 26 | ClientSize, GlyphSize, TextSize, TotalSize: TPoint; 27 | TextBounds: TRect; 28 | begin 29 | if (BiDiFlags and DT_RIGHT) = DT_RIGHT then begin 30 | if Layout = blGlyphLeft then 31 | Layout := blGlyphRight 32 | else if Layout = blGlyphRight then 33 | Layout := blGlyphLeft; 34 | end; 35 | 36 | //Calculate the item sizes 37 | ClientSize := Point(Client.Right - Client.Left, Client.Bottom - Client.Top); 38 | 39 | if PngImage <> nil then 40 | GlyphSize := Point(PngImage.Width, PngImage.Height) 41 | else 42 | GlyphSize := Point(0, 0); 43 | 44 | if Length(Caption) > 0 then begin 45 | TextBounds := Rect(0, 0, Client.Right - Client.Left, 0); 46 | DrawText(Canvas.Handle, PChar(Caption), Length(Caption), TextBounds, 47 | DT_CALCRECT or BiDiFlags); 48 | TextSize := Point(TextBounds.Right - TextBounds.Left, TextBounds.Bottom - 49 | TextBounds.Top); 50 | end 51 | else begin 52 | TextBounds := Rect(0, 0, 0, 0); 53 | TextSize := Point(0, 0); 54 | end; 55 | 56 | //If the layout has the glyph on the right or the left, then both the 57 | //text and the glyph are centered vertically. If the glyph is on the top 58 | //or the bottom, then both the text and the glyph are centered horizontally. 59 | if Layout in [blGlyphLeft, blGlyphRight] then 60 | GlyphPos.Y := (ClientSize.Y - GlyphSize.Y + 1) div 2 61 | else 62 | GlyphPos.X := (ClientSize.X - GlyphSize.X + 1) div 2; 63 | 64 | //If there is no text or no bitmap, then Spacing is irrelevant 65 | if (TextSize.X = 0) or (GlyphSize.X = 0) then 66 | Spacing := 0; 67 | 68 | //Adjust Margin and Spacing 69 | if Margin = -1 then begin 70 | if Spacing = -1 then begin 71 | TotalSize := Point(GlyphSize.X + TextSize.X, GlyphSize.Y + TextSize.Y); 72 | if Layout in [blGlyphLeft, blGlyphRight] then 73 | Margin := (ClientSize.X - TotalSize.X) div 3 74 | else 75 | Margin := (ClientSize.Y - TotalSize.Y) div 3; 76 | end 77 | else begin 78 | TotalSize := Point(GlyphSize.X + Spacing + TextSize.X, GlyphSize.Y + 79 | Spacing + TextSize.Y); 80 | if Layout in [blGlyphLeft, blGlyphRight] then 81 | Margin := (ClientSize.X - TotalSize.X) div 2 82 | else 83 | Margin := (ClientSize.Y - TotalSize.Y) div 2; 84 | end 85 | end 86 | else if Spacing = -1 then begin 87 | TotalSize := Point(ClientSize.X - (Margin + GlyphSize.X), ClientSize.Y - 88 | (Margin + GlyphSize.Y)); 89 | end; 90 | 91 | case Layout of 92 | blGlyphLeft: GlyphPos.X := Margin; 93 | blGlyphRight: GlyphPos.X := ClientSize.X - Margin - GlyphSize.X; 94 | blGlyphTop: GlyphPos.Y := Margin; 95 | blGlyphBottom: GlyphPos.Y := ClientSize.Y - Margin - GlyphSize.Y; 96 | end; 97 | 98 | if Layout in [blGlyphLeft, blGlyphRight] then 99 | TextPos.Y := (ClientSize.Y - TextSize.Y) div 2 100 | else 101 | TextPos.X := (ClientSize.X - TextSize.X) div 2; 102 | case Layout of 103 | blGlyphLeft: TextPos.X := GlyphPos.X + GlyphSize.X + Spacing; 104 | blGlyphRight: TextPos.X := GlyphPos.X - Spacing - TextSize.X; 105 | blGlyphTop: TextPos.Y := GlyphPos.Y + GlyphSize.Y + Spacing; 106 | blGlyphBottom: TextPos.Y := GlyphPos.Y - Spacing - TextSize.Y; 107 | end; 108 | 109 | //Fixup the result variables 110 | with GlyphPos do begin 111 | Inc(X, Client.Left + Integer(Pressed or Down)); 112 | Inc(Y, Client.Top + Integer(Pressed or Down)); 113 | end; 114 | with TextPos do begin 115 | Inc(X, Client.Left + Integer(Pressed or Down)); 116 | Inc(Y, Client.Top + Integer(Pressed or Down)); 117 | end; 118 | end; 119 | 120 | end. 121 | -------------------------------------------------------------------------------- /Source/PngCheckListBox.pas: -------------------------------------------------------------------------------- 1 | unit PngCheckListBox; 2 | 3 | interface 4 | 5 | uses 6 | Windows, Classes, CheckLst, pngimage, PngFunctions; 7 | 8 | type 9 | TPngCheckListBox = class(TCheckListBox) 10 | private 11 | FPngUnchecked: TPngImage; 12 | FPngChecked: TPngImage; 13 | FPngOptions: TPngOptions; 14 | FPngGrayed: TPngImage; 15 | procedure SetPngChecked(const Value: TPngImage); 16 | procedure SetPngUnchecked(const Value: TPngImage); 17 | procedure SetPngOptions(const Value: TPngOptions); 18 | procedure SetPngGrayed(const Value: TPngImage); 19 | protected 20 | procedure DrawItem(Index: Integer; ARect: TRect; State: TOwnerDrawState); override; 21 | function GetCheckWidth: Integer; reintroduce; 22 | public 23 | constructor Create(AOwner: TComponent); override; 24 | destructor Destroy; override; 25 | published 26 | property PngChecked: TPngImage read FPngChecked write SetPngChecked; 27 | property PngUnchecked: TPngImage read FPngUnchecked write SetPngUnchecked; 28 | property PngGrayed: TPngImage read FPngGrayed write SetPngGrayed; 29 | property PngOptions: TPngOptions read FPngOptions write SetPngOptions default [pngBlendOnDisabled]; 30 | end; 31 | 32 | implementation 33 | 34 | uses 35 | System.UITypes, System.Math, Vcl.Graphics, Vcl.StdCtrls; 36 | 37 | { TPngCheckListBox } 38 | 39 | constructor TPngCheckListBox.Create(AOwner: TComponent); 40 | begin 41 | inherited Create(AOwner); 42 | FPngChecked := TPngImage.Create; 43 | FPngUnchecked := TPngImage.Create; 44 | FPngGrayed := TPngImage.Create; 45 | end; 46 | 47 | destructor TPngCheckListBox.Destroy; 48 | begin 49 | FPngChecked.Free; 50 | FPngUnchecked.Free; 51 | FPngGrayed.Free; 52 | inherited Destroy; 53 | end; 54 | 55 | procedure TPngCheckListBox.DrawItem(Index: Integer; ARect: TRect; State: 56 | TOwnerDrawState); 57 | 58 | procedure DrawCheck(R: TRect; AState: TCheckBoxState; AEnabled: Boolean); 59 | var 60 | Png: TPngImage; 61 | OldColor: TColor; 62 | begin 63 | //Draws the check image, if it's a PNG, otherwise the inherited would have 64 | //been called 65 | OldColor := Canvas.Brush.Color; 66 | Canvas.Brush.Color := Color; 67 | Canvas.FillRect(R); 68 | Canvas.Brush.Color := OldColor; 69 | case AState of 70 | cbUnchecked: Png := FPngUnchecked; 71 | cbChecked: Png := FPngChecked; 72 | else 73 | Png := FPngGrayed; 74 | end; 75 | DrawPNG(Png, Canvas, Rect(R.Left, R.Top, R.Left + Png.Width, R.Top + 76 | Png.Height), FPngOptions); 77 | end; 78 | 79 | procedure DrawText; 80 | var 81 | Flags: Integer; 82 | Data: string; 83 | begin 84 | //Draws the text for an item 85 | if Assigned(OnDrawItem) then 86 | OnDrawItem(Self, Index, ARect, State) 87 | else begin 88 | Canvas.FillRect(ARect); 89 | if Index < Items.Count then begin 90 | Flags := DrawTextBiDiModeFlags(DT_SINGLELINE or DT_VCENTER or 91 | DT_NOPREFIX); 92 | if not UseRightToLeftAlignment then 93 | Inc(ARect.Left, 2) 94 | else 95 | Dec(ARect.Right, 2); 96 | Data := ''; 97 | if (Style in [lbVirtual, lbVirtualOwnerDraw]) then 98 | Data := DoGetData(Index) 99 | else 100 | Data := Items[Index]; 101 | Windows.DrawText(Canvas.Handle, PChar(Data), Length(Data), ARect, Flags); 102 | end; 103 | end; 104 | end; 105 | 106 | var 107 | R: TRect; 108 | SaveEvent: TDrawItemEvent; 109 | ACheckWidth: Integer; 110 | Enable: Boolean; 111 | begin 112 | if FPngChecked.Empty and FPngUnchecked.Empty and FPngGrayed.Empty then 113 | inherited DrawItem(Index, ARect, State) 114 | else begin 115 | ACheckWidth := GetCheckWidth; 116 | if Index < Items.Count then begin 117 | R := ARect; 118 | Enable := Self.Enabled and ItemEnabled[Index]; 119 | if not Header[Index] then begin 120 | if not UseRightToLeftAlignment then begin 121 | R.Right := ARect.Left; 122 | R.Left := R.Right - ACheckWidth; 123 | end 124 | else begin 125 | R.Left := ARect.Right; 126 | R.Right := R.Left + ACheckWidth; 127 | end; 128 | DrawCheck(R, Self.State[Index], Enable); 129 | end 130 | else begin 131 | Canvas.Font.Color := HeaderColor; 132 | Canvas.Brush.Color := HeaderBackgroundColor; 133 | end; 134 | if not Enable then 135 | Canvas.Font.Color := clGrayText; 136 | end; 137 | 138 | if (Style = lbStandard) and Assigned(OnDrawItem) then begin 139 | //Force lbStandard list to ignore OnDrawItem event. 140 | SaveEvent := OnDrawItem; 141 | OnDrawItem := nil; 142 | try 143 | DrawText; 144 | finally 145 | OnDrawItem := SaveEvent; 146 | end; 147 | end 148 | else 149 | DrawText; 150 | end; 151 | end; 152 | 153 | function TPngCheckListBox.GetCheckWidth: Integer; 154 | begin 155 | //CheckWidth is equal to the widest PNG 156 | if not (FPngChecked.Empty and FPngUnchecked.Empty and FPngGrayed.Empty) then 157 | Result := Max(FPngChecked.Width, Max(FPngUnchecked.Width, FPngGrayed.Width)) 158 | else 159 | Result := inherited GetCheckWidth; 160 | end; 161 | 162 | procedure TPngCheckListBox.SetPngChecked(const Value: TPngImage); 163 | begin 164 | //This is all neccesary, because you can't assign a nil to a TPngImage 165 | if Value = nil then begin 166 | FPngChecked.Free; 167 | FPngChecked := TPngImage.Create; 168 | end 169 | else 170 | FPngChecked.Assign(Value); 171 | Repaint; 172 | end; 173 | 174 | procedure TPngCheckListBox.SetPngUnchecked(const Value: TPngImage); 175 | begin 176 | //This is all neccesary, because you can't assign a nil to a TPngImage 177 | if Value = nil then begin 178 | FPngUnchecked.Free; 179 | FPngUnchecked := TPngImage.Create; 180 | end 181 | else 182 | FPngUnchecked.Assign(Value); 183 | Repaint; 184 | end; 185 | 186 | procedure TPngCheckListBox.SetPngGrayed(const Value: TPngImage); 187 | begin 188 | //This is all neccesary, because you can't assign a nil to a TPngImage 189 | if Value = nil then begin 190 | FPngGrayed.Free; 191 | FPngGrayed := TPngImage.Create; 192 | end 193 | else 194 | FPngGrayed.Assign(Value); 195 | Repaint; 196 | end; 197 | 198 | procedure TPngCheckListBox.SetPngOptions(const Value: TPngOptions); 199 | begin 200 | if FPngOptions <> Value then begin 201 | FPngOptions := Value; 202 | Repaint; 203 | end; 204 | end; 205 | 206 | end. 207 | -------------------------------------------------------------------------------- /Source/PngSpeedButton.pas: -------------------------------------------------------------------------------- 1 | unit PngSpeedButton; 2 | 3 | interface 4 | 5 | uses 6 | Windows, Classes, Buttons, pngimage, PngFunctions; 7 | 8 | type 9 | TPngSpeedButton = class(TSpeedButton) 10 | private 11 | FPngImage: TPngImage; 12 | FPngOptions: TPngOptions; 13 | FImageFromAction: Boolean; 14 | function PngImageStored: Boolean; 15 | procedure SetPngImage(const Value: TPngImage); 16 | procedure SetPngOptions(const Value: TPngOptions); 17 | procedure CreatePngGlyph; 18 | function HasValidPng: Boolean; 19 | protected 20 | procedure ActionChange(Sender: TObject; CheckDefaults: Boolean); override; 21 | procedure Paint; override; 22 | procedure Loaded; override; 23 | public 24 | constructor Create(AOwner: TComponent); override; 25 | destructor Destroy; override; 26 | published 27 | property PngImage: TPngImage read FPngImage write SetPngImage stored PngImageStored; 28 | property PngOptions: TPngOptions read FPngOptions write SetPngOptions default [pngBlendOnDisabled]; 29 | property Glyph stored False; 30 | property NumGlyphs stored False; 31 | end; 32 | 33 | implementation 34 | 35 | uses 36 | Graphics, ActnList, PngButtonFunctions, PngImageList; 37 | 38 | { TPngSpeedButton } 39 | 40 | constructor TPngSpeedButton.Create(AOwner: TComponent); 41 | begin 42 | inherited Create(AOwner); 43 | FPngImage := TPngImage.Create; 44 | FPngOptions := [pngBlendOnDisabled]; 45 | FImageFromAction := False; 46 | end; 47 | 48 | destructor TPngSpeedButton.Destroy; 49 | begin 50 | inherited Destroy; 51 | FPngImage.Free; 52 | end; 53 | 54 | procedure TPngSpeedButton.ActionChange(Sender: TObject; CheckDefaults: Boolean); 55 | begin 56 | inherited ActionChange(Sender, CheckDefaults); 57 | if Sender is TCustomAction then 58 | with TCustomAction(Sender) do begin 59 | //Copy image from action's imagelist 60 | if (PngImage.Empty or FImageFromAction) and (ActionList <> nil) and 61 | (ActionList.Images <> nil) and (ImageIndex >= 0) and (ImageIndex < 62 | ActionList.Images.Count) then begin 63 | CopyImageFromImageList(FPngImage, ActionList.Images, ImageIndex); 64 | CreatePngGlyph; 65 | FImageFromAction := True; 66 | end; 67 | end; 68 | end; 69 | 70 | procedure TPngSpeedButton.Paint; 71 | var 72 | PaintRect: TRect; 73 | GlyphPos, TextPos: TPoint; 74 | begin 75 | inherited Paint; 76 | 77 | if HasValidPng then begin 78 | Canvas.Handle := 0; 79 | Canvas.Font := Font; 80 | //Calculate the position of the PNG glyph 81 | CalcButtonLayout(Canvas, FPngImage, ClientRect, FState = bsDown, Down, 82 | Caption, Layout, Margin, Spacing, GlyphPos, TextPos, DrawTextBiDiModeFlags(0)); 83 | PaintRect := Bounds(GlyphPos.X, GlyphPos.Y, FPngImage.Width, FPngImage.Height); 84 | 85 | if csLoading in ComponentState then Exit; 86 | 87 | if Enabled then 88 | DrawPNG(FPngImage, Canvas, PaintRect, []) 89 | else 90 | DrawPNG(FPngImage, Canvas, PaintRect, FPngOptions); 91 | end; 92 | end; 93 | 94 | procedure TPngSpeedButton.Loaded; 95 | begin 96 | inherited Loaded; 97 | CreatePngGlyph; 98 | end; 99 | 100 | function TPngSpeedButton.PngImageStored: Boolean; 101 | begin 102 | Result := not FImageFromAction; 103 | end; 104 | 105 | procedure TPngSpeedButton.SetPngImage(const Value: TPngImage); 106 | begin 107 | //This is all neccesary, because you can't assign a nil to a TPngImage 108 | if Value = nil then begin 109 | FPngImage.Free; 110 | FPngImage := TPngImage.Create; 111 | end 112 | else begin 113 | FPngImage.Assign(Value); 114 | end; 115 | 116 | if HasValidPng then begin 117 | //To work around the gamma-problem 118 | if FPngImage.Header.ColorType in [COLOR_RGB, COLOR_RGBALPHA, COLOR_PALETTE] then 119 | FPngImage.Chunks.RemoveChunk(FPngImage.Chunks.ItemFromClass(TChunkgAMA)); 120 | end; 121 | 122 | FImageFromAction := False; 123 | CreatePngGlyph; 124 | Repaint; 125 | end; 126 | 127 | procedure TPngSpeedButton.SetPngOptions(const Value: TPngOptions); 128 | begin 129 | if FPngOptions <> Value then begin 130 | FPngOptions := Value; 131 | CreatePngGlyph; 132 | Repaint; 133 | end; 134 | end; 135 | 136 | procedure TPngSpeedButton.CreatePngGlyph; 137 | var 138 | Bmp: TBitmap; 139 | begin 140 | //Create an empty glyph, just to align the text correctly 141 | Bmp := TBitmap.Create; 142 | try 143 | Bmp.Width := FPngImage.Width; 144 | Bmp.Height := FPngImage.Height; 145 | Bmp.Canvas.Brush.Color := clBtnFace; 146 | Bmp.Canvas.FillRect(Rect(0, 0, Bmp.Width, Bmp.Height)); 147 | Glyph.Assign(Bmp); 148 | NumGlyphs := 1; 149 | finally 150 | Bmp.Free; 151 | end; 152 | end; 153 | 154 | function TPngSpeedButton.HasValidPng: Boolean; 155 | begin 156 | Result := (FPngImage <> nil) and not FPngImage.Empty; 157 | end; 158 | 159 | end. 160 | -------------------------------------------------------------------------------- /Source/PngTBXOfficeXPTheme.pas: -------------------------------------------------------------------------------- 1 | {***********************************************************} 2 | { PngTBXOfficeXPTheme } 3 | { A PNG-aware version of the TBX OfficeXP theme } 4 | { } 5 | { Copyright (c) 2004 Martijn Saly } 6 | {***********************************************************} 7 | 8 | unit PngTBXOfficeXPTheme; 9 | 10 | interface 11 | 12 | uses 13 | Windows, Graphics, ImgList, TB2Item, TBXUtils, TBXThemes, TBXOfficeXPTheme, 14 | PngImageList, PngFunctions, pngimage; 15 | 16 | type 17 | TPngTBXOfficeXPTheme = class(TTBXOfficeXPTheme) 18 | public 19 | procedure PaintImage(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo; ImageList: TCustomImageList; ImageIndex: Integer); override; 20 | end; 21 | 22 | implementation 23 | 24 | const 25 | ThemeName = 'OfficeXP'; 26 | 27 | { Globals } 28 | 29 | procedure HighlightTBXIcon(Canvas: TCanvas; const R: TRect; ImageList: TCustomImageList; ImageIndex: Integer; HighlightColor: TColor; Amount: Byte); 30 | var 31 | ImageWidth, ImageHeight, X, Y: Integer; 32 | DestPng, Png: TPNGObject; 33 | W1, W2: Byte; 34 | CBRB, CBG, S, C: Cardinal; 35 | Assigner: TBitmap; 36 | TransparencyColor: TColor; 37 | Line: PByteArray; 38 | begin 39 | //If the imagelist is not the PngImageList, then invoke the default call. 40 | if not (ImageList is TPngImageList) 41 | then begin 42 | TBXUtils.HighlightTBXIcon(Canvas, R, ImageList, ImageIndex, HighlightColor, Amount); 43 | Exit; 44 | end; 45 | 46 | //Get the size of the image 47 | ImageWidth := R.Right - R.Left; 48 | ImageHeight := R.Bottom - R.Top; 49 | with ImageList 50 | do begin 51 | if Width < ImageWidth 52 | then ImageWidth := Width; 53 | if Height < ImageHeight 54 | then ImageHeight := Height; 55 | end; 56 | 57 | //Recieve a copy of the image in the imagelist 58 | Png := TPngImageList(ImageList).PngImages[ImageIndex].PngImage; 59 | DestPng := TPNGObject.Create; 60 | try 61 | //Create a new PNG by assigning a TBitmap 62 | Assigner := TBitmap.Create; 63 | try 64 | Assigner.Width := Png.Width; 65 | Assigner.Height := Png.Height; 66 | DestPng.Assign(Assigner); 67 | finally 68 | Assigner.Free; 69 | end; 70 | 71 | //Copy alpha channel, if available 72 | if Png.Header.ColorType in [COLOR_GRAYSCALEALPHA, COLOR_RGBALPHA] 73 | then begin 74 | DestPng.CreateAlpha; 75 | for Y := 0 to Png.Height - 1 76 | do CopyMemory(DestPng.AlphaScanline[Y], Png.AlphaScanline[Y], Png.Width); 77 | end 78 | else if Png.TransparencyMode = ptmBit 79 | then begin 80 | TransparencyColor := Png.TransparentColor; 81 | DestPng.CreateAlpha; 82 | for Y := 0 to Png.Height - 1 83 | do begin 84 | Line := DestPng.AlphaScanline[Y]; 85 | for X := 0 to Png.Width - 1 86 | do if Png.Pixels[X, Y] = TransparencyColor 87 | then Line^[X] := 0 88 | else Line^[X] := 255; 89 | end; 90 | end; 91 | 92 | //Initialize variables that help generate the lighted icon 93 | W2 := Amount; 94 | W1 := 255 - W2; 95 | HighlightColor := GetBGR(ColorToRGB(HighlightColor)); 96 | CBRB := (Cardinal(HighlightColor) and $00FF00FF) * W1; 97 | CBG := (Cardinal(HighlightColor) and $0000FF00) * W1; 98 | 99 | //Loop through every pixel 100 | for Y := 0 to ImageHeight - 1 101 | do for X := 0 to ImageWidth - 1 102 | do begin 103 | //Lighten a pixel, basically the same way as in the original OfficeXP theme, 104 | //only this function preserves the alpha channel 105 | S := Png.Pixels[X, Y]; 106 | C := ((S and $FF00FF) * W2 + CBRB) and $FF00FF00 + ((S and $00FF00) * W2 + CBG) and $00FF0000; 107 | DestPng.Pixels[X, Y] := C shr 8; 108 | end; 109 | DestPng.Draw(Canvas, R); 110 | finally 111 | DestPng.Free; 112 | end; 113 | end; 114 | 115 | procedure DrawTBXIconFullShadow(Canvas: TCanvas; const R: TRect; ImageList: TCustomImageList; ImageIndex: Integer; ShadowColor: TColor); 116 | 117 | function Perform_DSPDxax(const Source, Dest, Brush: Byte): Byte; 118 | begin 119 | //It was neccesary to translate the ternary raster operation ROP_DSPDxax into 120 | //normal code, because it's not using a Blt function. 121 | //See also: http://msdn.microsoft.com/library/en-us/gdi/pantdraw_6n77.asp 122 | Result := Dest xor Brush and Source xor Dest; 123 | end; 124 | 125 | var 126 | Assigner: TBitmap; 127 | ImageWidth, ImageHeight, X, Y: Integer; 128 | DestPng, Png: TPNGObject; 129 | DestColor, TransparencyColor: TColor; 130 | BrushR, BrushG, BrushB, DestR, DestG, DestB: Byte; 131 | Line: PByteArray; 132 | begin 133 | //If the imagelist is not the PngImageList, then invoke the default call. 134 | if not (ImageList is TPngImageList) 135 | then begin 136 | TBXUtils.DrawTBXIconFullShadow(Canvas, R, ImageList, ImageIndex, ShadowColor); 137 | Exit; 138 | end; 139 | 140 | //Get the size of the image 141 | ImageWidth := R.Right - R.Left; 142 | ImageHeight := R.Bottom - R.Top; 143 | with ImageList 144 | do begin 145 | if Width < ImageWidth 146 | then ImageWidth := Width; 147 | if Height < ImageHeight 148 | then ImageHeight := Height; 149 | end; 150 | 151 | //Recieve a copy of the image in the imagelist 152 | Png := TPngImageList(ImageList).PngImages[ImageIndex].PngImage; 153 | DestPng := TPNGObject.Create; 154 | try 155 | //Create a new PNG by assigning a TBitmap 156 | Assigner := TBitmap.Create; 157 | try 158 | Assigner.Width := Png.Width; 159 | Assigner.Height := Png.Height; 160 | DestPng.Assign(Assigner); 161 | finally 162 | Assigner.Free; 163 | end; 164 | 165 | //Copy alpha channel, if available 166 | if Png.Header.ColorType in [COLOR_GRAYSCALEALPHA, COLOR_RGBALPHA] 167 | then begin 168 | DestPng.CreateAlpha; 169 | for Y := 0 to Png.Height - 1 170 | do CopyMemory(DestPng.AlphaScanline[Y], Png.AlphaScanline[Y], Png.Width); 171 | end 172 | else if Png.TransparencyMode = ptmBit 173 | then begin 174 | TransparencyColor := Png.TransparentColor; 175 | DestPng.CreateAlpha; 176 | for Y := 0 to Png.Height - 1 177 | do begin 178 | Line := DestPng.AlphaScanline[Y]; 179 | for X := 0 to Png.Width - 1 180 | do if Png.Pixels[X, Y] = TransparencyColor 181 | then Line^[X] := 0 182 | else Line^[X] := 255; 183 | end; 184 | end; 185 | 186 | //BrushX values for the raster opration 187 | BrushR := ShadowColor and $FF; 188 | BrushG := ShadowColor shr 8 and $FF; 189 | BrushB := ShadowColor shr 16 and $FF; 190 | 191 | //Loop through every pixel to generate a shadow 192 | for Y := 0 to ImageHeight - 1 193 | do for X := 0 to ImageWidth - 1 194 | do begin 195 | //These call the raster operation that generate a shadow image. The raster 196 | //operation "DSPDxax" is basically the same as BitBlt with ROP_DSPDxax as the 197 | //last parameter, but since we're modifying the PNG image itself, the operation 198 | //needed to be translated to normal code. 199 | DestColor := GetPixel(Canvas.Handle, R.Left + X, R.Top + Y); 200 | DestR := Perform_DSPDxax(255, DestColor and $FF, BrushR); 201 | DestG := Perform_DSPDxax(255, DestColor shr 8 and $FF, BrushG); 202 | DestB := Perform_DSPDxax(255, DestColor shr 16 and $FF, BrushB); 203 | DestPng.Pixels[X, Y] := RGB(DestR, DestG, DestB); 204 | end; 205 | DestPng.Draw(Canvas, R); 206 | finally 207 | DestPng.Free; 208 | end; 209 | end; 210 | 211 | procedure DrawTBXIconFlatShadow(Canvas: TCanvas; const R: TRect; ImageList: TCustomImageList; ImageIndex: Integer; ShadowColor: TColor); 212 | var 213 | Png: TPNGObject; 214 | begin 215 | //If the imagelist is not the PngImageList, then invoke the default call. 216 | if not (ImageList is TPngImageList) 217 | then begin 218 | TBXUtils.DrawTBXIconFullShadow(Canvas, R, ImageList, ImageIndex, ShadowColor); 219 | Exit; 220 | end; 221 | 222 | //Recieve a copy of the image in the imagelist, if available 223 | Png := TPngImageList(ImageList).PngImages[ImageIndex].Duplicate; 224 | try 225 | //Now draw the PNG with the appropriate options, to make it appear 226 | //disabled 227 | DrawPNG(Png, Canvas, R, TPngImageList(ImageList).PngOptions); 228 | finally 229 | Png.Free; 230 | end; 231 | end; 232 | 233 | { TPngTBXOfficeXPTheme } 234 | 235 | procedure TPngTBXOfficeXPTheme.PaintImage(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo; ImageList: TCustomImageList; ImageIndex: Integer); 236 | var 237 | HiContrast: Boolean; 238 | begin 239 | //This method is the same as in the original OfficeXP theme, for the most part. 240 | with ItemInfo 241 | do begin 242 | if ImageList is TTBCustomImageList 243 | then begin 244 | TTBCustomImageList(ImageList).DrawState(Canvas, ARect.Left, ARect.Top, ImageIndex, Enabled, (HoverKind <> hkNone), Selected); 245 | Exit; 246 | end; 247 | 248 | HiContrast := IsDarkColor(GetItemImageBackground(ItemInfo), 64); 249 | if not Enabled 250 | then begin 251 | DrawTBXIconFlatShadow(Canvas, ARect, ImageList, ImageIndex, BtnItemColors[bisDisabled, ipText]); 252 | end 253 | else if Selected or Pushed or (HoverKind <> hkNone) 254 | then begin 255 | if not (Selected or Pushed and not IsPopupParent) 256 | then begin 257 | OffsetRect(ARect, 1, 1); 258 | DrawTBXIconFullShadow(Canvas, ARect, ImageList, ImageIndex, IconShadowColor); 259 | OffsetRect(ARect, -2, -2); 260 | end; 261 | DrawTBXIcon(Canvas, ARect, ImageList, ImageIndex, HiContrast); 262 | end 263 | else if HiContrast or TBXHiContrast or TBXLoColor 264 | then DrawTBXIcon(Canvas, ARect, ImageList, ImageIndex, HiContrast) 265 | else HighlightTBXIcon(Canvas, ARect, ImageList, ImageIndex, clWindow, 178); 266 | end; 267 | end; 268 | 269 | initialization 270 | //Unregister the original OfficeXP theme and replace it with the PNG-aware 271 | //version. It is neccesary either to not include TBXOfficeXPTheme in your uses 272 | //clause, or to make sure this unit gets initialized *after* TBXOfficeXPTheme. 273 | if IsTBXThemeAvailable(ThemeName) 274 | then UnregisterTBXTheme(ThemeName); 275 | RegisterTBXTheme(ThemeName, TPngTBXOfficeXPTheme); 276 | 277 | end. 278 | -------------------------------------------------------------------------------- /Tests/PngBtnTest/ProjectPngBtnTest.dpr: -------------------------------------------------------------------------------- 1 | program ProjectPngBtnTest; 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 | -------------------------------------------------------------------------------- /Tests/PngBtnTest/ProjectPngBtnTest.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {5F76A2CC-B3F9-45FC-A002-721128DD8F2C} 4 | 15.4 5 | VCL 6 | ProjectPngBtnTest.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 | ..\..\Source;$(DCC_UnitSearchPath) 44 | CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= 45 | 1031 46 | $(BDS)\bin\default_app.manifest 47 | System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) 48 | ProjectPngBtnTest 49 | $(BDS)\bin\delphi_PROJECTICON.ico 50 | .\$(Platform)\$(Config) 51 | .\$(Platform)\$(Config) 52 | false 53 | false 54 | false 55 | false 56 | false 57 | 58 | 59 | TeePro920;FMXTeePro920;FireDACASADriver;TeeGL920;FireDACSqliteDriver;TeeTree2D20Tee9;bindcompfmx;DBXSqliteDriver;vcldbx;FireDACPgDriver;FireDACODBCDriver;RESTBackendComponents;fmx;TeeLanguage920;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;inetdb;tethering;inetdbbde;dac200;DBXInterBaseDriver;TeeDB920;ChromeTabs_R;vclFireDAC;xmlrtl;svnui;TeeUI920;DbxCommonDriver;crcontrols200;vclimg;Tee920;IndyProtocols;dbxcds;DBXMySQLDriver;FmxTeeUI920;FireDACCommonDriver;MetropolisUILiveTile;FMXTeeDB920;bindcompdbx;soaprtl;bindengine;vclactnband;vcldb;vcldsnap;bindcompvcl;FireMonkeyContainer_Designtime;FMXTee920;unidacvcl200;vclie;fmxFireDAC;FireDACADSDriver;vcltouch;dacvcl200;unidacfmx200;unidac200;CustomIPTransport;PngComponents;vclribbon;VclSmp;FireDAC;dsnap;IndyIPServer;Intraweb;fmxase;vcl;IndyCore;VCLRESTComponents;TeeWorld920;IndyIPCommon;CloudService;FMXTeeLanguage920;dsnapcon;FireDACIBDriver;TeeImage920;inet;CacheLayoutRuntime;fmxobj;FireDACMySQLDriver;soapmidas;vclx;soapserver;inetdbxpress;svn;dsnapxml;fmxdae;RESTComponents;bdertl;FireDACMSAccDriver;dbexpress;adortl;IndyIPClient;$(DCC_UsePackage) 60 | true 61 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 62 | CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= 63 | 1033 64 | $(BDS)\bin\default_app.manifest 65 | 66 | 67 | FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;FireDACPgDriver;FireDACODBCDriver;RESTBackendComponents;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;inetdb;tethering;DBXInterBaseDriver;vclFireDAC;xmlrtl;DbxCommonDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;FireDACCommonDriver;MetropolisUILiveTile;bindcompdbx;soaprtl;bindengine;vclactnband;vcldb;vcldsnap;bindcompvcl;vclie;fmxFireDAC;FireDACADSDriver;vcltouch;CustomIPTransport;PngComponents;vclribbon;VclSmp;FireDAC;dsnap;IndyIPServer;Intraweb;fmxase;vcl;IndyCore;VCLRESTComponents;IndyIPCommon;CloudService;dsnapcon;FireDACIBDriver;inet;fmxobj;FireDACMySQLDriver;soapmidas;vclx;soapserver;inetdbxpress;dsnapxml;fmxdae;RESTComponents;FireDACMSAccDriver;dbexpress;adortl;IndyIPClient;$(DCC_UsePackage) 68 | 69 | 70 | DEBUG;$(DCC_Define) 71 | true 72 | false 73 | true 74 | true 75 | true 76 | 77 | 78 | 1033 79 | true 80 | false 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 | ProjectPngBtnTest.dpr 115 | 116 | 117 | Microsoft Office 2000 Beispiele für gekapselte Komponenten für Automatisierungsserver 118 | Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server 119 | Embarcadero C++Builder-Package für Office 2000-Server 120 | Embarcadero C++Builder-Package für Office XP-Server 121 | 122 | 123 | 124 | 125 | True 126 | False 127 | 128 | 129 | 12 130 | 131 | 132 | 133 |
134 | -------------------------------------------------------------------------------- /Tests/PngBtnTest/ProjectPngBtnTest.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurboPack/PNGComponents/8f9aea1998814183eb1ecb06615fe025256d7da6/Tests/PngBtnTest/ProjectPngBtnTest.res -------------------------------------------------------------------------------- /Tests/PngBtnTest/Unit1.dfm: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form1' 5 | ClientHeight = 243 6 | ClientWidth = 246 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object BtnAuditReport: TPngSpeedButton 17 | Left = 0 18 | Top = 0 19 | Width = 80 20 | Height = 243 21 | Hint = 'Generate Audit Report' 22 | Align = alLeft 23 | Caption = 'Report' 24 | Enabled = False 25 | Layout = blGlyphTop 26 | ParentShowHint = False 27 | ShowHint = True 28 | PngImage.Data = { 29 | 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D 30 | F80000001974455874536F6674776172650041646F626520496D616765526561 31 | 647971C9653C000000864944415478DA63FCFFFF3F0308ECDAB50BC2200D3C00 32 | E20D405C882EE1E6E606A61929B4C000882F007100106FA485058C400CD2F701 33 | 6AD9435A59C000F589212D2D0081090CD0F8A0950520008E0F5A5A008E0FA005 34 | 0F696501085C005A60482D0BD0813ED402466A5880138C5A40B1058CE418CA80 35 | 94A2467D30EA8361E083216801AD000012CEBAD183C951F60000000049454E44 36 | AE426082} 37 | ExplicitLeft = 151 38 | ExplicitHeight = 280 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /Tests/PngBtnTest/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, Vcl.Buttons, PngSpeedButton; 8 | 9 | type 10 | TForm1 = class(TForm) 11 | BtnAuditReport: TPngSpeedButton; 12 | private 13 | { Private declarations } 14 | public 15 | { Public declarations } 16 | end; 17 | 18 | var 19 | Form1: TForm1; 20 | 21 | implementation 22 | 23 | {$R *.dfm} 24 | 25 | end. 26 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # TurboPack PNGComponents 2 | 3 | Updated for **10.3 Rio** / VER330 / PKG 260 4 | 5 | You can still access [10.2 Tokyo](https://github.com/TurboPack/PNGComponents/releases/tag/102Tokyo) and [10.1 Berlin](https://github.com/TurboPack/PNGComponents/releases/tag/101Berlin) versions too. 6 | 7 | ## Table of contents 8 | 9 | 1. Introduction 10 | 2. Package names 11 | 3. Installation 12 | 4. License 13 | 14 | ### 1. Introduction 15 | 16 | PngComponents is a set of components that allows you to include in your application real PNG files. 17 | You can read more about them in the Doku subfolder. 18 | 19 | This is a source-only release of TurboPack PNGComponents. It includes 20 | designtime and runtime packages for Delphi and C++Builder and supports Win32 and Win64. 21 | 22 | ### 2. Package names 23 | 24 | TurboPack PNGComponents package names have the following form: 25 | 26 | #### Delphi 27 | * PNGComponentsD.bpl (Delphi Runtime) 28 | * PNGComponentsDDesign.bpl (Delphi Designtime) 29 | 30 | #### C++Builder 31 | * PNGComponentsD.bpl (C++Builder Runtime) 32 | * PNGComponentsDDesign.bpl (C++Builder Designtime) 33 | 34 | ### 3. Installation 35 | 36 | PNGComponents are available via the [GetIt Package Manager](http://docwiki.embarcadero.com/RADStudio/en/Installing_a_Package_Using_GetIt_Package_Manager) where you can quickly and easily install and uninstall it. 37 | 38 | To manually install TurboPack PNGComponents into your IDE, take the following 39 | steps: 40 | 41 | 1. Unzip the release files into a directory (e.g., `d:\PNGComponents`). 42 | 43 | 2. Start RAD Studio. 44 | 45 | 3. Add the source subdirectory (e.g., `d:\PNGComponents\source`) to the 46 | IDE's library path. For CBuilder, add the hpp subdirectory 47 | (e.g., `d:\PNGComponents\source\hpp\Win32\Debug`) to the IDE's system include path. 48 | 49 | 3. Open & compile the runtime package specific to the IDE being 50 | used. 51 | 52 | 4. Open & install the designtime package specific to the IDE being 53 | used. The IDE should notify you the components have been 54 | installed. 55 | 56 | ### 4. License 57 | 58 | [Mozilla Public License 1.1 (MPL 1.1)](https://www.mozilla.org/en-US/MPL/1.1/) 59 | --------------------------------------------------------------------------------