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

@ -454,9 +454,9 @@ object Form1: TForm1
Height = 457
Top = 79
Width = 231
ActivePage = PgCellValue
ActivePage = PgProperties
Align = alRight
TabIndex = 0
TabIndex = 1
TabOrder = 6
OnChange = InspectorPageControlChange
object PgCellValue: TTabSheet
@ -1224,6 +1224,15 @@ object Form1: TForm1
Action = AcWordwrap
AutoCheck = True
end
object MenuItem67: TMenuItem
Caption = '-'
end
object MenuItem68: TMenuItem
Action = AcMergeCells
end
object MenuItem69: TMenuItem
Action = AcUnmergeCells
end
end
object mnuView: TMenuItem
Caption = 'View'
@ -2868,11 +2877,24 @@ object Form1: TForm1
OnExecute = AcAddRowExecute
end
object AcViewInspector: TAction
Category = 'View'
AutoCheck = True
Caption = 'Inspector'
Checked = True
OnExecute = AcViewInspectorExecute
end
object AcMergeCells: TAction
Category = 'Format'
Caption = 'Merge cells'
Hint = 'Merge selected cells'
OnExecute = AcMergeCellsExecute
end
object AcUnmergeCells: TAction
Category = 'Format'
Caption = 'Un-merge cells'
Hint = 'Disconnect merged cells'
OnExecute = AcUnmergeCellsExecute
end
end
object FontDialog: TFontDialog
MinFontSize = 0

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;