📄 unitmain.pas
字号:
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 + -