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 Top = 2
Width = 755 Width = 755
Align = alClient Align = alClient
OnEditingDone = EdFormulaEditingDone
TabOrder = 0 TabOrder = 0
end end
object EdCellAddress: TEdit object EdCellAddress: TEdit

View File

@ -250,6 +250,7 @@ type
procedure CbShowGridLinesClick(Sender: TObject); procedure CbShowGridLinesClick(Sender: TObject);
procedure CbBackgroundColorGetColors(Sender: TCustomColorBox; Items: TStrings); procedure CbBackgroundColorGetColors(Sender: TCustomColorBox; Items: TStrings);
procedure EdCellAddressEditingDone(Sender: TObject); procedure EdCellAddressEditingDone(Sender: TObject);
procedure EdFormulaEditingDone(Sender: TObject);
procedure EdFrozenColsChange(Sender: TObject); procedure EdFrozenColsChange(Sender: TObject);
procedure EdFrozenRowsChange(Sender: TObject); procedure EdFrozenRowsChange(Sender: TObject);
procedure FontComboBoxSelect(Sender: TObject); procedure FontComboBoxSelect(Sender: TObject);
@ -662,6 +663,15 @@ begin
end; end;
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); procedure TForm1.EdFrozenColsChange(Sender: TObject);
begin begin
WorksheetGrid.FrozenCols := EdFrozenCols.Value; WorksheetGrid.FrozenCols := EdFrozenCols.Value;
@ -808,7 +818,19 @@ begin
if s <> '' then if s <> '' then
EdFormula.Text := s EdFormula.Text := s
else else
EdFormula.Text := WorksheetGrid.Worksheet.ReadAsUTF8Text(cell); 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 end else
EdFormula.Text := ''; EdFormula.Text := '';