fpspreadsheet / spready demo: Formula edit line now shows unformatted number, like Excel and Calc do. A value edited in the formula edit line is now transferred to the worksheet (ignoring formulas so far).

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3226 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2014-06-23 14:32:44 +00:00
parent 1f2044e246
commit ebfabd1010
2 changed files with 24 additions and 1 deletions

View File

@ -402,6 +402,7 @@ object Form1: TForm1
Top = 2
Width = 755
Align = alClient
OnEditingDone = EdFormulaEditingDone
TabOrder = 0
end
object EdCellAddress: TEdit

View File

@ -250,6 +250,7 @@ type
procedure CbShowGridLinesClick(Sender: TObject);
procedure CbBackgroundColorGetColors(Sender: TCustomColorBox; Items: TStrings);
procedure EdCellAddressEditingDone(Sender: TObject);
procedure EdFormulaEditingDone(Sender: TObject);
procedure EdFrozenColsChange(Sender: TObject);
procedure EdFrozenRowsChange(Sender: TObject);
procedure FontComboBoxSelect(Sender: TObject);
@ -662,6 +663,15 @@ begin
end;
end;
procedure TForm1.EdFormulaEditingDone(Sender: TObject);
var
r, c: Cardinal;
begin
r := WorksheetGrid.GetWorksheetRow(WorksheetGrid.Row);
c := WorksheetGrid.GetWorksheetCol(WorksheetGrid.Col);
WorksheetGrid.Worksheet.WriteCellValueAsString(r, c, EdFormula.Text);
end;
procedure TForm1.EdFrozenColsChange(Sender: TObject);
begin
WorksheetGrid.FrozenCols := EdFrozenCols.Value;
@ -807,8 +817,20 @@ begin
s := WorksheetGrid.Worksheet.ReadFormulaAsString(cell);
if s <> '' then
EdFormula.Text := s
else
case cell^.ContentType of
cctNumber:
EdFormula.Text := FloatToStr(cell^.NumberValue);
cctDateTime:
if cell^.DateTimeValue < 1.0 then
EdFormula.Text := FormatDateTime('tt', cell^.DateTimeValue)
else
EdFormula.Text := FormatDateTime('c', cell^.DateTimeValue);
cctUTF8String:
EdFormula.Text := cell^.UTF8StringValue;
else
EdFormula.Text := WorksheetGrid.Worksheet.ReadAsUTF8Text(cell);
end;
end else
EdFormula.Text := '';