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

📄 unitmain.pas

📁 远程抄表系统的客户端程序 安徽六安项目-客户端程序 0 开发环境 Delphi 7.0 所需控件 mxOutlookBar 数 据 库 Sybase 11.5 1 04-12-
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit UnitMain;

interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ComCtrls,  StdCtrls, mxOutlookBarPro, Menus, Buttons,
  ToolWin, inifiles, ImgList, ShellApi;
type
  TFormMain = class(TForm)
    StatusBar: TStatusBar;
    mxOutlookBarPro1: TmxOutlookBarPro;
    Panel: TPanel;
    MainMenu: TMainMenu;
    MenuSystem: TMenuItem;
    MenuBasic: TMenuItem;
    MenuOrder: TMenuItem;
    MenuReport: TMenuItem;
    MenuAbout: TMenuItem;
    SystemLogin: TMenuItem;
    SystemExit: TMenuItem;
    Basic1Line: TMenuItem;
    Basic2BianTai: TMenuItem;
    CoolBar: TCoolBar;
    ToolBar: TToolBar;
    ToolBtnLogin: TToolButton;
    ToolBtnExit: TToolButton;
    ImageList: TImageList;
    Image: TImage;
    ImageList1: TImageList;
    Basic3User: TMenuItem;
    Order1SetInfo: TMenuItem;
    Order2GetData: TMenuItem;
    Order4History: TMenuItem;
    ReportSum: TMenuItem;
    ReportIE: TMenuItem;
    Order3DataRecv: TMenuItem;
    About1SysInfo: TMenuItem;
    Window: TMenuItem;
    WindowLeft: TMenuItem;
    About2WWW: TMenuItem;
    ClearMemTimer: TTimer;
    RefreshTimer: TTimer;
    Basic0BianDianZ: TMenuItem;
    MenuLineLost: TMenuItem;
    MLost0Compute: TMenuItem;
    MLost1Rep: TMenuItem;
    procedure UserLogin();
    procedure FormCreate(Sender: TObject);
    procedure mxOutlookBarPro1Headers0Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers0Buttons1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure mxOutlookBarPro1Headers1Buttons1Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers1Buttons2Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers1Buttons3Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure WindowCloseFormCurrClick(Sender: TObject);
    procedure mxOutlookBarPro1Headers1Buttons4Click(Sender: TObject);
    procedure WindowLeftClick(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure ClearMemTimerTimer(Sender: TObject);
    procedure ToolBtnLoginClick(Sender: TObject);
    procedure mxOutlookBarPro1Headers0Buttons2Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers2Buttons0Click(Sender: TObject);
    procedure ToolBtnExitClick(Sender: TObject);
    procedure RefreshTimerTimer(Sender: TObject);
    procedure mxOutlookBarPro1Headers0Buttons3Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers1Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers4Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers4Buttons1Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers3Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers3Buttons1Click(Sender: TObject);

  private
    { Private declarations }
    //  防止打开多个客户端程序
    // atom : Word;
    Function  ConnDB(): Boolean;
    procedure SetImageToAllForm();
    procedure ClearMemory();
  public
    { Public declarations }
    strCaption: string;
    MyUser    : string;
    MyPwd     : string;
    iWaitTime : integer;
    IniFile: TIniFile;
    procedure SetMenuCheck(MenuIndex : Integer);
    procedure LoadTableBianDianZ(strSQL : string);
    procedure LoadTableLine(strSQL : string);
    procedure LoadTableBianTai(strSQL : string);
    //procedure LoadTableUser(strSQL : string);
  end;

var
  FormMain  : TFormMain;
  AlertWord : string;
  bLoginOK  : boolean;

implementation
  uses UnitBasic1, UnitBasic2, UnitMyModule, UnitSplash, UnitOrder1,
  UnitOrder2, UnitOrder3, UnitBianTai, UnitAbout, UnitOrder4,
  UnitBasic3, UnitLogin, UnitBasic0, UnitOrder0, UnitLineLost0,
  UnitLineLost1, UnitLineLost2, UnitLineLost3;
  // 1  Dll函数声明
  //    function CheckPassword: short; external 'MyPassPrj.dll' name 'CheckPassword'
  // 2  Dll函数调用
  {
  case CheckPassword of
  0:
  begin
    ShowMessage('Login cancel');
  end;
  1:
  begin
    ShowMessage('password is ok');
  end;
  3:
  begin
    ShowMessage('input over 3 times');
  end;
  else  begin
    ShowMessage('other value');
  end;
  end;
  }
{$R *.dfm}

procedure TFormMain.FormCreate(Sender: TObject);
//var
//  删除系统菜单
//  menuSys : HMENU;
begin
  //初始化载入: Mis2005.ini
  //IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'Mis2005.ini');
  IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'Mis2005.dll');
  //更新系统Icon
  //if FileExists('Mis2005.res') then
  //begin
  //  Application.Icon.Handle := LoadIcon(hInstance, 'MAINICON');
  //end;

  //系统标题
  strCaption    := IniFile.ReadString('System', 'Title', '配电管理系统2005');
  Self.Caption  := strCaption;
  Application.Title := Self.Caption;

  //读初始密码
  MyPwd  := IniFile.ReadString('System', 'Pwd', 'jz322');

  //处理结果处等待刷新时间 = ( iWaitTime * 4 )
  iWaitTime := IniFile.ReadInteger('System', 'WaitTime', 4);
  if ( iWaitTime >= 50 ) or ( iWaitTime <= 1 ) then
    iWaitTime := 5;

  {搜索数据库看程序是否运行}
  //if GlobalFindAtom('PROGRAM_RUNNING') = 0 then
  { 假如没有找到,就添加到数据库}
  //  atom := GlobalAddAtom('PROGRAM_RUNNING')
  //else
  //begin
  { 如果程序已经运行,显示信息并退出程序 }
    //MessageDlg(LPCTSTR('警告:【' + Self.Caption + '】已经运行!'), mtWarning, [mbOK], 0);
  //  MessageBox(Self.Handle, LPCTSTR('警告:【' + Self.Caption + '】已经运行!'), '警告', MB_OK or MB_ICONSTOP);
  //  Halt;
  //end;

  //删除系统菜单
  //menuSys := GetSystemMenu(Handle, False);
  //DeleteMenu(menuSys, SC_SIZE, MF_BYCOMMAND);
  //DeleteMenu(menuSys, SC_MAXIMIZE, MF_BYCOMMAND);

  //最大化
  self.Width  := Screen.width;
  self.Height := Screen.height;

  //建立并初始化窗口
  FormBasic0    := TFormBasic0.Create(Self);
  FormBasic1    := TFormBasic1.Create(Self);
  FormBasic2    := TFormBasic2.Create(Self);
  FormBasic3    := TFormBasic3.Create(Self);
  FormOrder1    := TFormOrder1.Create(Self);
  FormOrder2    := TFormOrder2.Create(Self);
  FormOrder3    := TFormOrder3.Create(Self);
  FormOrder4    := TFormOrder4.Create(Self);
  FormLineLost0 := TFormLineLost0.Create(self);
  FormLineLost1 := TFormLineLost1.Create(self);
  FormLineLost2 := TFormLineLost2.Create(self);
  FormLineLost3 := TFormLineLost3.Create(self);
