From 2757d266716b997ba0f3f694dc9d99aa7c174d5d Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Sat, 4 Dec 2021 12:06:23 +0000 Subject: [PATCH] tvplanit: Add TCustomFileDatastore as common ancestor of the file based xml, ini, and json datastores. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8167 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/tvplanit/laz_visualplanit.lpk | 6 +++++- components/tvplanit/source/vpfileds.pas | 25 ++++++++++++++++++++++++ components/tvplanit/source/vpinids.pas | 4 ++-- components/tvplanit/source/vpjsonds.pas | 4 ++-- components/tvplanit/source/vpxmlds.pas | 4 ++-- 5 files changed, 36 insertions(+), 7 deletions(-) create mode 100644 components/tvplanit/source/vpfileds.pas diff --git a/components/tvplanit/laz_visualplanit.lpk b/components/tvplanit/laz_visualplanit.lpk index 0085b9966..090cd2ff7 100644 --- a/components/tvplanit/laz_visualplanit.lpk +++ b/components/tvplanit/laz_visualplanit.lpk @@ -32,7 +32,7 @@ Portions created by TurboPower Software Inc. are Copyright (C) 2002 TurboPower S Contributor(s): "/> - + @@ -329,6 +329,10 @@ Contributor(s): "/> + + + + diff --git a/components/tvplanit/source/vpfileds.pas b/components/tvplanit/source/vpfileds.pas new file mode 100644 index 000000000..62c3291ec --- /dev/null +++ b/components/tvplanit/source/vpfileds.pas @@ -0,0 +1,25 @@ +{ Basic Visual PlanIt datastore using an flat files, such as ini, xml or json } + +{$IF FPC_FullVersion >= 30200} + {$WARN 6058 off : Call to subroutine "$1" marked as inline is not inlined} +{$IFEND} + +{$I Vp.INC} + +unit VpFileDS; + +interface + +uses + VpBase, VpData, VpBaseDS; + +type + TVpCustomFileDataStore = class(TVpCustomDataStore) + private + protected + public + end; + +implementation + +end. diff --git a/components/tvplanit/source/vpinids.pas b/components/tvplanit/source/vpinids.pas index 31cd5bafa..28cf96710 100644 --- a/components/tvplanit/source/vpinids.pas +++ b/components/tvplanit/source/vpinids.pas @@ -8,12 +8,12 @@ interface uses SysUtils, Classes, - VpData, VpBaseDS; + VpData, VpBaseDS, VpFileDS; type TVpIniVersion = (iv105, iv104); - TVpIniDatastore = class(TVpCustomDatastore) + TVpIniDatastore = class(TVpCustomFileDatastore) private FFilename: String; FFormatSettings: TFormatSettings; diff --git a/components/tvplanit/source/vpjsonds.pas b/components/tvplanit/source/vpjsonds.pas index 9f8301a3f..67d00cb7d 100644 --- a/components/tvplanit/source/vpjsonds.pas +++ b/components/tvplanit/source/vpjsonds.pas @@ -8,12 +8,12 @@ interface uses SysUtils, Classes, fpjson, - VpData, VpBaseDS; + VpData, VpBaseDS, VpFileDS; type TVpJSONStoreType = (jstFile, jstString); - TVpJSONDataStore = class(TVpCustomDataStore) + TVpJSONDataStore = class(TVpCustomFileDataStore) private FFileName: String; FJSONString: String; diff --git a/components/tvplanit/source/vpxmlds.pas b/components/tvplanit/source/vpxmlds.pas index ef6602ceb..7b4031850 100644 --- a/components/tvplanit/source/vpxmlds.pas +++ b/components/tvplanit/source/vpxmlds.pas @@ -8,10 +8,10 @@ interface uses SysUtils, Classes, laz2_xmlread, laz2_xmlwrite, laz2_DOM, - VpData, VpBaseDS; + VpData, VpBaseDS, VpFileDS; type - TVpXmlDatastore = class(TVpCustomDatastore) + TVpXmlDatastore = class(TVpCustomFileDatastore) private FFilename: String; FParentNode: String;