fpspreadsheet: Beginning with infrastructure for merging of cells

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3534 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2014-09-09 15:51:56 +00:00
parent d202dc7917
commit e277e09850
4 changed files with 287 additions and 3 deletions

View File

@ -71,6 +71,8 @@ type
AcNew: TAction;
AcAddColumn: TAction;
AcAddRow: TAction;
AcMergeCells: TAction;
AcUnmergeCells: TAction;
AcViewInspector: TAction;
AcWordwrap: TAction;
AcVAlignDefault: TAction;
@ -153,6 +155,9 @@ type
MenuItem64: TMenuItem;
MenuItem65: TMenuItem;
MenuItem66: TMenuItem;
MenuItem67: TMenuItem;
MenuItem68: TMenuItem;
MenuItem69: TMenuItem;
mnuInspector: TMenuItem;
mnuView: TMenuItem;
MnuFmtDateTimeMSZ: TMenuItem;
@ -253,12 +258,14 @@ type
procedure AcFontStyleExecute(Sender: TObject);
procedure AcHorAlignmentExecute(Sender: TObject);
procedure AcIncDecDecimalsExecute(Sender: TObject);
procedure AcMergeCellsExecute(Sender: TObject);
procedure AcNewExecute(Sender: TObject);
procedure AcNumFormatExecute(Sender: TObject);
procedure AcOpenExecute(Sender: TObject);
procedure AcQuitExecute(Sender: TObject);
procedure AcSaveAsExecute(Sender: TObject);
procedure AcTextRotationExecute(Sender: TObject);
procedure AcUnmergeCellsExecute(Sender: TObject);
procedure AcVertAlignmentExecute(Sender: TObject);
procedure AcViewInspectorExecute(Sender: TObject);
procedure AcWordwrapExecute(Sender: TObject);
@ -528,6 +535,11 @@ begin
end;
end;
procedure TForm1.AcMergeCellsExecute(Sender: TObject);
begin
WorksheetGrid.MergeCells;
end;
procedure TForm1.AcNewExecute(Sender: TObject);
begin
WorksheetGrid.NewWorkbook(26, 100);
@ -609,6 +621,11 @@ begin
UpdateTextRotationActions;
end;
procedure TForm1.AcUnmergeCellsExecute(Sender: TObject);
begin
WorksheetGrid.UnmergeCells;
end;
procedure TForm1.AcVertAlignmentExecute(Sender: TObject);
var
vert_align: TsVertAlignment;
@ -968,6 +985,7 @@ var
i: Integer;
s: String;
cb: TsCellBorder;
r1,r2,c1,c2: Cardinal;
begin
with CellInspector do begin
TitleCaptions[0] := 'Properties';
@ -1060,6 +1078,13 @@ begin
if (ACell=nil) or not (uffNumberFormat in ACell^.UsedFormattingFields)
then Strings.Add('NumberFormatStr=')
else Strings.Add('NumberFormatStr=' + ACell^.NumberFormatStr);
if (ACell=nil) or (ACell^.MergedNeighbors = []) then
Strings.Add('Not merged=')
else begin
WorksheetGrid.Worksheet.FindMergedRange(ACell, r1, c1, r2, c2);
Strings.Add('Belongs to merged range=' + GetCellRangeString(r1, c1, r2, c2));
end;
end;
end;
end;