end;

procedure TFormMain.FormShow(Sender: TObject);
begin
  if ConnDB = true then
  begin
    //读数据库
    LoadTableBianDianZ('SELECT * FROM tx_BianDianZ ORDER BY fd_BianDianZID');
    LoadTableLine('SELECT * FROM tx_Line ORDER BY fd_LineID');
    LoadTableBianTai('SELECT * FROM tx_BianTai ORDER BY fd_BianTaiID');
    //用户登录-密码验证程序
    bLoginOK := False;
    UserLogin();
  end
  else begin
    bLoginOK := True;
    MyUser   := 'Guset';
    StatusBar.Panels[4].Text  := '操作人:【' + MyUser + '】您只拥有操作权限';
  end;

  /////////////////////////////////////////////////
  //设置背景图片
  SetImageToAllForm();
  /////////////////////////////////////////////////
  StatusBar.Panels[0].Width :=  1;
  StatusBar.Panels[1].Width := FormMain.Width - 600;
  StatusBar.Panels[2].Width := 180;
  StatusBar.Panels[3].Width := 170;
  StatusBar.Panels[4].Width := 250;
  /////////////////////////////////////////////////
  //显示警句
  AlertWord  := IniFile.ReadString('System', 'AlertWord', '        配电运行   安全第一');
  StatusBar.Panels[1].Text  := AlertWord;
  StatusBar.Panels[2].Text  := '拓新电力 Copy Right(2005年)';
  /////////////////////////////////////////////////
  WindowLeft.Checked := mxOutLookBarPro1.Visible;
  /////////////////////////////////////////////////
