lazarus/components/sqldbrest/design/frasqldbrestparamedit.pp
2023-03-19 17:37:25 +01:00

117 lines
2.4 KiB
ObjectPascal

unit frasqldbrestparamedit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, StdCtrls, Spin, ExtCtrls, db, sqldbschemaedittools, sqldbrestschema;
type
{ TSQLDBRestParameterEditFrame }
TSQLDBRestParameterEditFrame = class(TBaseEditFrame)
CBDataType: TComboBox;
LDefaultValue: TLabel;
lDatatype: TLabel;
edtDefaultValue: TEdit;
EName: TEdit;
LName: TLabel;
private
FParam: TSQLDBRestParam;
procedure SetParam(AValue: TSQLDBRestParam);
Protected
Procedure SetFrameData(aData: TObject); override;
public
Constructor Create(aOwner : TComponent); override;
Function Modified : Boolean; override;
Procedure SaveData; override;
Procedure ShowParam;
Function FrameCaption : String; override;
Property Param : TSQLDBRestParam Read FParam Write SetParam;
end;
implementation
uses typinfo;
{$R *.lfm}
{ TSQLDBRestParameterEditFrame }
procedure TSQLDBRestParameterEditFrame.SetParam(AValue: TSQLDBRestParam);
begin
if FParam=AValue then Exit;
FParam:=AValue;
ShowParam;
end;
procedure TSQLDBRestParameterEditFrame.SetFrameData(aData: TObject);
begin
Param:=aData as TSQLDBRestParam;
end;
constructor TSQLDBRestParameterEditFrame.Create(aOwner: TComponent);
Var
FT : TFieldType;
begin
inherited Create(aOwner);
CBDataType.Items.Clear;
For FT in TFieldType do
if FT<>ftUnknown then
CBDataType.Items.Add(GetEnumName(TypeInfo(TFieldType),Ord(FT)))
end;
function TSQLDBRestParameterEditFrame.Modified: Boolean;
begin
With FParam do
begin
Result:=(Name<>EName.Text) or
(DefaultValue<>edtDefaultValue.Text) or
(Ord(DataType)<>(CBDataType.ItemIndex+1));
end;
end;
procedure TSQLDBRestParameterEditFrame.SaveData;
begin
With FParam do
begin
Name:= EName.Text;
DefaultValue := edtDefaultValue.Text;
DataType := TFieldType(CBDataType.ItemIndex+1);
end;
end;
procedure TSQLDBRestParameterEditFrame.ShowParam;
begin
With FParam do
begin
EName.Text:=Name;
edtDefaultValue.Text:=DefaultValue;
CBDataType.ItemIndex:=Ord(DataType)-1;
end;
end;
function TSQLDBRestParameterEditFrame.FrameCaption: String;
begin
if FParam=Nil then
Result:=SUnknownObject
else
Result:=FParam.Name;
Result:=Format(SEditObject,[SParameter,Result]);
If Assigned(Resource) then
Result:=SResource+' '+Resource.ResourceName+' - '+Result;
end;
end.