Added: EditFormat property to FloatEdit components

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2834 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
jujibo
2013-11-08 12:52:19 +00:00
parent 4f5803ff74
commit 8023e253b0
2 changed files with 25 additions and 4 deletions

View File

@@ -33,6 +33,7 @@ type
TJDBLabeledFloatEdit = class(TCustomLabeledEdit)
private
fFormat: string;
fEFormat: string;
FDataLink: TFieldDataLink;
fDecimales: integer;
@@ -77,6 +78,7 @@ type
published
property DisplayFormat: string read getFormat write setFormat;
property EditFormat: string read fEFormat write fEFormat;
property DataField: string read GetDataField write SetDataField;
property DataSource: TDataSource read GetDataSource write SetDataSource;
property Decimals: integer read getDecimals write setDecimals;
@@ -149,6 +151,9 @@ begin
begin
if not Focused then
formatInput
else
if Length(EditFormat) > 0 then
Caption := FormatFloat(EditFormat, FDataLink.Field.AsFloat)
else
Caption := FloatToStr(FDataLink.Field.AsFloat);
end
@@ -179,7 +184,10 @@ begin
theValue := StrToFloat(Text);
if fDecimales > 0 then
theValue := ScaleTo(theValue, fDecimales);
Text := FloatToStr(theValue);
if Length(EditFormat) > 0 then
Caption := FormatFloat(EditFormat, theValue)
else
Caption := FloatToStr(theValue);
FDataLink.Field.Value := theValue;
end
else
@@ -187,6 +195,9 @@ begin
if FDataLink.Field <> nil then
begin
ShowMessage(Format(SInvalidNumber, [Caption]));
if Length(EditFormat) > 0 then
Caption := FormatFloat(EditFormat, FDataLink.Field.AsFloat)
else
Caption := FloatToStr(FDataLink.Field.AsFloat);
SelectAll;
SetFocus;
@@ -356,6 +367,9 @@ begin
if not FieldIsEditable(Field) or IsReadOnly then
exit;
if FDataLink.Field <> nil then
if Length(EditFormat) > 0 then
Caption := FormatFloat(EditFormat, FDataLink.Field.AsFloat)
else
Caption := FloatToStr(FDataLink.Field.AsFloat); //FDataLink.Field.AsString;
inherited DoEnter;
end;
@@ -369,6 +383,7 @@ begin
FDataLink.OnDataChange := @DataChange;
FDataLink.OnUpdateData := @UpdateData;
FDataLInk.OnActiveChange := @ActiveChange;
fEFormat:= '';
// Set default values
//fDecimales := 2;
//fFormat := '0.00';

View File

@@ -34,6 +34,7 @@ type
{ Private declarations }
theValue: double;
fFormat: string;
fEFormat: string;
fDecimals: integer;
function getDecimals: integer;
function getFormat: string;
@@ -58,6 +59,7 @@ type
published
{ Published declarations }
property DisplayFormat: string read getFormat write setFormat;
property EditFormat: string read fEFormat write fEFormat;
property Decimals: integer read getDecimals write setDecimals;
property Value: double read getValue write setValue;
@@ -187,6 +189,9 @@ begin
inherited DoEnter;
if ReadOnly then
exit;
if Length(EditFormat) > 0 then
Text := FormatFloat(EditFormat, theValue)
else
Text := FloatToStr(theValue);
SelectAll;
end;
@@ -223,6 +228,7 @@ constructor TJLabeledFloatEdit.Create(TheOwner: TComponent);
begin
inherited Create(TheOwner);
Text := '';
fEFormat := '';
fFormat := '#,0.00';
fDecimals := 2;
formatInput;