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

📄 main.~pas

📁 一个用来管理PLC和工控点地址内容和具体功能的数据库软件!可用在工程的数据管理上面!
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ExtCtrls, SUIForm, SUIMainMenu, SUIMgr, SUITabControl,
  SUIImagePanel, SUIGroupBox, SUIButton, StdCtrls, SUIComboBox, DB, ADODB,
  Grids, DBGrids, SUIEdit,SUIThemes, SUIDBCtrls, SUIMemo, SUIListBox,
  ToolWin, ComCtrls, SUIToolBar, SUIStatusBar, ImgList;

type
  TForm1 = class(TForm)
    suiThemeManager1: TsuiThemeManager;
    suiMainMenu1: TsuiMainMenu;
    Main1: TsuiForm;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    TabControl1: TsuiTabControl;
    FindBox: TsuiGroupBox;
    suiButton2: TsuiButton;
    ComboBox1: TsuiComboBox;
    ADOTable1: TADOTable;
    DataSource1: TDataSource;
    ADOConnection1: TADOConnection;
    OpenDialog1: TOpenDialog;
    N4: TMenuItem;
    N5: TMenuItem;
    FINDGroupBox: TsuiGroupBox;
    ADDRadio: TsuiRadioButton;
    NRRadio: TsuiRadioButton;
    ADDEdit: TsuiEdit;
    suiButton3: TsuiButton;
    N6: TMenuItem;
    XP1: TMenuItem;
    MAC1: TMenuItem;
    DEEP1: TMenuItem;
    NREdit: TsuiEdit;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    suiStatusBar1: TsuiStatusBar;
    suiToolBar1: TsuiToolBar;
    ImageList1: TImageList;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    Label10: TLabel;
    inputBox: TsuiGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    suiEdit2: TsuiEdit;
    suiEdit3: TsuiEdit;
    suiEdit4: TsuiEdit;
    suiEdit5: TsuiEdit;
    suiEdit6: TsuiEdit;
    suiEdit7: TsuiEdit;
    suiEdit8: TsuiEdit;
    NEWButton: TsuiButton;
    ADDButton: TsuiButton;
    DELButton: TsuiButton;
    suiEdit9: TsuiEdit;
    DBGrid1: TsuiDBGrid;
    Timer1: TTimer;
    N12: TMenuItem;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    LDBox: TsuiGroupBox;
    IComboBox: TsuiComboBox;
    Memo1: TsuiMemo;
    suiButton4: TsuiButton;
    suiButton5: TsuiButton;
    suiButton6: TsuiButton;
    SComboBox: TsuiComboBox;
    helpBox: TsuiGroupBox;
    Label9: TLabel;
    N13: TMenuItem;
    procedure TabControl1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure suiButton2Click(Sender: TObject);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure XP1Click(Sender: TObject);
    procedure MAC1Click(Sender: TObject);
    procedure suiButton3Click(Sender: TObject);
    procedure ADDRadioClick(Sender: TObject);
    procedure NRRadioClick(Sender: TObject);
    procedure ADDEditKeyPress(Sender: TObject; var Key: Char);
    procedure NREditKeyPress(Sender: TObject; var Key: Char);
    procedure N7Click(Sender: TObject);
    procedure NEWButtonClick(Sender: TObject);
    procedure ADDButtonClick(Sender: TObject);
    procedure DELButtonClick(Sender: TObject);
    procedure suiEdit3KeyPress(Sender: TObject; var Key: Char);
    procedure suiEdit4KeyPress(Sender: TObject; var Key: Char);
    procedure suiEdit5KeyPress(Sender: TObject; var Key: Char);
    procedure suiEdit6KeyPress(Sender: TObject; var Key: Char);
    procedure suiEdit7KeyPress(Sender: TObject; var Key: Char);
    procedure suiEdit8KeyPress(Sender: TObject; var Key: Char);
    procedure IComboBoxChange(Sender: TObject);
    procedure suiButton4Click(Sender: TObject);
    procedure suiButton5Click(Sender: TObject);
    procedure SComboBoxChange(Sender: TObject);
    procedure suiButton6Click(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure DEEP1Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure N13Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type
    PLCLD =  RECORD
      DNAME:STRING[30];
      LDNR:STRING[200];
    END;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses
 shellapi, PLCdetail;

PROCEDURE SAVEDATA(STR:STRING);
VAR
TDATA:PLCLD;
CURREC:INTEGER;
DATAFILE:file of plcld;
BEGIN           //保存记录
   ASSIGNFILE(DATAFILE,STR);
   RESET(DATAFILE);
   CURREC:=FILESIZE(DATAFILE);
   SEEK(DATAFILE,CURREC);
   TDATA.DNAME:=FORM1.SComboBox.Text;
   TDATA.LDNR:=FORM1.Memo1.Text;
   WRITE(DATAFILE,TDATA);
   FORM1.SComboBox.Clear;
   CURREC:=0;
   SEEK(DATAFILE,CURREC);
WHILE NOT EOF(DATAFILE) DO
   BEGIN
      CURREC:=CURREC+1;
      READ(DATAFILE,TDATA);
      SEEK(DATAFILE,CURREC);
      FORM1.SComboBox.Items.Add(TDATA.DNAME);
   END;
END;

/////////////////////////////////////////////////////////////

PROCEDURE SHOWDATA(STR:STRING);
VAR
TDATA:PLCLD;
DATAFILE:file of plcld;
BEGIN
   ASSIGNFILE(DATAFILE,STR);
   RESET(DATAFILE);
   READ(DATAFILE,TDATA);
   FORM1.SComboBox.Text:=TDATA.DNAME;
   FORM1.Memo1.Text:= TDATA.LDNR;
   FORM1.SComboBox.Items.Add(TDATA.DNAME);
   WHILE NOT EOF(DATAFILE) DO
   BEGIN
      READ(DATAFILE,TDATA);
      FORM1.SComboBox.Items.Add(TDATA.DNAME);
   END;
   CLOSE(DATAFILE);
END;
/////////////////////////////////////////////////
PROCEDURE CHANGEDATA(STR:STRING);
VAR
TDATA:PLCLD;
CURREC:INTEGER;
DATAFILE:FILE OF PLCLD;
BEGIN
   ASSIGNFILE(DATAFILE,STR);
   RESET(DATAFILE);
   CURREC:=0;
   SEEK(DATAFILE,CURREC);
 WHILE NOT EOF(DATAFILE) DO
   BEGIN
      READ(DATAFILE,TDATA);
      CURREC:=CURREC+1;
      SEEK(DATAFILE,CURREC);
      IF TDATA.DNAME=FORM1.SComboBox.Text THEN
      FORM1.Memo1.Text:=TDATA.LDNR;
   END;
END;
/////////////////////////////////////////////////
PROCEDURE DELDATA(STR:STRING);
VAR
TDATA:PLCLD;
POS:INTEGER;
DATAFILE:FILE OF PLCLD;
BEGIN
  ASSIGNFILE(DATAFILE,STR);
  POS:=FORM1.SComboBox.ItemIndex;
  RESET(DATAFILE);
  SEEK(DATAFILE,POS+1);
  WHILE NOT EOF(DATAFILE) DO
  BEGIN
    READ(DATAFILE,TDATA);
    SEEK(DATAFILE,POS);
    POS:=POS+1;
    WRITE(DATAFILE,TDATA);
    SEEK(DATAFILE,POS+1);
  END;
  SEEK(DATAFILE,POS);
  TRUNCATE(DATAFILE);
  SEEK(DATAFILE,0);
  FORM1.SComboBox.Clear;
  FORM1.MEMO1.Clear;
  WHILE NOT EOF(DATAFILE) DO
  BEGIN
    READ(DATAFILE,TDATA);
    FORM1.SComboBox.Items.Add(TDATA.DNAME);
  END;
END;

/////////////////////////////////////////////////
procedure TForm1.FormCreate(Sender: TObject);

begin      //初始化设置
  adoconnection1.GetTableNames(ComboBox1.Items);
  findbox.Visible:=true;
  inputbox.Visible:=false;
  helpbox.Visible:=false;
  ldbox.Visible:=false;
  ComboBox1.Text:=ComboBox1.Items.Strings[0];
  adotable1.Close;
  adotable1.tablename:=ComboBox1.Items.Strings[0];
  adotable1.Open;
  ////////////////////////////////////////////////////
  FORM1.suiEdit2.Text:=ADOTable1.Fields[0].AsString ;
  FORM1.suiedit3.Text:=ADOTable1.Fields[1].AsString ;
  FORM1.suiedit4.Text:=ADOTable1.Fields[2].AsString ;
  FORM1.suiedit5.Text:=ADOTable1.Fields[3].AsString ;
  FORM1.suiedit6.Text:=ADOTable1.Fields[4].AsString ;
  FORM1.suiedit7.Text:=ADOTable1.Fields[5].AsString ;
  FORM1.suiedit8.Text:=ADOTable1.Fields[6].AsString ;
  ////////////////////////////////////////////////////
  SHOWDATA('I.DAT');
  suiStatusBar1.Panels[1].text:=DateToStr(Time());
  suiStatusBar1.Panels[2].text:=TimeToStr(Time());
end;

procedure TForm1.TabControl1Change(Sender: TObject);
begin
case tabcontrol1.TabIndex of
0:     //查找TAB
 begin
   findbox.Visible:=true;
   inputbox.Visible:=false;
   helpbox.Visible:=false;
   LDBOX.Visible:=FALSE;
   form1.DBGrid1.Visible:=true;
 end;
1:     //输入TAB
 begin
   inputbox.Visible:=true;
   findbox.Visible:=false;
   helpbox.Visible:=false;
   LDBOX.Visible:=FALSE;
   form1.DBGrid1.Visible:=true;
 end;
2:     //关于TAB
 begin
    form1.DBGrid1.Visible:=false;
    LDBOX.Visible:=TRUE;
    findbox.Visible:=false;
    inputbox.Visible:=false;
    helpbox.Visible:=false;
 end;
else    //联动关系TAB
   form1.DBGrid1.Visible:=false;
   LDBOX.Visible:=FALSE;
   findbox.Visible:=false;
   inputbox.Visible:=false;
   helpbox.Visible:=true;
 end;
end;

//////////////以下为数据库的处理部分/////////////////
procedure TForm1.suiButton2Click(Sender: TObject);
var         //打开新数据文件按钮
myaccess:string;//保存文件路径
const
ConnStr = 'Provider=%s;Data Provider=%s;Data Source=%s';
mystr1='Provider=%s;Data Provider= %s;Data Source= %s;';
{给出接口参数}
myProvider='msdatashape.1';
mydataProvider='Microsoft.jet.oledb.4.0';
begin              //打开数据库并进行初始设置
  opendialog1.FileName:='*.mdb';
  if opendialog1.Execute then
    begin
    myaccess:=opendialog1.FileName;
    adoconnection1.Connected:=false;
      if not adoconnection1.connected then
        adoconnection1.ConnectionString:=format(mystr1,
          [myProvider,mydataprovider,myaccess]);
        adoconnection1.GetTableNames(ComboBox1.Items);
    ComboBox1.Text:=ComboBox1.Items.Strings[0];
    adotable1.tablename:=ComboBox1.Items.Strings[0];
    adoconnection1.Connected:=true;
    adotable1.Active:=true;
    end;
end;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin        //以彩色显示
if gdSelected in State then
    Exit;
  if ADOTable1.RecNo mod 2 = 0 then
    DBGrid1.Canvas.Brush.Color := clInfoBk
  else
    DBGrid1.Canvas.Brush.Color := RGB(191, 255, 223);
    DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
    DBGrid1.Canvas.Pen.Color := $00C08000;
    DBGrid1.Canvas.MoveTo(Rect.Left, Rect.Bottom);
    DBGrid1.Canvas.LineTo(Rect.Right, Rect.Bottom);
    DBGrid1.Canvas.MoveTo(Rect.Right, Rect.Top);
    DBGrid1.Canvas.LineTo(Rect.Right, Rect.Bottom);
end;

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
  Field: TField; State: TGridDrawState);
begin
with DBGrid1.Canvas do
  begin
    Pen.Color := clBlue;
    MoveTo(Rect.Left, Rect.Bottom);
    LineTo(Rect.Right, Rect.Bottom);
    Pen.Color := clGreen;

⌨️ 快捷键说明

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