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

📄 unit4.pas

📁 西门子与计算机通讯程序包括源代码 程序说明 控件 及控件使用手册 使用西门子prodave 控件 这是第一版
💻 PAS
字号:
unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBCtrls, Grids, DBGrids, ADODB, ExtCtrls, StdCtrls, Mask,
  TeEngine, Series,  Chart, DbChart, ComCtrls, Buttons, comobj, TeeProcs,
  ExtDlgs;

type
  TForm4 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    ADOConnection1: TADOConnection;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    DataSource1: TDataSource;
    Panel3: TPanel;
    Panel4: TPanel;
    Button1: TButton;
    ADODataSet1: TADODataSet;
    Button2: TButton;
    DBChart1: TDBChart;
    Series1: TLineSeries;
    Series2: TLineSeries;
    Series3: TLineSeries;
    Series4: TLineSeries;
    Series5: TLineSeries;
    Series6: TLineSeries;
    Series7: TLineSeries;
    Series8: TLineSeries;
    Series9: TLineSeries;
    Series10: TLineSeries;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Button3: TButton;
    ADOQuery1: TADOQuery;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    OpenDialog1: TOpenDialog;
    Button8: TButton;
    Button9: TButton;
    SavePictureDialog1: TSavePictureDialog;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
  

  private
    { Private declarations }
     cb:array[1..25] of Tcheckbox;
     procedure xxxClick(Sender: TObject);
    
  public
    { Public declarations }
  end;

var
  Form4: TForm4;
  serrisnum:integer;
  fname,foldname:string;
implementation

uses scom;

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);
begin
      dbchart1.Visible:=false;
      dbgrid1.Visible:=true;
      panel4.Visible:=true;
      groupbox1.Visible:=false;
   
end;

procedure TForm4.FormCreate(Sender: TObject);

var
  needcreat:Boolean;
x:integer;

cat:Variant;
sqlstring:string;
my_adoquery:TADOquery;
begin
 needcreat:=False;
 ADOConnection1.Connected:=false;
 ADODataSet1.Active:=False;
 ADOQuery1.Active:=false;

 
 serrisnum:=dbchart1.SeriesList.Count;
for   x:=1 to serrisnum do
begin
    cb[x]:=Tcheckbox.Create(self) ;
    cb[x].Parent := groupbox1 ;
    cb[x].Width := 85 ;
    cb[x].Height := 20 ;
    cb[x].Top := 10+x*20 ;
    cb[x].Left := 10 ;
    cb[x].Caption:=format('系列%d',[x]);
    cb[x].OnClick:=xxxClick;
    cb[x].Tag:=x;
    cb[x].Checked:=true;

end;

     groupbox1.Width :=100;
     groupbox1.Height:=15+x*20+30;
     dbchart1.Visible:=false;
     dbgrid1.Visible:=true;
     panel4.Visible:=true;
     groupbox1.Visible:=false;




if not DirectoryExists(application.GetNamePath+'data') then   //二次目录存在否
       CreateDirectory(PChar(application.GetNamePath+'data'),nil);    //创建目录
       foldname:= application.GetNamePath+'data/'+'data.mdb';
       fname:=application.GetNamePath+'data/'+FormatdateTime('yy/mm/dd/hh.nn.ss',now)+'db.mdb';
  if Fileexists(foldname) then              //判断是否建立新数据库
  begin
        if Application.MessageBox('旧data数据库已存在!!!' + #13#10 +
          '是否创建新数据库', '警告', MB_YESNO + MB_DEFBUTTON2 + MB_TOPMOST) =
          IDNO then
        begin
          fname:=foldname;
        end
        else
        begin
          needcreat:=True;

        end
   end
   else
   begin
     needcreat:=True;
     fname:=foldname;
   end;
