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

📄 z_machine_in.pas

📁 主要是介绍DELPHI三层应用以及分布式数据库的应用
💻 PAS
字号:
unit z_machine_in;

interface

uses
  Windows, Messages, Classes, SysUtils, Graphics, Controls, StdCtrls, Forms,
  Dialogs, DBCtrls, DB, Mask, ExtCtrls, Grids, DBGrids, ComCtrls, ADODB;

type
  TForm_machine_in = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel2: TPanel;
    ScrollBox: TScrollBox;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label3: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    EditDBEdit2: TDBEdit;
    EditDBEdit4: TDBEdit;
    EditDBEdit5: TDBEdit;
    EditDBEdit6: TDBEdit;
    EditDBEdit7: TDBEdit;
    EditDBEdit8: TDBEdit;
    EditDBEdit9: TDBEdit;
    EditDBEdit12: TDBEdit;
    EditDBEdit13: TDBEdit;
    DBRadioGroup1: TDBRadioGroup;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBMemo1: TDBMemo;
    Panel3: TPanel;
    btn_save1: TButton;
    btn_prev1: TButton;
    btn_next1: TButton;
    btn_last1: TButton;
    btn_first1: TButton;
    btn_edit1: TButton;
    btn_cancel1: TButton;
    btn_addnew1: TButton;
    btn_delete: TButton;
    DBGrid1: TDBGrid;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    Panel1: TPanel;
    Label1: TLabel;
    Panel4: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button4: TButton;
    procedure EditDBEdit2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditDBEdit4KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditDBEdit5KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditDBEdit6KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditDBEdit7KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBEdit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditDBEdit13KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBEdit2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBMemo1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditDBEdit9KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditDBEdit8KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure btn_first1Click(Sender: TObject);
    procedure btn_prev1Click(Sender: TObject);
    procedure btn_next1Click(Sender: TObject);
    procedure btn_last1Click(Sender: TObject);
    procedure btn_addnew1Click(Sender: TObject);
    procedure btn_edit1Click(Sender: TObject);
    procedure btn_save1Click(Sender: TObject);
    procedure btn_cancel1Click(Sender: TObject);
    procedure btn_deleteClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { private declarations }
     procedure LockEdit;
    //定义函数,来改变各个输入框是否可以编辑,当用户再增加新记录
    //或者编辑记录以前,不可以修改
    procedure UnlockEdit;
    //定义函数,用来让输入文本框可以编辑
    //集成的
    procedure EnableScrollBox(aScrollBox : TScrollBox);
    procedure DisableScrollBox(aScrollBox : TScrollBox);

    procedure DisableBtn;
    //定义过程,用来使某些按钮失效
    procedure EnableBtn;
    //定义过程,用来使某些按钮有效



  public
    { public declarations }
  end;

var
  Form_machine_in: TForm_machine_in;

implementation

uses Unit_machine_in, search, Unit_wxp, rp_machine_in, Unit_public_jin;

{$R *.DFM}

procedure TForm_machine_in.EnableScrollBox(aScrollBox : TScrollBox);
var Teller : Integer;
     classname1, classnameshort:string;
     ClassRef: TClass;
begin
   with aScrollBox do
  begin
    For Teller := 0 to aScrollBox.ControlCount -1 do //.ControlCount - 1 do
    begin
      ClassRef :=aScrollBox.Controls[ Teller ].ClassType; //控件类型
      classname1 :=aScrollBox.Controls[ Teller ].ClassName;
      if ClassRef <> nil then
      begin
       if classname1 = 'TDBEdit' then  aScrollBox.Controls[ Teller ].Enabled:= true;
       if classname1 = 'TDBRadioGroup' then aScrollBox.Controls[ Teller ].Enabled:= true;
       if classname1 = 'TDBMemo' then  aScrollBox.Controls[ Teller ].Enabled:= true;
      end;
    end;
  end;
end;



