unit Unit33;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.TMSFNCTypes, FMX.TMSFNCUtils, FMX.TMSFNCGraphics, FMX.TMSFNCGraphicsTypes,
FMX.TMSFNCGridCell, FMX.TMSFNCGridOptions, FMX.TMSFNCCustomControl,
FMX.TMSFNCCustomScrollControl, FMX.TMSFNCGridData, FMX.TMSFNCCustomGrid,
FMX.TMSFNCGrid, FMX.Controls.Presentation, FMX.StdCtrls, FMX.TMSFNCPersistence, FMX.TMSFNCJSONWriter,
FMX.TMSFNCJSONReader;
type
TForm33 = class(TForm)
TMSFNCGrid1: TTMSFNCGrid;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure DoWriteCustomProperty(AObject: TObject; APropertyName: string; APropertyKind: TTypeKind; AWriter: TTMSFNCJSONWriter; var ACanWrite: Boolean);
procedure DoReadCustomProperty(AObject: TObject; APropertyName: string; APropertyKind: TTypeKind; AReader: TTMSFNCJSONReader; var ACanRead: Boolean);
public
{ Public declarations }
end;
var
Form33: TForm33;
implementation
{$R *.fmx}
procedure TForm33.Button1Click(Sender: TObject);
begin
TMSFNCGrid1.SaveSettingsToFile('test.json');
end;
procedure TForm33.Button2Click(Sender: TObject);
begin
TMSFNCGrid1.BeginUpdate;
TMSFNCGrid1.LoadSettingsFromFile('test.json');
TMSFNCGrid1.EndUpdate;
end;
procedure TForm33.DoReadCustomProperty(AObject: TObject; APropertyName: string;
APropertyKind: TTypeKind; AReader: TTMSFNCJSONReader; var ACanRead: Boolean);
var
n: string;
v: string;
begin
if (AObject = TMSFNCGrid1) and (APropertyName = 'Adapter') then //NewProperty comes after Adapter
begin
ACanRead := False;
AReader.SkipValue;
n := AReader.ReadName; //NewProperty
v := AReader.ReadString; //value
end;
end;
procedure TForm33.DoWriteCustomProperty(AObject: TObject; APropertyName: string;
APropertyKind: TTypeKind; AWriter: TTMSFNCJSONWriter; var ACanWrite: Boolean);
begin
if (AObject = TMSFNCGrid1) and (APropertyName = 'AdaptToStyle') then //NewProperty comes before AdaptToStyle
begin
AWriter.WriteName('NewProperty');
AWriter.WriteString('Value');
end;
end;
procedure TForm33.FormCreate(Sender: TObject);
begin
TTMSFNCPersistence.OnCustomWriteProperty := DoWriteCustomProperty;
TTMSFNCPersistence.OnCustomReadProperty := DoReadCustomProperty;
TMSFNCGrid1.LinearFill;
end;
end.