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

📄 dbparaunit.pas

📁 三层的通用架构
💻 PAS
字号:
unit DBParaUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, ExtCtrls, ExtDlgs, Buttons, DBTables, DB,
  DBClient, MConnect, SConnect, Menus;

type
  TDBParaForm = class(TForm)
    Button1: TButton;
    Button2: TButton;
    GroupBox1: TGroupBox;
    Panel1: TPanel;
    Label1: TLabel;
    ComboBox1: TComboBox;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Label2: TLabel;
    ComboBox2: TComboBox;
    Label3: TLabel;
    Edit1: TEdit;
    Label4: TLabel;
    Edit2: TEdit;
    Label5: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Label6: TLabel;
    Edit5: TEdit;
    Label7: TLabel;
    Edit6: TEdit;
    Label8: TLabel;
    Edit7: TEdit;
    Edit8: TEdit;
    Button5: TButton;
    Panel5: TPanel;
    Label9: TLabel;
    ComboBox3: TComboBox;
    Panel6: TPanel;
    Panel7: TPanel;
    Panel8: TPanel;
    Label10: TLabel;
    Edit9: TEdit;
    Label11: TLabel;
    Edit10: TEdit;
    Label12: TLabel;
    Edit11: TEdit;
    Label13: TLabel;
    Edit12: TEdit;
    Label14: TLabel;
    Edit13: TEdit;
    Label15: TLabel;
    Edit14: TEdit;
    Label16: TLabel;
    Edit15: TEdit;
    Label17: TLabel;
    Edit16: TEdit;
    Label18: TLabel;
    Edit17: TEdit;
    Label19: TLabel;
    Edit18: TEdit;
    Label20: TLabel;
    Edit19: TEdit;
    Label21: TLabel;
    Edit20: TEdit;
    Label22: TLabel;
    Edit21: TEdit;
    Label23: TLabel;
    Edit22: TEdit;
    Label24: TLabel;
    Edit23: TEdit;
    Label25: TLabel;
    Edit24: TEdit;
    Label26: TLabel;
    Edit26: TEdit;
    Edit25: TEdit;
    Panel11: TPanel;
    CheckBox1: TCheckBox;
    Button3: TButton;
    Button4: TButton;
    Panel10: TPanel;
    Panel9: TPanel;
    Label27: TLabel;
    Edit28: TEdit;
    Label28: TLabel;
    Edit29: TEdit;
    Label29: TLabel;
    Edit30: TEdit;
    Label30: TLabel;
    Edit31: TEdit;
    Label31: TLabel;
    Edit32: TEdit;
    Edit33: TEdit;
    Label32: TLabel;
    Edit34: TEdit;
    Label33: TLabel;
    Edit27: TEdit;
    Label34: TLabel;
    Edit35: TEdit;
    Label35: TLabel;
    Edit36: TEdit;
    Label36: TLabel;
    Edit37: TEdit;
    Label37: TLabel;
    ComboBox4: TComboBox;
    Panel12: TPanel;
    Label38: TLabel;
    Label39: TLabel;
    Label40: TLabel;
    Edit38: TEdit;
    Edit39: TEdit;
    Edit41: TEdit;
    Edit42: TEdit;
    Edit40: TEdit;
    Label41: TLabel;
    Label42: TLabel;
    Edit43: TEdit;
    Label43: TLabel;
    Edit44: TEdit;
    Label44: TLabel;
    Edit45: TEdit;
    Edit46: TEdit;
    Label45: TLabel;
    Edit47: TEdit;
    Label46: TLabel;
    Edit48: TEdit;
    PopupMenu1: TPopupMenu;
    A1: TMenuItem;
    N1: TMenuItem;
    N2: TMenuItem;
    BDE1: TMenuItem;
    ADO1: TMenuItem;
    DCOM1: TMenuItem;
    SOCKET1: TMenuItem;
    WEB1: TMenuItem;
    SOAP1: TMenuItem;
    CORBA1: TMenuItem;
    PBSQLCA1: TMenuItem;
    Label47: TLabel;
    ComboBox5: TComboBox;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit4Enter(Sender: TObject);
    procedure Edit3Exit(Sender: TObject);
    procedure Edit8Enter(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox3Change(Sender: TObject);
    procedure Edit25Enter(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Edit33Enter(Sender: TObject);
    procedure Edit42Enter(Sender: TObject);
    procedure Edit46Enter(Sender: TObject);
    procedure A1Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure BDE1Click(Sender: TObject);
  private
    { Private declarations }
    procedure WMNcActivate(var Msg: TMessage); message WM_NCACTIVATE;
    procedure CustomView;
  public
    { Public declarations }
    TheUserName: string;
  end;

var
  DBParaForm: TDBParaForm;

implementation

uses
  MainUnit, AdoConEdEx;

{$R *.dfm}

procedure TDBParaForm.WMNcActivate(var Msg: TMessage);
begin
  if not LongBool(Msg.WParam) then
  begin
    Edit3Exit(nil);
    Msg.Result := 1;
  end;
  inherited;
end;

procedure TDBParaForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
  DBParaForm := nil;
end;

procedure TDBParaForm.Button1Click(Sender: TObject);
begin
  if ComboBox1.PopupMenu = PopupMenu1 then
    CustomView;
  TheMainForm.SetDBProperty(TheUserName);
  Close;
end;

procedure TDBParaForm.Button2Click(Sender: TObject);
begin
  Close;
end;

procedure TDBParaForm.FormCreate(Sender: TObject);
begin
  try
    Session.GetAliasNames(ComboBox2.Items);
  except
  end;
  TheUserName := '';
end;

procedure TDBParaForm.Edit4Enter(Sender: TObject);
begin
  if Edit3.MaxLength = 0 then
  begin
    Edit3.MaxLength := 16;
    Edit3.Text := TheMainForm.ProcessPassword('Edit3', Edit3.Text, True);
  end;
  Edit3.SetFocus;
  TEdit(Sender).Visible := False;
end;

procedure TDBParaForm.Edit3Exit(Sender: TObject);
begin
  Edit4.Visible := True;
  if Edit3.MaxLength = 16 then
  begin
    Edit3.MaxLength := 0;
    Edit3.Text := TheMainForm.ProcessPassword('Edit3', Edit3.Text);
  end;
  Edit8.Visible := True;
  if Edit7.MaxLength = 16 then
  begin
    Edit7.MaxLength := 0;
    Edit7.Text := TheMainForm.ProcessPassword('Edit7', Edit7.Text);
  end;
  Edit25.Visible := True;
  if Edit24.MaxLength = 16 then
  begin
    Edit24.MaxLength := 0;
    Edit24.Text := TheMainForm.ProcessPassword('Edit24', Edit24.Text);
  end;
  Edit33.Visible := True;
  if Edit32.MaxLength = 16 then
  begin
    Edit32.MaxLength := 0;
    Edit32.Text := TheMainForm.ProcessPassword('Edit32', Edit32.Text);
  end;
  Edit42.Visible := True;
  if Edit41.MaxLength = 16 then
  begin
    Edit41.MaxLength := 0;
    Edit41.Text := TheMainForm.ProcessPassword('Edit41', Edit41.Text);
  end;
  Edit46.Visible := True;
  if Edit45.MaxLength = 16 then
  begin
    Edit45.MaxLength := 0;
    Edit45.Text := TheMainForm.ProcessPassword('Edit45', Edit45.Text);
  end;
end;

procedure TDBParaForm.Edit8Enter(Sender: TObject);
begin
  if Edit7.MaxLength = 0 then
  begin
    Edit7.MaxLength := 16;
    Edit7.Text := TheMainForm.ProcessPassword('Edit7', Edit7.Text, True);
  end;
  Edit7.SetFocus;
  TEdit(Sender).Visible := False;
end;

procedure TDBParaForm.Button5Click(Sender: TObject);
var
  Str: String;
begin
  Str := Edit5.Text;
  with TConnEditFormEx.Create(Application) do
  begin
    try
      Str := Edit(Str);
      if Pos('USER ID', UpperCase(Str)) > 0 then
        Str := TheMainForm.ReplaceString(Str, 'User ID', ';', 'User ID=');
      if Pos('PASSWORD', UpperCase(Str)) > 0 then
        Str := TheMainForm.ReplaceString(Str, 'Password', ';', 'Password=');
      Edit5.Text := Str;
    finally
      Free;
    end;
  end;
end;

procedure TDBParaForm.ComboBox1Change(Sender: TObject);
begin
  if ComboBox1.Items[ComboBox1.ItemIndex] = 'BDE' then
  begin
    Panel2.Visible := True;
    Panel3.Visible := False;
    Panel4.Visible := False;
    Panel12.Visible := False;
  end;
  if ComboBox1.Items[ComboBox1.ItemIndex] = 'ADO' then
  begin
    Panel2.Visible := False;
    Panel3.Visible := True;
    Panel4.Visible := False;
    Panel12.Visible := False;
  end;
  if ComboBox1.Items[ComboBox1.ItemIndex] = 'MIDAS' then
  begin
    Panel2.Visible := False;
    Panel3.Visible := False;
    Panel4.Visible := True;
    Panel12.Visible := False;
  end;
  if ComboBox1.Items[ComboBox1.ItemIndex] = 'PBSQLCA' then
  begin
    Panel2.Visible := False;
    Panel3.Visible := False;
    Panel4.Visible := False;
    Panel12.Visible := True;
  end;
end;

procedure TDBParaForm.ComboBox3Change(Sender: TObject);
begin
  if ComboBox3.Items[ComboBox3.ItemIndex] = 'DCOM' then
  begin
    Panel6.Visible := True;
    Panel7.Visible := False;
    Panel8.Visible := False;
    Panel9.Visible := False;
    Panel10.Visible := False;
  end;
  if ComboBox3.Items[ComboBox3.ItemIndex] = 'SOCKET' then
  begin
    Panel6.Visible := False;
    Panel7.Visible := True;
    Panel8.Visible := False;
    Panel9.Visible := False;
    Panel10.Visible := False;
  end;
  if ComboBox3.Items[ComboBox3.ItemIndex] = 'WEB' then
  begin
    Panel6.Visible := False;
    Panel7.Visible := False;
    Panel8.Visible := True;
    Panel9.Visible := False;
    Panel10.Visible := False;
  end;
  if ComboBox3.Items[ComboBox3.ItemIndex] = 'SOAP' then
  begin
    Panel6.Visible := False;
    Panel7.Visible := False;
    Panel8.Visible := False;
    Panel9.Visible := True;
    Panel10.Visible := False;
  end;
  if ComboBox3.Items[ComboBox3.ItemIndex] = 'CORBA' then
  begin
    Panel6.Visible := False;
    Panel7.Visible := False;
    Panel8.Visible := False;
    Panel9.Visible := False;
    Panel10.Visible := True;
  end;
end;

procedure TDBParaForm.Edit25Enter(Sender: TObject);
begin
  if Edit24.MaxLength = 0 then
  begin
    Edit24.MaxLength := 16;
    Edit24.Text := TheMainForm.ProcessPassword('Edit24', Edit24.Text, True);
  end;
  Edit24.SetFocus;
  TEdit(Sender).Visible := False;
end;

procedure TDBParaForm.FormShow(Sender: TObject);
begin
  ComboBox1Change(nil);
  ComboBox3Change(nil);
end;

procedure TDBParaForm.Button3Click(Sender: TObject);
begin
  TheMainForm.SetDBProperty;
  if TheMainForm.ConnectToDB then
  begin
    TButton(Sender).Enabled := False;
    Button4.Enabled := True;
  end;
end;

procedure TDBParaForm.Button4Click(Sender: TObject);
begin
  if TheMainForm.DisConnectToDB(True) then
  begin
    Button3.Enabled := True;
    TButton(Sender).Enabled := False;
  end;
end;

procedure TDBParaForm.Edit33Enter(Sender: TObject);
begin
  if Edit32.MaxLength = 0 then
  begin
    Edit32.MaxLength := 16;
    Edit32.Text := TheMainForm.ProcessPassword('Edit32', Edit32.Text, True);
  end;
  Edit32.SetFocus;
  TEdit(Sender).Visible := False;
end;

procedure TDBParaForm.Edit42Enter(Sender: TObject);
begin
  if Edit41.MaxLength = 0 then
  begin
    Edit41.MaxLength := 16;
    Edit41.Text := TheMainForm.ProcessPassword('Edit41', Edit41.Text, True);
  end;
  Edit41.SetFocus;
  TEdit(Sender).Visible := False;
end;

procedure TDBParaForm.Edit46Enter(Sender: TObject);
begin
  if Edit45.MaxLength = 0 then
  begin
    Edit45.MaxLength := 16;
    Edit45.Text := TheMainForm.ProcessPassword('Edit45', Edit45.Text, True);
  end;
  Edit45.SetFocus;
  TEdit(Sender).Visible := False;
end;

procedure TDBParaForm.A1Click(Sender: TObject);
var
  i: Integer;
begin
  for i := 3 to 10 do
    PopupMenu1.Items[i].Checked := True;
end;

procedure TDBParaForm.N1Click(Sender: TObject);
var
  i: Integer;
begin
  for i := 3 to 10 do
    PopupMenu1.Items[i].Checked := False;
  CustomView;
end;

procedure TDBParaForm.BDE1Click(Sender: TObject);
begin
  TMenuItem(Sender).Checked := not TMenuItem(Sender).Checked;
end;

procedure TDBParaForm.CustomView;
var
  i: Integer;
begin
  i := ComboBox1.ItemIndex;
  if i = 2 then
    i := i + ComboBox3.ItemIndex
  else
    if i = 3 then
      i := 7;
  PopupMenu1.Items[i + 3].Checked := True;
end;

end.

⌨️ 快捷键说明

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