You've already forked lazarus-ccr
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:
@ -402,6 +402,7 @@ object Form1: TForm1
|
||||
Top = 2
|
||||
Width = 755
|
||||
Align = alClient
|
||||
OnEditingDone = EdFormulaEditingDone
|
||||
TabOrder = 0
|
||||
end
|
||||
object EdCellAddress: TEdit
|
||||
|
@ -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 := '';
|
||||
|
||||
|
Reference in New Issue
Block a user