if needcreat=True then
     begin
         if Fileexists(fname) then
           begin
               showmessage('数据库已经存在,请另外取名!');
               exit;
           end ;
         try
           cat:=CreateOleObject('ADOX.Catalog');      //创建数据库类
           cat.Create(Format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s',[fname]));
           cat:=Unassigned;
         except
           showmessage('数据创建失败!');
         end;
         try
             my_adoquery:=Tadoquery.Create(self);    //创建adoquery组建
             sqlstring:='create table db(状态 int ,日期 date,数据1 int,数据2 int,数据3 int,数据4 int,数据5 int,数据6 int,数据7 int,数据8 int,数据9 int,数据10 int)';
             my_adoquery.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+fname+';';
             my_adoquery.SQL.Clear ;
             my_adoquery.SQL.Add(sqlstring);
             my_adoquery.ExecSQL;
             my_adoquery.Destroy;
            // showmessage('创建成功!');
         except
          showmessage( '创建数据表失败!');
         end;
      end; //creat end


Form4.Caption:=fname;
Form4.Text:=fname;



    ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+fname+';Persist Security Info=False '  ;
    ADOConnection1.Open;
    if not ADOConnection1.Connected then
         showmessage('数据库连接不成功,请重新启动程序新建一数据库');     { connection unsuccessful };

     ADOConnection1.Connected:=True;
       Sleep(1000);
     ADODataSet1.CommandText:=' select * from  db';
     ADODataSet1.Active:=True;
     ADOQuery1.Active:=True;

    BringWindowToTop (Application.handle);

end;

procedure TForm4.Button2Click(Sender: TObject);
begin
     dbchart1.Visible:=true;
     dbgrid1.Visible:=false;
     panel4.Visible:=false;
     groupbox1.Visible:=true;
     DBChart1.BufferedDisplay:=True;
end;

procedure TForm4.xxxClick(Sender: TObject);

Begin
   if tcheckbox(sender).Checked=false then
    begin
      label1.Caption:='false'+inttostr(tcheckbox(sender).Tag);
     // dbchart1.Series
      dbchart1.Series[ tcheckbox(sender).Tag-1].Active:=false;
      cb[tcheckbox(sender).Tag].Caption:=format('系列%d不显示',[ tcheckbox(sender).Tag]);
    end
   else
   begin
      label1.Caption:='true'+inttostr(tcheckbox(sender).Tag) ;
      dbchart1.Series[ tcheckbox(sender).Tag-1].Active:=true;
      cb[tcheckbox(sender).Tag].Caption:=format('系列%d显示',[ tcheckbox(sender).Tag]);
   end

End;

procedure TForm4.Button3Click(Sender: TObject);
begin
form4.DBChart1.AutoRefresh:=False;
form4.DBGrid1.Enabled:=False;
DBChart1.Enabled:=False;
Form4.Close;

end;

procedure TForm4.Button4Click(Sender: TObject);
begin
ADODataSet1.Active:=False;
ADODataSet1.CommandText:='select * from  db ' ;
ADODataSet1.Active:=True;
end;

procedure TForm4.Button5Click(Sender: TObject);
begin

ADODataSet1.Active:=False;
ADODataSet1.CommandText:='select * from  db where 状态=0' ;
ADODataSet1.Active:=True;
end;

procedure TForm4.Button7Click(Sender: TObject);

begin
ADODataSet1.Active:=False;
try
with ADOQuery1 do
begin
  Close;
  SQL.Clear  ;
  SQL.Add('Delete * from db');
  ExecSQL;
  Close;
end;

finally
ADODataSet1.Active:=True;
end;
end;

procedure TForm4.Button6Click(Sender: TObject);
begin
ADODataSet1.Active:=False;
ADODataSet1.CommandText:='select * from  db where 状态<>0' ;
ADODataSet1.Active:=True;



end;

procedure TForm4.Button8Click(Sender: TObject);
begin
dbchart1.RefreshData;
DBChart1.Refresh;
end;

procedure TForm4.Button9Click(Sender: TObject);
begin
if
 SavePictureDialog1.Execute then
DBChart1.SaveToMetafileEnh(savepicturedialog1.FileName);
end;

end.

⌨️ 快捷键说明

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