mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-06 11:38:00 +02:00
133 lines
3.3 KiB
ObjectPascal
133 lines
3.3 KiB
ObjectPascal
{ JSON data viewer : collect data for new integer
|
|
|
|
Copyright (C) 2010 Michael Van Canneyt michael@freepascal.org
|
|
|
|
This source is free software; you can redistribute it and/or modify it under
|
|
the terms of the GNU General Public License as published by the Free
|
|
Software Foundation; either version 2 of the License, or (at your option)
|
|
any later version.
|
|
|
|
This code is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
details.
|
|
|
|
A copy of the GNU General Public License is available on the World Wide Web
|
|
at <http://www.gnu.org/copyleft/gpl.html>. You can also obtain it by writing
|
|
to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
|
|
Boston, MA 02110-1335, USA.
|
|
}
|
|
unit frmnewinteger;
|
|
|
|
{$mode objfpc}
|
|
|
|
interface
|
|
|
|
uses
|
|
SysUtils, Forms, Controls, Dialogs, ButtonPanel, StdCtrls, ExtCtrls, fpjson;
|
|
|
|
type
|
|
|
|
{ TNewNumberForm }
|
|
|
|
TNewNumberForm = class(TForm)
|
|
BPNewNumber: TButtonPanel;
|
|
EName: TEdit;
|
|
EValue: TEdit;
|
|
Label1: TLabel;
|
|
Label2: TLabel;
|
|
RGType: TRadioGroup;
|
|
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
|
private
|
|
function GetAllowName: Boolean;
|
|
function GetAsFloat: Double;
|
|
function GetAsInt64: Integer;
|
|
function GetAsInteger: Integer;
|
|
function GetMemberName: String;
|
|
function GetNumberType: TJSONNumberType;
|
|
procedure SetAllowName(const AValue: Boolean);
|
|
procedure SetMemberName(const AValue: String);
|
|
procedure SetNumberType(const AValue: TJSONNumberType);
|
|
public
|
|
Property AllowName: Boolean Read GetAllowName Write SetAllowName;
|
|
Property MemberName : String Read GetMemberName Write SetMemberName;
|
|
Property NumberType : TJSONNumberType Read GetNumberType Write SetNumberType;
|
|
Property AsInteger : Integer Read GetAsInteger;
|
|
Property AsInt64 : Integer Read GetAsInt64;
|
|
Property AsFLoat : Double Read GetAsFloat;
|
|
end;
|
|
|
|
var
|
|
NewNumberForm: TNewNumberForm;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
{ TNewNumberForm }
|
|
|
|
procedure TNewNumberForm.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
|
begin
|
|
CanClose:=(ModalResult<>mrOK);
|
|
If not CanClose then
|
|
try
|
|
Case NumberType of
|
|
ntFloat : GetAsFloat;
|
|
ntInteger : GetAsInteger;
|
|
ntInt64 : GetAsInt64;
|
|
end;
|
|
CanClose:=(Not AllowName) or (EName.Text<>'');
|
|
except
|
|
on E : Exception do
|
|
ShowMessage(E.Message)
|
|
end;
|
|
end;
|
|
|
|
function TNewNumberForm.GetAllowName: Boolean;
|
|
begin
|
|
Result:=EName.Enabled;
|
|
end;
|
|
|
|
function TNewNumberForm.GetAsFloat: Double;
|
|
begin
|
|
Result:=StrToFloat(EValue.Text);
|
|
end;
|
|
|
|
function TNewNumberForm.GetAsInt64: Integer;
|
|
begin
|
|
Result:=StrToInt64(EValue.Text);
|
|
end;
|
|
|
|
function TNewNumberForm.GetAsInteger: Integer;
|
|
begin
|
|
Result:=StrToInt(EValue.Text);
|
|
end;
|
|
|
|
function TNewNumberForm.GetMemberName: String;
|
|
begin
|
|
Result:=EName.Text;
|
|
end;
|
|
|
|
function TNewNumberForm.GetNumberType: TJSONNumberType;
|
|
begin
|
|
Result:=TJSONNumberType(RGType.ItemIndex);
|
|
end;
|
|
|
|
procedure TNewNumberForm.SetAllowName(const AValue: Boolean);
|
|
begin
|
|
EName.Enabled:=AValue;
|
|
end;
|
|
|
|
procedure TNewNumberForm.SetMemberName(const AValue: String);
|
|
begin
|
|
EName.Text:=AValue;
|
|
end;
|
|
|
|
procedure TNewNumberForm.SetNumberType(const AValue: TJSONNumberType);
|
|
begin
|
|
RGType.ItemIndex:=Ord(Avalue);
|
|
end;
|
|
|
|
end.
|
|
|