procedure TForm_machine_in.DisableScrollBox(aScrollBox : TScrollBox);
 var Teller : Integer;
     classname1, classnameshort:string;
     ClassRef: TClass;
begin
   with aScrollBox do
  begin
    For Teller := 0 to aScrollBox.ControlCount -1 do //.ControlCount - 1 do
    begin
      ClassRef :=aScrollBox.Controls[ Teller ].ClassType; //控件类型
      classname1 :=aScrollBox.Controls[ Teller ].ClassName;
      if ClassRef <> nil then
      begin
       if classname1 = 'TDBEdit' then  aScrollBox.Controls[ Teller ].Enabled:= false;
       if classname1 = 'TDBRadioGroup' then aScrollBox.Controls[ Teller ].Enabled:= false;
       if classname1 = 'TDBMemo' then  aScrollBox.Controls[ Teller ].Enabled:= false;
      end;
    end;
  end;
end;





//自定义过程,用来确定每个Edit空间是否可以编辑
procedure TForm_machine_in.LockEdit;
var
  OK: Boolean ;
begin
    ok := true;

end;

procedure TForm_machine_in.UnLockEdit;
var
  OK: Boolean ;
begin
    ok := false;

end;

procedure TForm_machine_in.EnableBtn ;
begin


    btn_first1.Enabled :=true;
    btn_prev1.Enabled :=true;
    btn_next1.Enabled :=true;
    btn_last1.Enabled :=true;

    btn_addnew1.Enabled :=true;
    btn_edit1.Enabled :=true;
    btn_delete.Enabled :=true;

end;

procedure TForm_machine_in.DisableBtn ;
begin
    
    btn_first1.Enabled :=false;
    btn_prev1.Enabled :=false;
    btn_next1.Enabled :=false;
    btn_last1.Enabled :=false;


    btn_addnew1.Enabled :=false;
    btn_edit1.Enabled :=false;
    btn_delete.Enabled :=false;

end;

procedure TForm_machine_in.EditDBEdit2KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if key = 13 then
   EditDBEdit4.SetFocus;
end;

procedure TForm_machine_in.EditDBEdit4KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if key = 13 then
   EditDBEdit5.SetFocus;

end;

procedure TForm_machine_in.EditDBEdit5KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if key = 13 then
   EditDBEdit6.SetFocus;
end;


procedure TForm_machine_in.EditDBEdit6KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if key = 13 then
   EditDBEdit7.SetFocus;
end;


procedure TForm_machine_in.EditDBEdit7KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if key = 13 then
   DBEdit1.SetFocus;
end;


procedure TForm_machine_in.DBEdit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key = 13 then
   EditDBEdit13.SetFocus;
end;


procedure TForm_machine_in.EditDBEdit13KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if key = 13 then
   DBEdit2.SetFocus;
end;


procedure TForm_machine_in.DBEdit2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key = 13 then
   DBMemo1.SetFocus;
end;


procedure TForm_machine_in.DBMemo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key = 13 then
   EditDBEdit9.SetFocus;
end;

procedure TForm_machine_in.EditDBEdit9KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if key = 13 then
   EditDBEdit8.SetFocus;
end;

procedure TForm_machine_in.EditDBEdit8KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if key = 13 then
   EditDBEdit12.SetFocus;
end;

procedure TForm_machine_in.btn_first1Click(Sender: TObject);
begin
ADOQuery1.First ;
end;

procedure TForm_machine_in.btn_prev1Click(Sender: TObject);
begin
 if not ADOQuery1.Bof then
                ADOQuery1.Prior ;

end;

procedure TForm_machine_in.btn_next1Click(Sender: TObject);
begin
if not  ADOQuery1.Eof then
     ADOQuery1.Next ;
end;

procedure TForm_machine_in.btn_last1Click(Sender: TObject);
begin
ADOQuery1.Last ;
end;

procedure TForm_machine_in.btn_addnew1Click(Sender: TObject);
begin

   