end;

procedure TFormMain.FormDestroy(Sender: TObject);
begin
  { 退出程序时,从数据表中删除添加的条目 }
  //GlobalDeleteAtom(atom);
  FreeAndNil(IniFile);
end;

procedure TFormMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  FormBasic0.Free();
  FormBasic1.Free();
  FormBasic2.Free();
  FormBasic3.Free();
  FormOrder1.Free();
  FormOrder2.Free();
  FormOrder3.Free();
  FormOrder4.Free();
  FormLineLost0.Free();
  FormLineLost1.Free();
  FormLineLost2.Free();
  FormLineLost3.Free();

  with MyModule do
  begin
    AdoConn.Close();
  end;
end;

procedure TFormMain.SetImageToAllForm();
var
  Bm : TBitmap;
  x,y,w,h:longint;
begin
  //如果你的Image1中有图片的话就把它清空
  Image.Picture := nil;
  //开始平铺
  Bm := TBitmap.Create();
  try
    //图片在此修改
    Bm.LoadFromFile(ExtractFilePath(Application.ExeName) + 'Mis2005.bmp');
    with Bm do
    begin
      w := width;
      h := height;
    end;
    y := 0;
    while y < height do
    begin
      x := 0;
      while x < width do
      begin
        image.Canvas.Draw(x, y, Bm);
        inc(x, w);
      end;
      inc(y, h);
    end;
  finally
    Bm.Free;
  end;
end;

Function TFormMain.ConnDB():Boolean;
var
  strDriver  : string;
  strSrvr    : string;
  strDatabase: string;
  strUid : string;
  strPwd : string;

  strConn: string;
  bConnOK: Boolean;
begin
  //读取ini
  strDriver  := IniFile.ReadString('DataBase', 'Driver',   '{Sybase System 11}');
  strSrvr    := IniFile.ReadString('DataBase', 'Srvr',     'lapd');
  strDatabase:= IniFile.ReadString('DataBase', 'Database', 'pdgl');
  strUid     := IniFile.ReadString('DataBase', 'Uid',      'sa');
  strPwd     := IniFile.ReadString('DataBase', 'Pwd',      'sasasa');
  //写入ini
  iniFile.WriteString('DataBase', 'Driver',   strDriver);
  iniFile.WriteString('DataBase', 'Srvr',     strSrvr);
  iniFile.WriteString('DataBase', 'Database', strDatabase);
  iniFile.WriteString('DataBase', 'Uid', strUid);
  iniFile.WriteString('DataBase', 'Pwd', strPwd);

  with MyModule do
  begin //with
    //关闭数据库连接
    AdoConn.Close();
    try
      //ADO连接Access(MDB)数据库
      // strConn :=
      //'Provider = MSDataShape.1;' +
      //'Data Provider = Microsoft.Jet.OLEDB.4.0;'
      //'Data Source = '+
      //'ExtractFilePath(Application.ExeName) +
      //'Data.mdb;';

      //ADO连接Sybase数据库(ODBC DSN)
      //strConn :=
      //'DSN=sybDSN;' +
      //'Database=pdgl;' +
      //'uid=sa; pwd=sasasa;';

      //ADO连接Sybase数据库(Sybase Driver)
      //strConn :=
      //'Driver={Sybase System 11};' +
      //'srvr=jztx;' +
      //'DataBase=pdgl;' +
      //'Uid=sa; Pwd=sasasa';

      strConn :=
      'Driver='   + strDriver   + ';' +
      'srvr='     + strSrvr     + ';' +
      'DataBase=' + strDatabase + ';' +
      'Uid='      + strUid      + ';' +
      'Pwd='      + strPwd      + ';';

      MyModule.AdoConn.ConnectionString := strConn;
      //ShowMessage(strConnecton);
      //打开数据库连接
      AdoConn.Open;
      //设置TQuery的数据库名字
      AdoQuery.Connection := AdoConn;

      bConnOK := True;

    except
      bConnOK := False;
      MessageBox(self.Handle, pAnsiChar('【Sybase数据库】连接失败!'), '警告', MB_ICONSTOP);
    end;  //try
  end;    // with

  Result  :=   bConnOK;
end;

procedure TFormMain.LoadTableBianDianZ(strSQL : string);
var
  ListItem : TListItem;
begin
   with  MyModule.AdoQuery do
   begin
    Close();
    SQL.Clear();
    SQL.Add(strSQL);

    try
      Open();

⌨️ 快捷键说明

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