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

📄 saveas.pas

📁 单片机典型系统设计实例精讲 第4章 PC机与数控机床通信系统
💻 PAS
字号:
{
=====================================================================
* 软件名称:PC与数控机床通信程序
* 单元名称:导出文件
* 单元作者:彭为 (pwzyp@fjsm.net)
* 备    注:用到了线程进行发送
* 开发平台:PWin2000 SERVER + Delphi 7.0
* 兼容测试:PWin9X/2000/XP + Delphi 6/7
* 采用控件:Raize 3.12 ,SPCOMM
* 修改记录:V1.0  by pengwei
=====================================================================
}unit SaveAs;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, RzTabs, RzButton, StdCtrls, RzLabel, RzBorder,
  Grids, RzPrgres, ScktComp, DB, ADODB;

type
  TSaveAsFrm = class(TForm)
    Panel1: TPanel;
    pgcMain: TRzPageControl;
    TabSheet1: TRzTabSheet;
    TabSheet2: TRzTabSheet;
    Image1: TImage;
    Panel2: TPanel;
    btnFinish: TRzBitBtn;
    btnNext: TRzBitBtn;
    btnPrior: TRzBitBtn;
    RzLabel1: TRzLabel;
    RzLabel2: TRzLabel;
    RzLabel3: TRzLabel;
    Image2: TImage;
    RzBorder1: TRzBorder;
    RzLabel4: TRzLabel;
    RzLabel5: TRzLabel;
    RzLabel6: TRzLabel;
    RzLabel8: TRzLabel;
    RzLabel13: TRzLabel;
    edtUser: TEdit;
    edtMemo: TEdit;
    cboChannel: TComboBox;
    RzBorder2: TRzBorder;
    Query: TADOQuery;
    RzLabel7: TRzLabel;
    RzLabel9: TRzLabel;
    edtFile: TEdit;
    RzBitBtn1: TRzBitBtn;
    TabSheet3: TRzTabSheet;
    Image3: TImage;
    RzLabel10: TRzLabel;
    RzLabel11: TRzLabel;
    RzBorder3: TRzBorder;
    RzLabel12: TRzLabel;
    SaveDialog1: TSaveDialog;
    procedure FormCreate(Sender: TObject);
    procedure btnNextClick(Sender: TObject);
    procedure btnPriorClick(Sender: TObject);
    procedure btnFinishClick(Sender: TObject);
    procedure RzBitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    Fid: Integer;
    FileName, sPath: string;
    Channel, iLength: Integer;
    { Private declarations }
  public
    procedure showForm(const id: Integer);
    constructor Create(const id: Integer); reintroduce; overload;
    { Public declarations }
  end;

var
  SaveAsFrm: TSaveAsFrm;

implementation

uses Include, Mainfrm, ConfigFrm;

{$R *.dfm}

procedure TSaveAsFrm.FormCreate(Sender: TObject);
begin
  Caption := sFileSaveasCaption;
end;

procedure TSaveAsFrm.btnNextClick(Sender: TObject);
var
  sList: TStrings;
begin
  case pgcmain.activepageindex of
    0:
      begin
        cboChannel.Clear;
        cboChannel.Items := Config.ChannelList;
        edtFile.Clear;

        with Query do
        begin
          Close;
          SQL.Clear;
          SQL.Add('Select * from Data where id=' + IntToStr(Fid));
          Open;
          FileName := FieldByName('filename').AsString;
          if not FileExists(FileName) then //如果文件存在的话
          begin //如果文件不存在
            MessageBox(Self.Handle, PChar(sNotFile), PChar(sTitleErr), MB_OK +
              MB_ICONERROR);
            exit;
          end;
          edtUser.Text := FieldByName('Author').AsString;
          edtMemo.Text := FieldByName('sMemo').AsString;
          Channel := FieldByName('channel').AsInteger;
          cboChannel.ItemIndex := Channel - 1;
          Close;
        end;
      end;
    1:
      begin
        sPath := Trim(edtFile.Text);
        if sPath = '' then
        begin
          MessageBox(Self.Handle, PChar(sNotSaveasfile), PChar(sTitleInfo), MB_OK
            + mb_iconInformation);
          Exit;
        end;

        sList := TStringList.Create;
        try
          sList.LoadFromFile(FileName);
          iLength := Length(sList.Text);
          Application.ProcessMessages;
          sList.SaveToFile(sPath);
        finally
          sList.Free;
        end;
        btnFinish.Caption := '完成';
      end;
  else
    ;
  end;

  pgcMain.ActivePageIndex := pgcMain.ActivePageIndex + 1;
  btnPrior.Enabled := True;
  if pgcMain.ActivePageIndex = pgcMain.PageCount - 1 then
    btnNext.Enabled := False;
end;

procedure TSaveAsFrm.btnPriorClick(Sender: TObject);
begin
  pgcMain.ActivePageIndex := pgcMain.ActivePageIndex - 1;
  btnNext.Enabled := True;
  if pgcMain.ActivePageIndex = 0 then
    btnPrior.Enabled := False;
end;

procedure TSaveAsFrm.showForm(const id: Integer);
begin
  if SaveAsFrm = nil then
    SaveAsFrm := TSaveAsFrm.Create(id);

  SaveAsFrm.ShowModal;
end;

procedure TSaveAsFrm.btnFinishClick(Sender: TObject);
begin
  Close;
end;

procedure TSaveAsFrm.RzBitBtn1Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
  begin
    edtFile.Text := SaveDialog1.FileName;
  end;
end;

procedure TSaveAsFrm.FormShow(Sender: TObject);
begin

  pgcMain.ActivePageIndex := 0;
  pgcMain.ActivePageIndex := 0;
  btnPrior.Enabled := False;
  btnNext.Enabled := True;
  btnFinish.Caption := '取消';

end;

constructor TSaveAsFrm.Create(const id: Integer);
begin
  inherited Create(Application);
  Fid := id;
end;

end.

⌨️ 快捷键说明

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