//Table1.ReadOnly :=false;
        //让文本框可以编辑
        //UnlockEdit;
        EnableScrollBox(ScrollBox);
        DisableBtn;

       //messagedlg('newadd,?',mtConfirmation,
       //         mbYesNoCancel,0) ;
       ADOQuery1.Append ;
      //  dm_contract_z.Table_contract.Edit ;
        btn_save1.Enabled :=true;
        btn_cancel1.Enabled :=true;
        self.DBRadioGroup1.ItemIndex := 0;
        self.DBRadioGroup1.SetFocus;

       // btn_delete.Enabled :=true;

end;

procedure TForm_machine_in.btn_edit1Click(Sender: TObject);
begin
        //UnLockEdit;
          EnableScrollBox(ScrollBox);
        DisableBtn;
       ADOQuery1.Edit ;

        btn_save1.Enabled :=true;
        btn_cancel1.Enabled :=true;

        self.DBRadioGroup1.SetFocus;
end;

procedure TForm_machine_in.btn_save1Click(Sender: TObject);
begin
 //dm_wxp.Table1.Post  ;
       ADOQuery1.post ;
     //  Adoquery1.Refresh;

        btn_save1.Enabled :=false;
        btn_cancel1.Enabled :=false;
       //锁住所有文本框
        //LockEdit;
        DisableScrollBox(ScrollBox);
        //使按钮有效
        EnableBtn ;

        btn_addnew1.Enabled :=true;
        btn_edit1.Enabled :=true;

       
end;

procedure TForm_machine_in.btn_cancel1Click(Sender: TObject);
begin
     ADOQuery1.Cancel ;
      EnableBtn;
      //LockEdit;
       DisableScrollBox(ScrollBox);
       btn_cancel1.Enabled :=false;
       btn_save1.Enabled :=false;
end;

procedure TForm_machine_in.btn_deleteClick(Sender: TObject);
begin
 if application.MessageBox(pchar('确信要删除这条记录嘛?'),
        pchar('注意'),MB_OKCANCEL)=IDOK then
        self.ADOQuery1.Delete
 // ADOQuery1.Delete ;
end;

procedure TForm_machine_in.FormCreate(Sender: TObject);
begin
  // c初始化
  Form_machine_in.KeyPreview :=true ;   // use enter replace of tab ;
  DisableScrollBox(ScrollBox);
  unit_public_jin.Setcolor(ScrollBox); //unit_public_jin 是公用变量; 设置输入框颜色
  // c初始化 结束;

end;

procedure TForm_machine_in.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if Key = #13 then
    begin
      Key := #0;
      Perform(WM_NEXTDLGCTL, 0, 0);
    end;
end;

procedure TForm_machine_in.Button1Click(Sender: TObject);
begin
        Application.CreateForm(TForm_search, Form_search);
        form_search.TransADO :=self.ADOQuery1 ;
        unit_wxp.WhichForm := 200 ;
        //showmessage(inttostr(adoquery1.FieldCount));
        //adoquery1.FieldCount   000

        form_search.Showmodal ;
end;

procedure TForm_machine_in.Button2Click(Sender: TObject);
begin
     self.ADOQuery1.Active :=false;
     self.ADOQuery1.SQL.Clear ;
     self.ADOQuery1.SQL.Add('select * from pub_z_machine_in ');
     self.ADOQuery1.Active :=true;
     unit_wxp.FinalSql:= 'select * from pub_z_machine_in ';

end;

procedure TForm_machine_in.Button4Click(Sender: TObject);
begin
     Application.CreateForm(TQRpt_machine_in, QRpt_machine_in);
     QRpt_machine_in.Query1 .Active :=false;
     QRpt_machine_in.Query1.SQL.Clear ;
     QRpt_machine_in.Query1.SQL.Add(unit_wxp.FinalSql );
     QRpt_machine_in.Query1.Active :=true;
     QRpt_machine_in.Preview ;
     QRpt_machine_in.Free ;
end;

procedure TForm_machine_in.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
 Action:=cafree;
end;

end.

⌨️ 快捷键说明

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