Files
lazarus-ccr/components/fpspreadsheet/examples/fpsgrid/mainform.pas

96 lines
1.9 KiB
ObjectPascal
Raw Normal View History

unit mainform;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Menus,
fpspreadsheetgrid, fpspreadsheet, fpsallformats;
type
{ TForm1 }
TForm1 = class(TForm)
buttonPopulateGrid: TButton;
MainMenu1: TMainMenu;
mnuFile: TMenuItem;
mnuOpen: TMenuItem;
mnuQuit: TMenuItem;
mnuSaveAs: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
sWorksheetGrid1: TsWorksheetGrid;
procedure buttonPopulateGridClick(Sender: TObject);
procedure mnuOpenClick(Sender: TObject);
procedure mnuQuitClick(Sender: TObject);
procedure mnuSaveAsClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.buttonPopulateGridClick(Sender: TObject);
// Populate grid with some demo data
var
lWorksheet: TsWorksheet;
begin
lWorksheet := TsWorksheet.Create;
try
lWorksheet.WriteUTF8Text(2, 2, 'Algo');
sWorksheetGrid1.LoadFromWorksheet(lWorksheet);
finally
lWorksheet.Free;
end;
end;
procedure TForm1.mnuOpenClick(Sender: TObject);
// Loads first worksheet from file into grid
begin
if OpenDialog1.Execute then
begin
sWorksheetGrid1.LoadFromSpreadsheetFile(OpenDialog1.FileName);
end;
end;
procedure TForm1.mnuQuitClick(Sender: TObject);
begin
Close;
end;
procedure TForm1.mnuSaveAsClick(Sender: TObject);
// Saves sheet in grid to file, overwriting existing file
var
lWorkBook: TsWorkbook;
lWorkSheet:TsWorksheet;
begin
if SaveDialog1.Execute then
begin
lWorkBook := TsWorkBook.Create;
lWorkSheet := lWorkBook.AddWorksheet('Sheet1');
try
sWorksheetGrid1.SaveToWorksheet(lWorkSheet);
lWorkBook.WriteToFile(SaveDialog1.FileName,true);
finally
lWorkBook.Free;
end;
end;
end;
initialization
{$I mainform.lrs}
end.