📄 u_form1.~pas
字号:
unit U_Form1;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Grids, StdCtrls, OleCtrls, Menus,
ExtCtrls, TeEngine, Series, TeeProcs, Chart, ComCtrls;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
Open1: TMenuItem;
Save1: TMenuItem;
SaveAs1: TMenuItem;
N1: TMenuItem;
Exit1: TMenuItem;
Help1: TMenuItem;
About1: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Chart1: TChart;
Panel1: TPanel;
UpdateButton: TButton;
ExitButton: TButton;
Splitter1: TSplitter;
StringGrid1: TStringGrid;
Series1: TBarSeries;
Series2: TBarSeries;
Series3: TBarSeries;
Series4: TBarSeries;
StatusBar1: TStatusBar;
procedure FormCreate(Sender: TObject);
procedure UpdateButtonClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Open1Click(Sender: TObject);
procedure Save1Click(Sender: TObject);
procedure SaveAs1Click(Sender: TObject);
procedure About1Click(Sender: TObject);
procedure ExitButtonClick(Sender: TObject);
private
PointNum,CurveNum:byte;
Modified: Boolean;
CurrentFile: string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
I, J: Integer;
begin
PointNum:=11;
CurveNum:=5;
with StringGrid1 do
begin
Cells [0, 0]:='轮次\枪手';
ColCount:=PointNum ;
RowCount:=CurveNum;
{fills the fixed column and row,
and the chart series names}
for I := 1 to PointNum do
Cells [I, 0] := Format ('第%d人', [I]);
for J := 1 to CurveNum-1 do
begin
Cells [0, J] := Format ('第%d轮', [J]);
Chart1.Series [J-1].Title := Format ('第%d轮', [J]);
end;
{fills the grid with random values}
Randomize;
for I := 1 to PointNum do
for J := 1 to CurveNum do
Cells [I, J] :=IntToStr(Random(100));
end; // with
UpdateButtonClick (self);
Modified:=false;
StatusBar1.SimplePanel:=true;
StatusBar1.SimpleText:='还没有调入有效的资料! ';
end;
procedure TForm1.UpdateButtonClick(Sender: TObject);
var
I, J: Integer;
begin
for I := 1 to CurveNum-1 do
begin
Chart1.Series [I-1].Clear;
for J :=1 to PointNum-1 do
begin
Chart1.Series [I-1].Add(
StrToInt (StringGrid1.Cells [J, I]),
Format('第%d人',[J]), Chart1.Series [I-1].SeriesColor);
end;
end;
Modified := True;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
Code: Word;
begin
if Modified then
begin
Code := MessageDlg (
'数据已经改变, 需要保存吗?',mtConfirmation, mbYesNoCancel, 0);
if Code = idYes then
Save1Click (self);
if Code = idCancel then
CanClose := False
else
CanClose := True;
end
else
CanClose := True;
end;
procedure TForm1.Open1Click(Sender: TObject);
var
LoadStream: TFileStream;
I, J, Value: Integer;
begin
if OpenDialog1.Execute then
begin
CurrentFile := OpenDialog1.Filename;
Caption := '图表 [' + CurrentFile + ']';
{load from the current file}
LoadStream := TFileStream.Create (
CurrentFile, fmOpenRead);
try
{read the value of each grid element}
for I := 1 to 5 do
for J := 1 to 4 do
begin
LoadStream.Read (Value, sizeof (Integer));
StringGrid1.Cells [I, J] := IntToStr(Value);
end;
LoadStream.Read (Value, sizeof (Integer));
finally
LoadStream.Free;
end;
UpdateButtonClick (self);
Modified := False;
end;
StatusBar1.SimpleText:='当前文件:'+CurrentFile;
end;
procedure TForm1.Save1Click(Sender: TObject);
var
SaveStream: TFileStream;
I, J, Value: Integer;
begin
if Modified then
if CurrentFile = '' then
{call save as}
SaveAs1Click (self)
else
begin
{save to the current file}
SaveStream := TFileStream.Create (
CurrentFile, fmOpenWrite or fmCreate);
try
{write the value of each grid element}
for I := 1 to PointNum-1 do
for J := 1 to CurveNum-1 do
begin
Value := StrToIntDef (Trim (
StringGrid1.Cells [I, J]), 0);
SaveStream.Write (Value, sizeof (Integer));
end;
SaveStream.Write (Value, sizeof (Integer));
Modified := False;
finally
SaveStream.Free;
end;
end;
end;
procedure TForm1.SaveAs1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
CurrentFile := SaveDialog1.Filename;
Caption := 'Graph 4 [' + CurrentFile + ']';
{call save}
Modified := True;
Save1Click (self);
end;
end;
procedure TForm1.About1Click(Sender: TObject);
begin
MessageDlg ('图表结合文件流操作的演示程序',
mtInformation, [mbOk], 0);
end;
procedure TForm1.ExitButtonClick(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -