├── .gitignore ├── JSONDoc.pas ├── JSONTreeView.pas ├── LICENSE.md ├── README.md ├── jsoncomps_grp.groupproj ├── jsondoc.dcr ├── jsondoc_dsgn.dpk ├── jsondoc_dsgn.dproj ├── jsondoc_regs.pas ├── jsondoc_rt.dpk ├── jsondoc_rt.dproj ├── jsontreeview_dsgn.dpk ├── jsontreeview_dsgn.dproj ├── jsontreeview_regs.pas ├── jsontreeview_rt.dpk └── jsontreeview_rt.dproj /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.identcache 3 | 4 | 5 | *.dcu 6 | 7 | 8 | *.local 9 | 10 | 11 | *.res 12 | 13 | *.exe 14 | *.~*~ 15 | *.stat -------------------------------------------------------------------------------- /JSONDoc.pas: -------------------------------------------------------------------------------- 1 | unit JSONDoc; 2 | 3 | // *********************************************************************** 4 | // 5 | // JSON Document Component 6 | // 7 | // pawel.glowacki@embarcadero.com 8 | // 9 | // July 2010 - version 1.0 10 | // February 2016 - version 1.1 11 | // 12 | // *********************************************************************** 13 | 14 | interface 15 | 16 | uses 17 | System.Classes, System.JSON; 18 | 19 | type 20 | TJSONDocument = class(TComponent) 21 | private 22 | FRootValue: TJSONValue; 23 | FJsonText: string; 24 | FOnChange: TNotifyEvent; 25 | procedure SetJsonText(const Value: string); 26 | protected 27 | procedure FreeRootValue; 28 | procedure DoOnChange; virtual; 29 | procedure ProcessJsonText; 30 | public 31 | class function StripNonJson(s: string): string; inline; 32 | constructor Create(AOwner: TComponent); override; 33 | destructor Destroy; override; 34 | function IsActive: boolean; 35 | function EstimatedByteSize: integer; 36 | property RootValue: TJSONValue read FRootValue; 37 | published 38 | property JsonText: string read FJsonText write SetJsonText; 39 | property OnChange: TNotifyEvent read FOnChange write FOnChange; 40 | end; 41 | 42 | implementation 43 | 44 | uses 45 | System.SysUtils, System.Character; 46 | 47 | { TJSONDocument } 48 | 49 | constructor TJSONDocument.Create(AOwner: TComponent); 50 | begin 51 | inherited; 52 | FRootValue := nil; 53 | FJsonText := ''; 54 | end; 55 | 56 | destructor TJSONDocument.Destroy; 57 | begin 58 | FreeRootValue; 59 | inherited; 60 | end; 61 | 62 | procedure TJSONDocument.FreeRootValue; 63 | begin 64 | if Assigned(FRootValue) then 65 | FreeAndNil(FRootValue); 66 | end; 67 | 68 | procedure TJSONDocument.DoOnChange; 69 | begin 70 | if Assigned(FOnChange) then 71 | FOnChange(self); 72 | end; 73 | 74 | function TJSONDocument.EstimatedByteSize: integer; 75 | begin 76 | if IsActive then 77 | Result := FRootValue.EstimatedByteSize 78 | else 79 | Result := 0; 80 | end; 81 | 82 | function TJSONDocument.IsActive: boolean; 83 | begin 84 | Result := RootValue <> nil; 85 | end; 86 | 87 | procedure TJSONDocument.SetJsonText(const Value: string); 88 | begin 89 | if FJsonText <> Value then 90 | begin 91 | FreeRootValue; 92 | FJsonText := Value; 93 | if FJsonText <> '' then 94 | ProcessJsonText; 95 | if not IsActive then 96 | FJsonText := ''; 97 | end; 98 | end; 99 | 100 | procedure TJSONDocument.ProcessJsonText; 101 | var s: string; 102 | begin 103 | FreeRootValue; 104 | s := StripNonJson(JsonText); 105 | FRootValue := TJSONObject.ParseJSONValue(BytesOf(s),0); 106 | DoOnChange; 107 | end; 108 | 109 | class function TJSONDocument.StripNonJson(s: string): string; 110 | var ch: char; inString: boolean; 111 | begin 112 | Result := ''; 113 | inString := false; 114 | for ch in s do 115 | begin 116 | if ch = '"' then 117 | inString := not inString; 118 | 119 | if ch.IsWhiteSpace and not inString then 120 | continue; 121 | 122 | Result := Result + ch; 123 | end; 124 | end; 125 | 126 | end. 127 | 128 | -------------------------------------------------------------------------------- /JSONTreeView.pas: -------------------------------------------------------------------------------- 1 | unit JSONTreeView; 2 | 3 | // *********************************************************************** 4 | // 5 | // JSON TreeView Component 6 | // 7 | // pawel.glowacki@embarcadero.com 8 | // 9 | // July 2010 - version 1.0 10 | // February 2016 - version 1.1 11 | // 12 | // *********************************************************************** 13 | 14 | interface 15 | 16 | uses 17 | System.Classes, System.SysUtils, System.JSON, jsondoc, Vcl.ComCtrls; 18 | 19 | type 20 | EUnknownJsonValueDescendant = class(Exception) 21 | constructor Create; 22 | end; 23 | 24 | TJSONTreeView = class(TTreeView) 25 | private 26 | FJSONDocument: TJSONDocument; 27 | FVisibleChildrenCounts: boolean; 28 | FVisibleByteSizes: boolean; 29 | procedure SetJSONDocument(const Value: TJSONDocument); 30 | procedure SetVisibleChildrenCounts(const Value: boolean); 31 | procedure SetVisibleByteSizes(const Value: boolean); 32 | procedure ProcessElement(currNode: TTreeNode; arr: TJSONArray; 33 | aIndex: integer); 34 | procedure ProcessPair(currNode: TTreeNode; obj: TJSONObject; 35 | aIndex: integer); 36 | protected 37 | procedure Notification(AComponent: TComponent; 38 | Operation: TOperation); override; 39 | public 40 | class function IsSimpleJsonValue(v: TJSONValue): boolean; inline; 41 | class function UnQuote(s: string): string; inline; 42 | constructor Create(AOwner: TComponent); override; 43 | procedure ClearAll; 44 | procedure LoadJson; 45 | published 46 | property JSONDocument: TJSONDocument 47 | read FJSONDocument write SetJSONDocument; 48 | property VisibleChildrenCounts: boolean 49 | read FVisibleChildrenCounts write SetVisibleChildrenCounts; 50 | property VisibleByteSizes: boolean 51 | read FVisibleByteSizes write SetVisibleByteSizes; 52 | end; 53 | 54 | implementation 55 | 56 | { TJSONTreeView } 57 | 58 | procedure TJSONTreeView.ClearAll; 59 | begin 60 | Items.Clear; 61 | end; 62 | 63 | constructor TJSONTreeView.Create(AOwner: TComponent); 64 | begin 65 | inherited; 66 | FVisibleChildrenCounts := true; 67 | FVisibleByteSizes := false; 68 | end; 69 | 70 | class function TJSONTreeView.IsSimpleJsonValue(v: TJSONValue): boolean; 71 | begin 72 | Result := (v is TJSONNumber) 73 | or (v is TJSONString) 74 | or (v is TJSONTrue) 75 | or (v is TJSONFalse) 76 | or (v is TJSONNull); 77 | end; 78 | 79 | procedure TJSONTreeView.LoadJson; 80 | var v: TJSONValue; currNode: TTreeNode; i, aCount: integer; s: string; 81 | begin 82 | ClearAll; 83 | 84 | if (JSONDocument <> nil) and JSONDocument.IsActive then 85 | begin 86 | v := JSONDocument.RootValue; 87 | 88 | Items.BeginUpdate; 89 | try 90 | Items.Clear; 91 | 92 | if IsSimpleJsonValue(v) then 93 | Items.AddChild(nil, UnQuote(v.Value)) 94 | 95 | else 96 | if v is TJSONObject then 97 | begin 98 | aCount := TJSONObject(v).Count; 99 | s := '{}'; 100 | if VisibleChildrenCounts then 101 | s := s + ' (' + IntToStr(aCount) + ')'; 102 | if VisibleByteSizes then 103 | s := s + ' (' + IntToStr(v.EstimatedByteSize) + ' bytes)'; 104 | currNode := Items.AddChild(nil, s); 105 | for i := 0 to aCount - 1 do 106 | ProcessPair(currNode, TJSONObject(v), i) 107 | end 108 | 109 | else 110 | if v is TJSONArray then 111 | begin 112 | aCount := TJSONArray(v).Count; 113 | s := '[]'; 114 | if VisibleChildrenCounts then 115 | s := s + ' (' + IntToStr(aCount) + ')'; 116 | if VisibleByteSizes then 117 | s := s + ' (' + IntToStr(v.EstimatedByteSize) + ' bytes)'; 118 | currNode := Items.AddChild(nil, s); 119 | for i := 0 to aCount - 1 do 120 | ProcessElement(currNode, TJSONArray(v), i) 121 | end 122 | 123 | else 124 | raise EUnknownJsonValueDescendant.Create; 125 | 126 | finally 127 | Items.EndUpdate; 128 | end; 129 | 130 | FullExpand; 131 | end; 132 | end; 133 | 134 | procedure TJSONTreeView.ProcessPair(currNode: TTreeNode; obj: TJSONObject; aIndex: integer); 135 | var p: TJSONPair; s: string; n: TTreeNode; i, aCount: integer; 136 | begin 137 | p := obj.Pairs[aIndex]; 138 | 139 | s := UnQuote(p.JsonString.ToString) + ' : '; 140 | 141 | if IsSimpleJsonValue(p.JsonValue) then 142 | begin 143 | Items.AddChild(currNode, s + p.JsonValue.ToString); 144 | exit; 145 | end; 146 | 147 | if p.JsonValue is TJSONObject then 148 | begin 149 | aCount := TJSONObject(p.JsonValue).Count; 150 | s := s + ' {}'; 151 | if VisibleChildrenCounts then 152 | s := s + ' (' + IntToStr(aCount) + ')'; 153 | if VisibleByteSizes then 154 | s := s + ' (' + IntToStr(p.EstimatedByteSize) + ' bytes)'; 155 | n := Items.AddChild(currNode, s); 156 | for i := 0 to aCount - 1 do 157 | ProcessPair(n, TJSONObject(p.JsonValue), i); 158 | end 159 | 160 | else if p.JsonValue is TJSONArray then 161 | begin 162 | aCount := TJSONArray(p.JsonValue).Count; 163 | s := s + ' []'; 164 | if VisibleChildrenCounts then 165 | s := s + ' (' + IntToStr(aCount) + ')'; 166 | if VisibleByteSizes then 167 | s := s + ' (' + IntToStr(p.EstimatedByteSize) + ' bytes)'; 168 | n := Items.AddChild(currNode, s); 169 | for i := 0 to aCount - 1 do 170 | ProcessElement(n, TJSONArray(p.JsonValue), i); 171 | end 172 | else 173 | raise EUnknownJsonValueDescendant.Create; 174 | end; 175 | 176 | procedure TJSONTreeView.ProcessElement(currNode: TTreeNode; arr: TJSONArray; aIndex: integer); 177 | var v: TJSONValue; s: string; n: TTreeNode; i, aCount: integer; 178 | begin 179 | v := arr.Items[aIndex]; 180 | s := '[' + IntToStr(aIndex) + '] '; 181 | 182 | if IsSimpleJsonValue(v) then 183 | begin 184 | Items.AddChild(currNode, s + v.ToString); 185 | exit; 186 | end; 187 | 188 | if v is TJSONObject then 189 | begin 190 | aCount := TJSONObject(v).Count; 191 | s := s + ' {}'; 192 | if VisibleChildrenCounts then 193 | s := s + ' (' + IntToStr(aCount) + ')'; 194 | if VisibleByteSizes then 195 | s := s + ' (' + IntToStr(v.EstimatedByteSize) + ' bytes)'; 196 | n := Items.AddChild(currNode, s); 197 | for i := 0 to aCount - 1 do 198 | ProcessPair(n, TJSONObject(v), i); 199 | end 200 | 201 | else if v is TJSONArray then 202 | begin 203 | aCount := TJSONArray(v).Count; 204 | s := s + ' []'; 205 | n := Items.AddChild(currNode, s); 206 | if VisibleChildrenCounts then 207 | s := s + ' (' + IntToStr(aCount) + ')'; 208 | if VisibleByteSizes then 209 | s := s + ' (' + IntToStr(v.EstimatedByteSize) + ' bytes)'; 210 | for i := 0 to aCount - 1 do 211 | ProcessElement(n, TJSONArray(v), i); 212 | end 213 | else 214 | raise EUnknownJsonValueDescendant.Create; 215 | 216 | end; 217 | 218 | procedure TJSONTreeView.SetJSONDocument(const Value: TJSONDocument); 219 | begin 220 | if FJSONDocument <> Value then 221 | begin 222 | FJSONDocument := Value; 223 | ClearAll; 224 | if FJSONDocument <> nil then 225 | begin 226 | if FJSONDocument.IsActive then 227 | LoadJson; 228 | end; 229 | end; 230 | end; 231 | 232 | procedure TJSONTreeView.SetVisibleByteSizes(const Value: boolean); 233 | begin 234 | if FVisibleByteSizes <> Value then 235 | begin 236 | FVisibleByteSizes := Value; 237 | LoadJson; 238 | end; 239 | end; 240 | 241 | procedure TJSONTreeView.SetVisibleChildrenCounts(const Value: boolean); 242 | begin 243 | if FVisibleChildrenCounts <> Value then 244 | begin 245 | FVisibleChildrenCounts := Value; 246 | LoadJson; 247 | end; 248 | end; 249 | 250 | class function TJSONTreeView.UnQuote(s: string): string; 251 | begin 252 | Result := Copy(s,2,Length(s)-2); 253 | end; 254 | 255 | procedure TJSONTreeView.Notification(AComponent: TComponent; 256 | Operation: TOperation); 257 | begin 258 | inherited; 259 | 260 | if Operation = opRemove then 261 | if FJSONDocument <> nil then 262 | if AComponent = FJSONDocument then 263 | begin 264 | FJSONDocument := nil; 265 | ClearAll; 266 | end; 267 | end; 268 | 269 | { EUnknownJsonValueDescendant } 270 | 271 | resourcestring 272 | StrUnknownTJSONValueDescendant = 'Unknown TJSONValue descendant'; 273 | 274 | constructor EUnknownJsonValueDescendant.Create; 275 | begin 276 | inherited Create(StrUnknownTJSONValueDescendant); 277 | end; 278 | 279 | end. 280 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pglowack/DelphiJSONComponents/46325ae0418fabdc4353430c9674902f77776884/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Delphi 10 "Seattle" JSON Components 2 | by pawel.glowacki@embarcadero.com 3 | 4 | "TJSONDocument" and "TJSONTreeView" components 5 | 6 | More information at: 7 | http://community.embarcadero.com/blogs/entry/learn-how-to-use-the-new-json-features-in-rad-studio-10-seattle-webinar-march-2nd-wednesday 8 | 9 | "Learn How to Use the New JSON Features in Delphi 10 Seattle" Whitepaper: 10 | http://cc.embarcadero.com/Item/30496 11 | 12 | ======================================== 13 | 14 | Open "jsoncomps_grp" project group in Embarcadero Delphi. 15 | 16 | Build All. 17 | 18 | Install "jsondoc_dsgn" package. 19 | 20 | Install "jsontreeview_dsgn" package. 21 | 22 | Add the folder with components source code to Delphi "Browsing Path" 23 | -------------------------------------------------------------------------------- /jsoncomps_grp.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {879801F3-3E14-4182-A6B9-B66A0FB1DBEC} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | Default.Personality.12 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 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /jsondoc.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pglowack/DelphiJSONComponents/46325ae0418fabdc4353430c9674902f77776884/jsondoc.dcr -------------------------------------------------------------------------------- /jsondoc_dsgn.dpk: -------------------------------------------------------------------------------- 1 | package jsondoc_dsgn; 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 ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$DESCRIPTION 'JSON Document - Designtime'} 29 | {$DESIGNONLY} 30 | {$IMPLICITBUILD ON} 31 | 32 | requires 33 | rtl; 34 | 35 | contains 36 | jsondoc_regs in 'jsondoc_regs.pas'; 37 | 38 | end. 39 | -------------------------------------------------------------------------------- /jsondoc_dsgn.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {79A1DB52-A88E-40E0-BD6A-41AB3B104011} 4 | jsondoc_dsgn.dpk 5 | 18.0 6 | None 7 | True 8 | Debug 9 | Win32 10 | 1 11 | Package 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 | Base 34 | true 35 | 36 | 37 | true 38 | Base 39 | true 40 | 41 | 42 | true 43 | Base 44 | true 45 | 46 | 47 | true 48 | Base 49 | true 50 | 51 | 52 | true 53 | Base 54 | true 55 | 56 | 57 | true 58 | Cfg_1 59 | true 60 | true 61 | 62 | 63 | true 64 | Base 65 | true 66 | 67 | 68 | true 69 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) 70 | jsondoc_dsgn 71 | All 72 | true 73 | true 74 | .\$(Platform)\$(Config) 75 | .\$(Platform)\$(Config) 76 | 77 | 78 | rtl;$(DCC_UsePackage) 79 | android-support-v4.dex.jar;apk-expansion.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar 80 | None 81 | 82 | 83 | rtl;$(DCC_UsePackage) 84 | None 85 | 86 | 87 | rtl;$(DCC_UsePackage) 88 | None 89 | 90 | 91 | rtl;$(DCC_UsePackage) 92 | None 93 | 94 | 95 | rtl;$(DCC_UsePackage) 96 | 97 | 98 | rtl;$(DCC_UsePackage) 99 | JSON Document - Designtime 100 | true 101 | 1033 102 | CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= 103 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 104 | 105 | 106 | rtl;$(DCC_UsePackage) 107 | 108 | 109 | DEBUG;$(DCC_Define) 110 | true 111 | false 112 | true 113 | true 114 | true 115 | 116 | 117 | 1033 118 | true 119 | false 120 | 121 | 122 | false 123 | RELEASE;$(DCC_Define) 124 | 0 125 | 0 126 | 127 | 128 | 129 | MainSource 130 | 131 | 132 | 133 | 134 | Cfg_2 135 | Base 136 | 137 | 138 | Base 139 | 140 | 141 | Cfg_1 142 | Base 143 | 144 | 145 | 146 | Delphi.Personality.12 147 | Package 148 | 149 | 150 | 151 | jsondoc_dsgn.dpk 152 | 153 | 154 | Embarcadero C++Builder Office 2000 Servers Package 155 | Embarcadero C++Builder Office XP Servers Package 156 | Microsoft Office 2000 Sample Automation Server Wrapper Components 157 | Microsoft Office XP Sample Automation Server Wrapper Components 158 | TeeChart Pro 2015 VCL Components 159 | TeeChart Pro 2015 for FireMonkey Components 160 | TeeTree 2 Components 161 | TeeTree for FireMonkey 162 | 163 | 164 | 165 | 166 | 167 | true 168 | 169 | 170 | 171 | 172 | true 173 | 174 | 175 | 176 | 177 | true 178 | 179 | 180 | 181 | 182 | jsondoc_dsgn.bpl 183 | true 184 | 185 | 186 | 187 | 188 | 189 | Contents\Resources 190 | 1 191 | 192 | 193 | 194 | 195 | classes 196 | 1 197 | 198 | 199 | 200 | 201 | Contents\MacOS 202 | 0 203 | 204 | 205 | 1 206 | 207 | 208 | 209 | 210 | 1 211 | 212 | 213 | 1 214 | 215 | 216 | 1 217 | 218 | 219 | 220 | 221 | res\drawable-xxhdpi 222 | 1 223 | 224 | 225 | 226 | 227 | library\lib\mips 228 | 1 229 | 230 | 231 | 232 | 233 | 0 234 | 235 | 236 | 1 237 | 238 | 239 | 1 240 | 241 | 242 | 1 243 | 244 | 245 | library\lib\armeabi-v7a 246 | 1 247 | 248 | 249 | 1 250 | 251 | 252 | 253 | 254 | 0 255 | 256 | 257 | 1 258 | .framework 259 | 260 | 261 | 262 | 263 | 1 264 | 265 | 266 | 1 267 | 268 | 269 | 1 270 | 271 | 272 | 273 | 274 | 1 275 | 276 | 277 | 1 278 | 279 | 280 | 1 281 | 282 | 283 | 284 | 285 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 286 | 1 287 | 288 | 289 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 290 | 1 291 | 292 | 293 | 294 | 295 | library\lib\x86 296 | 1 297 | 298 | 299 | 300 | 301 | 1 302 | 303 | 304 | 1 305 | 306 | 307 | 1 308 | 309 | 310 | 311 | 312 | 313 | library\lib\armeabi 314 | 1 315 | 316 | 317 | 318 | 319 | 0 320 | 321 | 322 | 1 323 | 324 | 325 | 1 326 | 327 | 328 | 329 | 330 | 1 331 | 332 | 333 | 1 334 | 335 | 336 | 1 337 | 338 | 339 | 340 | 341 | res\drawable-normal 342 | 1 343 | 344 | 345 | 346 | 347 | res\drawable-xhdpi 348 | 1 349 | 350 | 351 | 352 | 353 | res\drawable-large 354 | 1 355 | 356 | 357 | 358 | 359 | 1 360 | 361 | 362 | 1 363 | 364 | 365 | 1 366 | 367 | 368 | 369 | 370 | 371 | res\drawable-hdpi 372 | 1 373 | 374 | 375 | 376 | 377 | library\lib\armeabi-v7a 378 | 1 379 | 380 | 381 | 382 | 383 | 384 | 385 | 1 386 | 387 | 388 | 1 389 | 390 | 391 | 1 392 | 393 | 394 | 395 | 396 | res\values 397 | 1 398 | 399 | 400 | 401 | 402 | res\drawable-small 403 | 1 404 | 405 | 406 | 407 | 408 | res\drawable 409 | 1 410 | 411 | 412 | 413 | 414 | 1 415 | 416 | 417 | 1 418 | 419 | 420 | 1 421 | 422 | 423 | 424 | 425 | 1 426 | 427 | 428 | 429 | 430 | res\drawable 431 | 1 432 | 433 | 434 | 435 | 436 | 0 437 | 438 | 439 | 0 440 | 441 | 442 | 0 443 | 444 | 445 | 0 446 | 447 | 448 | 0 449 | 450 | 451 | 0 452 | 453 | 454 | 455 | 456 | library\lib\armeabi-v7a 457 | 1 458 | 459 | 460 | 461 | 462 | 0 463 | .bpl 464 | 465 | 466 | 1 467 | .dylib 468 | 469 | 470 | 1 471 | .dylib 472 | 473 | 474 | 1 475 | .dylib 476 | 477 | 478 | 1 479 | .dylib 480 | 481 | 482 | 483 | 484 | res\drawable-mdpi 485 | 1 486 | 487 | 488 | 489 | 490 | res\drawable-xlarge 491 | 1 492 | 493 | 494 | 495 | 496 | res\drawable-ldpi 497 | 1 498 | 499 | 500 | 501 | 502 | 0 503 | .dll;.bpl 504 | 505 | 506 | 1 507 | .dylib 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | False 520 | False 521 | False 522 | False 523 | False 524 | True 525 | False 526 | 527 | 528 | 12 529 | 530 | 531 | 532 | 533 | 534 | -------------------------------------------------------------------------------- /jsondoc_regs.pas: -------------------------------------------------------------------------------- 1 | unit jsondoc_regs; 2 | 3 | // *********************************************************************** 4 | // 5 | // JSON Document Component 6 | // 7 | // pawel.glowacki@embarcadero.com 8 | // 9 | // July 2010 - version 1.0 10 | // February 2016 - version 1.1 11 | // 12 | // *********************************************************************** 13 | 14 | 15 | interface 16 | 17 | {$R jsondoc.dcr} 18 | 19 | procedure Register; 20 | 21 | implementation 22 | 23 | uses 24 | System.Classes, jsondoc; 25 | 26 | procedure Register; 27 | begin 28 | RegisterComponents('JSON', [TJSONDocument]); 29 | end; 30 | 31 | end. 32 | -------------------------------------------------------------------------------- /jsondoc_rt.dpk: -------------------------------------------------------------------------------- 1 | package jsondoc_rt; 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 ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$DESCRIPTION 'JSON Document - Runtime'} 29 | {$IMPLICITBUILD ON} 30 | 31 | requires 32 | rtl; 33 | 34 | contains 35 | JSONDoc in 'JSONDoc.pas'; 36 | 37 | end. 38 | -------------------------------------------------------------------------------- /jsondoc_rt.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {5153162F-6602-46FA-9793-4C0E9396AF8E} 4 | jsondoc_rt.dpk 5 | 18.0 6 | None 7 | True 8 | Debug 9 | Win32 10 | 1 11 | Package 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 | Base 34 | true 35 | 36 | 37 | true 38 | Base 39 | true 40 | 41 | 42 | true 43 | Base 44 | true 45 | 46 | 47 | true 48 | Base 49 | true 50 | 51 | 52 | true 53 | Base 54 | true 55 | 56 | 57 | true 58 | Cfg_1 59 | true 60 | true 61 | 62 | 63 | true 64 | Base 65 | true 66 | 67 | 68 | jsondoc_rt 69 | true 70 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) 71 | All 72 | true 73 | .\$(Platform)\$(Config) 74 | .\$(Platform)\$(Config) 75 | 76 | 77 | rtl;DbxCommonDriver;dbrtl;$(DCC_UsePackage) 78 | android-support-v4.dex.jar;apk-expansion.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar 79 | None 80 | 81 | 82 | rtl;DbxCommonDriver;dbrtl;$(DCC_UsePackage) 83 | None 84 | 85 | 86 | rtl;DbxCommonDriver;dbrtl;$(DCC_UsePackage) 87 | None 88 | 89 | 90 | rtl;DbxCommonDriver;dbrtl;$(DCC_UsePackage) 91 | None 92 | 93 | 94 | rtl;DbxCommonDriver;dbrtl;$(DCC_UsePackage) 95 | 96 | 97 | rtl;DbxCommonDriver;dbrtl;vcl;$(DCC_UsePackage) 98 | JSON Document - Runtime 99 | true 100 | 1033 101 | CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= 102 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 103 | 104 | 105 | rtl;DbxCommonDriver;dbrtl;vcl;$(DCC_UsePackage) 106 | 107 | 108 | DEBUG;$(DCC_Define) 109 | true 110 | false 111 | true 112 | true 113 | true 114 | 115 | 116 | 1033 117 | JSON Document - Runtime 118 | true 119 | false 120 | 121 | 122 | false 123 | RELEASE;$(DCC_Define) 124 | 0 125 | 0 126 | 127 | 128 | 129 | MainSource 130 | 131 | 132 | 133 | 134 | Cfg_2 135 | Base 136 | 137 | 138 | Base 139 | 140 | 141 | Cfg_1 142 | Base 143 | 144 | 145 | 146 | Delphi.Personality.12 147 | Package 148 | 149 | 150 | 151 | Embarcadero C++Builder Office 2000 Servers Package 152 | Embarcadero C++Builder Office XP Servers Package 153 | Microsoft Office 2000 Sample Automation Server Wrapper Components 154 | Microsoft Office XP Sample Automation Server Wrapper Components 155 | TeeChart Pro 2015 VCL Components 156 | TeeChart Pro 2015 for FireMonkey Components 157 | TeeTree 2 Components 158 | TeeTree for FireMonkey 159 | 160 | 161 | jsondoc_rt.dpk 162 | 163 | 164 | 165 | 166 | 167 | true 168 | 169 | 170 | 171 | 172 | true 173 | 174 | 175 | 176 | 177 | true 178 | 179 | 180 | 181 | 182 | jsondoc_rt.bpl 183 | true 184 | 185 | 186 | 187 | 188 | 0 189 | .dll;.bpl 190 | 191 | 192 | 1 193 | .dylib 194 | 195 | 196 | 197 | 198 | Contents\Resources 199 | 1 200 | 201 | 202 | 203 | 204 | classes 205 | 1 206 | 207 | 208 | 209 | 210 | Contents\MacOS 211 | 0 212 | 213 | 214 | 1 215 | 216 | 217 | 218 | 219 | 1 220 | 221 | 222 | 1 223 | 224 | 225 | 1 226 | 227 | 228 | 229 | 230 | res\drawable-xxhdpi 231 | 1 232 | 233 | 234 | 235 | 236 | library\lib\mips 237 | 1 238 | 239 | 240 | 241 | 242 | 0 243 | 244 | 245 | 1 246 | 247 | 248 | 1 249 | 250 | 251 | 1 252 | 253 | 254 | library\lib\armeabi-v7a 255 | 1 256 | 257 | 258 | 1 259 | 260 | 261 | 262 | 263 | 0 264 | 265 | 266 | 1 267 | .framework 268 | 269 | 270 | 271 | 272 | 1 273 | 274 | 275 | 1 276 | 277 | 278 | 1 279 | 280 | 281 | 282 | 283 | 1 284 | 285 | 286 | 1 287 | 288 | 289 | 1 290 | 291 | 292 | 293 | 294 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 295 | 1 296 | 297 | 298 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 299 | 1 300 | 301 | 302 | 303 | 304 | library\lib\x86 305 | 1 306 | 307 | 308 | 309 | 310 | 1 311 | 312 | 313 | 1 314 | 315 | 316 | 1 317 | 318 | 319 | 320 | 321 | 322 | library\lib\armeabi 323 | 1 324 | 325 | 326 | 327 | 328 | 0 329 | 330 | 331 | 1 332 | 333 | 334 | 1 335 | 336 | 337 | 338 | 339 | 1 340 | 341 | 342 | 1 343 | 344 | 345 | 1 346 | 347 | 348 | 349 | 350 | res\drawable-normal 351 | 1 352 | 353 | 354 | 355 | 356 | res\drawable-xhdpi 357 | 1 358 | 359 | 360 | 361 | 362 | res\drawable-large 363 | 1 364 | 365 | 366 | 367 | 368 | 1 369 | 370 | 371 | 1 372 | 373 | 374 | 1 375 | 376 | 377 | 378 | 379 | 380 | res\drawable-hdpi 381 | 1 382 | 383 | 384 | 385 | 386 | library\lib\armeabi-v7a 387 | 1 388 | 389 | 390 | 391 | 392 | 393 | 394 | 1 395 | 396 | 397 | 1 398 | 399 | 400 | 1 401 | 402 | 403 | 404 | 405 | res\values 406 | 1 407 | 408 | 409 | 410 | 411 | res\drawable-small 412 | 1 413 | 414 | 415 | 416 | 417 | res\drawable 418 | 1 419 | 420 | 421 | 422 | 423 | 1 424 | 425 | 426 | 1 427 | 428 | 429 | 1 430 | 431 | 432 | 433 | 434 | 1 435 | 436 | 437 | 438 | 439 | res\drawable 440 | 1 441 | 442 | 443 | 444 | 445 | 0 446 | 447 | 448 | 0 449 | 450 | 451 | 0 452 | 453 | 454 | 0 455 | 456 | 457 | 0 458 | 459 | 460 | 0 461 | 462 | 463 | 464 | 465 | library\lib\armeabi-v7a 466 | 1 467 | 468 | 469 | 470 | 471 | 0 472 | .bpl 473 | 474 | 475 | 1 476 | .dylib 477 | 478 | 479 | 1 480 | .dylib 481 | 482 | 483 | 1 484 | .dylib 485 | 486 | 487 | 1 488 | .dylib 489 | 490 | 491 | 492 | 493 | res\drawable-mdpi 494 | 1 495 | 496 | 497 | 498 | 499 | res\drawable-xlarge 500 | 1 501 | 502 | 503 | 504 | 505 | res\drawable-ldpi 506 | 1 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | False 520 | False 521 | False 522 | False 523 | False 524 | True 525 | False 526 | 527 | 528 | 12 529 | 530 | 531 | 532 | 533 | 534 | -------------------------------------------------------------------------------- /jsontreeview_dsgn.dpk: -------------------------------------------------------------------------------- 1 | package jsontreeview_dsgn; 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 ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$DESCRIPTION 'JSON TreeView - Designtime'} 29 | {$DESIGNONLY} 30 | {$IMPLICITBUILD ON} 31 | 32 | requires 33 | rtl, 34 | vcl, 35 | jsondoc_dsgn; 36 | 37 | contains 38 | jsontreeview_regs in 'jsontreeview_regs.pas'; 39 | 40 | end. 41 | -------------------------------------------------------------------------------- /jsontreeview_dsgn.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {94F195FB-D50D-4496-8035-7230FA0070A3} 4 | jsontreeview_dsgn.dpk 5 | 18.0 6 | None 7 | True 8 | Debug 9 | Win32 10 | 1 11 | Package 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 | Base 34 | true 35 | 36 | 37 | true 38 | Base 39 | true 40 | 41 | 42 | true 43 | Base 44 | true 45 | 46 | 47 | true 48 | Base 49 | true 50 | 51 | 52 | true 53 | Base 54 | true 55 | 56 | 57 | true 58 | Cfg_1 59 | true 60 | true 61 | 62 | 63 | true 64 | Base 65 | true 66 | 67 | 68 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) 69 | true 70 | All 71 | jsontreeview_dsgn 72 | true 73 | true 74 | .\$(Platform)\$(Config) 75 | .\$(Platform)\$(Config) 76 | 77 | 78 | android-support-v4.dex.jar;apk-expansion.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar 79 | None 80 | rtl;$(DCC_UsePackage) 81 | 82 | 83 | None 84 | rtl;$(DCC_UsePackage) 85 | 86 | 87 | None 88 | rtl;$(DCC_UsePackage) 89 | 90 | 91 | None 92 | rtl;$(DCC_UsePackage) 93 | 94 | 95 | rtl;$(DCC_UsePackage) 96 | 97 | 98 | true 99 | 1033 100 | JSON TreeView - Designtime 101 | CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= 102 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 103 | rtl;vcl;$(DCC_UsePackage) 104 | 105 | 106 | rtl;vcl;$(DCC_UsePackage) 107 | 108 | 109 | DEBUG;$(DCC_Define) 110 | true 111 | false 112 | true 113 | true 114 | true 115 | 116 | 117 | 1033 118 | true 119 | false 120 | 121 | 122 | false 123 | RELEASE;$(DCC_Define) 124 | 0 125 | 0 126 | 127 | 128 | 129 | MainSource 130 | 131 | 132 | 133 | 134 | 135 | 136 | Cfg_2 137 | Base 138 | 139 | 140 | Base 141 | 142 | 143 | Cfg_1 144 | Base 145 | 146 | 147 | 148 | Delphi.Personality.12 149 | Package 150 | 151 | 152 | 153 | jsontreeview_dsgn.dpk 154 | 155 | 156 | Embarcadero C++Builder Office 2000 Servers Package 157 | Embarcadero C++Builder Office XP Servers Package 158 | Microsoft Office 2000 Sample Automation Server Wrapper Components 159 | Microsoft Office XP Sample Automation Server Wrapper Components 160 | TeeChart Pro 2015 VCL Components 161 | TeeChart Pro 2015 for FireMonkey Components 162 | TeeTree 2 Components 163 | TeeTree for FireMonkey 164 | 165 | 166 | 167 | 168 | 169 | true 170 | 171 | 172 | 173 | 174 | true 175 | 176 | 177 | 178 | 179 | true 180 | 181 | 182 | 183 | 184 | jsontreeview_dsgn.bpl 185 | true 186 | 187 | 188 | 189 | 190 | 0 191 | .dll;.bpl 192 | 193 | 194 | 1 195 | .dylib 196 | 197 | 198 | 199 | 200 | Contents\Resources 201 | 1 202 | 203 | 204 | 205 | 206 | classes 207 | 1 208 | 209 | 210 | 211 | 212 | Contents\MacOS 213 | 0 214 | 215 | 216 | 1 217 | 218 | 219 | 220 | 221 | 1 222 | 223 | 224 | 1 225 | 226 | 227 | 1 228 | 229 | 230 | 231 | 232 | res\drawable-xxhdpi 233 | 1 234 | 235 | 236 | 237 | 238 | library\lib\mips 239 | 1 240 | 241 | 242 | 243 | 244 | 0 245 | 246 | 247 | 1 248 | 249 | 250 | 1 251 | 252 | 253 | 1 254 | 255 | 256 | library\lib\armeabi-v7a 257 | 1 258 | 259 | 260 | 1 261 | 262 | 263 | 264 | 265 | 0 266 | 267 | 268 | 1 269 | .framework 270 | 271 | 272 | 273 | 274 | 1 275 | 276 | 277 | 1 278 | 279 | 280 | 1 281 | 282 | 283 | 284 | 285 | 1 286 | 287 | 288 | 1 289 | 290 | 291 | 1 292 | 293 | 294 | 295 | 296 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 297 | 1 298 | 299 | 300 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 301 | 1 302 | 303 | 304 | 305 | 306 | library\lib\x86 307 | 1 308 | 309 | 310 | 311 | 312 | 1 313 | 314 | 315 | 1 316 | 317 | 318 | 1 319 | 320 | 321 | 322 | 323 | 324 | library\lib\armeabi 325 | 1 326 | 327 | 328 | 329 | 330 | 0 331 | 332 | 333 | 1 334 | 335 | 336 | 1 337 | 338 | 339 | 340 | 341 | 1 342 | 343 | 344 | 1 345 | 346 | 347 | 1 348 | 349 | 350 | 351 | 352 | res\drawable-normal 353 | 1 354 | 355 | 356 | 357 | 358 | res\drawable-xhdpi 359 | 1 360 | 361 | 362 | 363 | 364 | res\drawable-large 365 | 1 366 | 367 | 368 | 369 | 370 | 1 371 | 372 | 373 | 1 374 | 375 | 376 | 1 377 | 378 | 379 | 380 | 381 | 382 | res\drawable-hdpi 383 | 1 384 | 385 | 386 | 387 | 388 | library\lib\armeabi-v7a 389 | 1 390 | 391 | 392 | 393 | 394 | 395 | 396 | 1 397 | 398 | 399 | 1 400 | 401 | 402 | 1 403 | 404 | 405 | 406 | 407 | res\values 408 | 1 409 | 410 | 411 | 412 | 413 | res\drawable-small 414 | 1 415 | 416 | 417 | 418 | 419 | res\drawable 420 | 1 421 | 422 | 423 | 424 | 425 | 1 426 | 427 | 428 | 1 429 | 430 | 431 | 1 432 | 433 | 434 | 435 | 436 | 1 437 | 438 | 439 | 440 | 441 | res\drawable 442 | 1 443 | 444 | 445 | 446 | 447 | 0 448 | 449 | 450 | 0 451 | 452 | 453 | 0 454 | 455 | 456 | 0 457 | 458 | 459 | 0 460 | 461 | 462 | 0 463 | 464 | 465 | 466 | 467 | library\lib\armeabi-v7a 468 | 1 469 | 470 | 471 | 472 | 473 | 0 474 | .bpl 475 | 476 | 477 | 1 478 | .dylib 479 | 480 | 481 | 1 482 | .dylib 483 | 484 | 485 | 1 486 | .dylib 487 | 488 | 489 | 1 490 | .dylib 491 | 492 | 493 | 494 | 495 | res\drawable-mdpi 496 | 1 497 | 498 | 499 | 500 | 501 | res\drawable-xlarge 502 | 1 503 | 504 | 505 | 506 | 507 | res\drawable-ldpi 508 | 1 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | False 522 | False 523 | False 524 | False 525 | False 526 | True 527 | False 528 | 529 | 530 | 12 531 | 532 | 533 | 534 | 535 | 536 | -------------------------------------------------------------------------------- /jsontreeview_regs.pas: -------------------------------------------------------------------------------- 1 | unit jsontreeview_regs; 2 | 3 | // *********************************************************************** 4 | // 5 | // JSON TreeView Component 6 | // 7 | // pawel.glowacki@embarcadero.com 8 | // 9 | // July 2010 - version 1.0 10 | // February 2016 - version 1.1 11 | // 12 | // *********************************************************************** 13 | 14 | interface 15 | 16 | procedure Register; 17 | 18 | implementation 19 | 20 | uses 21 | System.Classes, JSONTreeView; 22 | 23 | procedure Register; 24 | begin 25 | RegisterComponents('JSON', [TJSONTreeView]); 26 | end; 27 | 28 | end. 29 | -------------------------------------------------------------------------------- /jsontreeview_rt.dpk: -------------------------------------------------------------------------------- 1 | package jsontreeview_rt; 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 ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$DESCRIPTION 'JSON Tree View - Runtime'} 29 | {$IMPLICITBUILD ON} 30 | 31 | requires 32 | rtl, 33 | vcl, 34 | jsondoc_dsgn; 35 | 36 | contains 37 | JSONTreeView in 'JSONTreeView.pas'; 38 | 39 | end. 40 | -------------------------------------------------------------------------------- /jsontreeview_rt.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {F5B1CCCC-E32E-4C92-BDB3-82D14E50BC32} 4 | jsontreeview_rt.dpk 5 | 18.0 6 | None 7 | True 8 | Debug 9 | Win32 10 | 1 11 | Package 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 | Base 34 | true 35 | 36 | 37 | true 38 | Base 39 | true 40 | 41 | 42 | true 43 | Base 44 | true 45 | 46 | 47 | true 48 | Cfg_1 49 | true 50 | true 51 | 52 | 53 | true 54 | Base 55 | true 56 | 57 | 58 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) 59 | jsontreeview_rt 60 | All 61 | true 62 | true 63 | .\$(Platform)\$(Config) 64 | .\$(Platform)\$(Config) 65 | 66 | 67 | android-support-v4.dex.jar;apk-expansion.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar 68 | None 69 | 70 | 71 | None 72 | 73 | 74 | None 75 | 76 | 77 | None 78 | 79 | 80 | 1033 81 | JSON TreeView - Runtime 82 | true 83 | CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= 84 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 85 | 86 | 87 | DEBUG;$(DCC_Define) 88 | true 89 | false 90 | true 91 | true 92 | true 93 | 94 | 95 | 1033 96 | JSON Tree View - Runtime 97 | true 98 | false 99 | 100 | 101 | false 102 | RELEASE;$(DCC_Define) 103 | 0 104 | 0 105 | 106 | 107 | 108 | MainSource 109 | 110 | 111 | 112 | 113 | 114 | 115 | Cfg_2 116 | Base 117 | 118 | 119 | Base 120 | 121 | 122 | Cfg_1 123 | Base 124 | 125 | 126 | 127 | Delphi.Personality.12 128 | Package 129 | 130 | 131 | 132 | jsontreeview_rt.dpk 133 | 134 | 135 | Embarcadero C++Builder Office 2000 Servers Package 136 | Embarcadero C++Builder Office XP Servers Package 137 | Microsoft Office 2000 Sample Automation Server Wrapper Components 138 | Microsoft Office XP Sample Automation Server Wrapper Components 139 | TeeChart Pro 2015 VCL Components 140 | TeeChart Pro 2015 for FireMonkey Components 141 | TeeTree 2 Components 142 | TeeTree for FireMonkey 143 | 144 | 145 | 146 | 147 | 148 | true 149 | 150 | 151 | 152 | 153 | true 154 | 155 | 156 | 157 | 158 | true 159 | 160 | 161 | 162 | 163 | jsontreeview_rt.bpl 164 | true 165 | 166 | 167 | 168 | 169 | 0 170 | .dll;.bpl 171 | 172 | 173 | 1 174 | .dylib 175 | 176 | 177 | 178 | 179 | Contents\Resources 180 | 1 181 | 182 | 183 | 184 | 185 | classes 186 | 1 187 | 188 | 189 | 190 | 191 | Contents\MacOS 192 | 0 193 | 194 | 195 | 1 196 | 197 | 198 | 199 | 200 | 1 201 | 202 | 203 | 1 204 | 205 | 206 | 1 207 | 208 | 209 | 210 | 211 | res\drawable-xxhdpi 212 | 1 213 | 214 | 215 | 216 | 217 | library\lib\mips 218 | 1 219 | 220 | 221 | 222 | 223 | 0 224 | 225 | 226 | 1 227 | 228 | 229 | 1 230 | 231 | 232 | 1 233 | 234 | 235 | library\lib\armeabi-v7a 236 | 1 237 | 238 | 239 | 1 240 | 241 | 242 | 243 | 244 | 0 245 | 246 | 247 | 1 248 | .framework 249 | 250 | 251 | 252 | 253 | 1 254 | 255 | 256 | 1 257 | 258 | 259 | 1 260 | 261 | 262 | 263 | 264 | 1 265 | 266 | 267 | 1 268 | 269 | 270 | 1 271 | 272 | 273 | 274 | 275 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 276 | 1 277 | 278 | 279 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 280 | 1 281 | 282 | 283 | 284 | 285 | library\lib\x86 286 | 1 287 | 288 | 289 | 290 | 291 | 1 292 | 293 | 294 | 1 295 | 296 | 297 | 1 298 | 299 | 300 | 301 | 302 | 303 | library\lib\armeabi 304 | 1 305 | 306 | 307 | 308 | 309 | 0 310 | 311 | 312 | 1 313 | 314 | 315 | 1 316 | 317 | 318 | 319 | 320 | 1 321 | 322 | 323 | 1 324 | 325 | 326 | 1 327 | 328 | 329 | 330 | 331 | res\drawable-normal 332 | 1 333 | 334 | 335 | 336 | 337 | res\drawable-xhdpi 338 | 1 339 | 340 | 341 | 342 | 343 | res\drawable-large 344 | 1 345 | 346 | 347 | 348 | 349 | 1 350 | 351 | 352 | 1 353 | 354 | 355 | 1 356 | 357 | 358 | 359 | 360 | 361 | res\drawable-hdpi 362 | 1 363 | 364 | 365 | 366 | 367 | library\lib\armeabi-v7a 368 | 1 369 | 370 | 371 | 372 | 373 | 374 | 375 | 1 376 | 377 | 378 | 1 379 | 380 | 381 | 1 382 | 383 | 384 | 385 | 386 | res\values 387 | 1 388 | 389 | 390 | 391 | 392 | res\drawable-small 393 | 1 394 | 395 | 396 | 397 | 398 | res\drawable 399 | 1 400 | 401 | 402 | 403 | 404 | 1 405 | 406 | 407 | 1 408 | 409 | 410 | 1 411 | 412 | 413 | 414 | 415 | 1 416 | 417 | 418 | 419 | 420 | res\drawable 421 | 1 422 | 423 | 424 | 425 | 426 | 0 427 | 428 | 429 | 0 430 | 431 | 432 | 0 433 | 434 | 435 | 0 436 | 437 | 438 | 0 439 | 440 | 441 | 0 442 | 443 | 444 | 445 | 446 | library\lib\armeabi-v7a 447 | 1 448 | 449 | 450 | 451 | 452 | 0 453 | .bpl 454 | 455 | 456 | 1 457 | .dylib 458 | 459 | 460 | 1 461 | .dylib 462 | 463 | 464 | 1 465 | .dylib 466 | 467 | 468 | 1 469 | .dylib 470 | 471 | 472 | 473 | 474 | res\drawable-mdpi 475 | 1 476 | 477 | 478 | 479 | 480 | res\drawable-xlarge 481 | 1 482 | 483 | 484 | 485 | 486 | res\drawable-ldpi 487 | 1 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | False 501 | False 502 | False 503 | False 504 | False 505 | True 506 | False 507 | 508 | 509 | 12 510 | 511 | 512 | 513 | 514 | 515 | --------------------------------------------------------------------------------