⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 expform.pas

📁 Delphi高级开发指南是开发程序的好帮手
💻 PAS
字号:
unit ExpForm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Graph, ComCtrls, ColorGrd, StdCtrls, Buttons, ExtCtrls, ExptIntf,
  DdhGraph;

type
  TFormCeExp = class(TForm)
    Notebook1: TNotebook;
    BtnCancel: TBitBtn;
    BtnNext1: TBitBtn;
    BtnNext2: TBitBtn;
    BtnNext3: TBitBtn;
    BtnNextPt: TBitBtn;
    BtnApply: TBitBtn;
    DdhGraph1: TDdhGraph;
    Label1: TLabel;
    Label2: TLabel;
    EditDefText: TEdit;
    ButtonFont: TButton;
    Label3: TLabel;
    ColorGrid1: TColorGrid;
    Label4: TLabel;
    EditNPts: TEdit;
    UpDownNPts: TUpDown;
    LabelPt: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    EditText: TEdit;
    EditX: TEdit;
    EditY: TEdit;
    UpDownX: TUpDown;
    UpDownY: TUpDown;
    FontDialog1: TFontDialog;
    CheckBoxRemove: TCheckBox;
    BtnPrev5: TBitBtn;
    BtnPrevPt: TBitBtn;
    BtnPrev2: TBitBtn;
    BtnPrev3: TBitBtn;
    procedure ButtonFontClick(Sender: TObject);
    procedure BtnNext1Click(Sender: TObject);
    procedure BtnPrevClick(Sender: TObject);
    procedure BtnNext2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BtnNext3Click(Sender: TObject);
    procedure BtnNextPtClick(Sender: TObject);
    procedure BtnPrevPtClick(Sender: TObject);
    procedure BtnPrev5Click(Sender: TObject);
  private
    nTotPts, nCurPt: Integer;
  public
    procedure GetCurrentPt;
    procedure SetCurrentPt;
  end;

var
  FormCeExp: TFormCeExp;

implementation

{$R *.DFM}

procedure TFormCeExp.ButtonFontClick(Sender: TObject);
begin
  if FontDialog1.Execute then
    DdhGraph1.Font := FontDialog1.Font;
end;

procedure TFormCeExp.BtnNext1Click(Sender: TObject);
begin
  with Notebook1 do
    PageIndex := PageIndex + 1;
  DdhGraph1.DefaultText := EditDefText.Text;
end;

procedure TFormCeExp.BtnPrevClick(Sender: TObject);
begin
  with Notebook1 do
    PageIndex := PageIndex - 1;
end;

procedure TFormCeExp.BtnNext2Click(Sender: TObject);
begin
  with Notebook1 do
    PageIndex := PageIndex + 1;
  DdhGraph1.Color := ColorGrid1.BackGroundColor;
  DdhGraph1.LinesColor := ColorGrid1.ForeGroundColor;
end;

procedure TFormCeExp.FormCreate(Sender: TObject);
begin
  // go to first page
  Notebook1.PageIndex := 0;
end;

procedure TFormCeExp.BtnNext3Click(Sender: TObject);
var
  I: Integer;
begin
  // eventually remove existing points
  if CheckBoxRemove.Checked then
    DdhGraph1.Points.Clear;
  // add the new points
  for I := 1 to UpDownNPts.Position do
    DdhGraph1.Points.Add;
  // reset controls
  UpDownNPts.Position := 0;
  CheckBoxRemove.Checked := False;
  // set the total points and the current one
  nTotPts := DdhGraph1.Points.Count;
  nCurPt := 0;
  // get the data of the first point
  GetCurrentPt;
  // bug fix....
  UpDownX.Position := DdhGraph1.Points[0].X;
  UpDownY.Position := DdhGraph1.Points[0].Y;
  EditX.Text := IntToStr (UpDownX.Position);
  EditY.Text := IntToStr (UpDownY.Position);
  // move to next page
  with Notebook1 do
    PageIndex := PageIndex + 1;
end;

procedure TFormCeExp.GetCurrentPt;
begin
  // point number
  LabelPt.Caption := Format (
    'Editing Point %d of %d',
    [nCurPt + 1, nTotPts]);
  // point data
  EditText.Text := DdhGraph1.Points[nCurPt].Text;
  if EditText.Text = '' then
    EditText.Text := DdhGraph1.DefaultText +
      IntToStr (nCurPt + 1);
  UpDownX.Position := DdhGraph1.Points[nCurPt].X;
  UpDownY.Position := DdhGraph1.Points[nCurPt].Y;
end;

procedure TFormCeExp.SetCurrentPt;
begin
  // update the data...
  DdhGraph1.Points[nCurPt].Text := EditText.Text;
  DdhGraph1.Points[nCurPt].X := UpDownX.Position;
  DdhGraph1.Points[nCurPt].Y := UpDownY.Position;
end;

procedure TFormCeExp.BtnNextPtClick(Sender: TObject);
begin
  SetCurrentPt;
  // go to the next point...
  Inc (nCurPt);
  if nCurPt < nTotPts then
    GetCurrentPt
  else
    // ... or the next page
    with Notebook1 do
      PageIndex := PageIndex + 1;
end;

procedure TFormCeExp.BtnPrevPtClick(Sender: TObject);
begin
  SetCurrentPt;
  // go to the previous point...
  Dec (nCurPt);
  if nCurPt >= 0 then
    GetCurrentPt
  else
    // ... or the previous page
    with Notebook1 do
      PageIndex := PageIndex - 1;
end;

procedure TFormCeExp.BtnPrev5Click(Sender: TObject);
begin
  // update the points, which might
  // have changed in the DdhGraph
  nTotPts := DdhGraph1.Points.Count;
  nCurPt := nTotPts - 1;
  GetCurrentPt;
  with Notebook1 do
    PageIndex := PageIndex - 1;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -