📄 frmmain.pas
字号:
unit FrmMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, DBCtrls, Menus, ExtCtrls, TB97Ctls,
TB97, TB97Tlbr, ComCtrls,inifiles,ComObj,server_TLB, ImgList;
type
TFrmMain1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
Dock971: TDock97;
Toolbar971: TToolbar97;
ToolbarButton971: TToolbarButton97;
ToolbarButton972: TToolbarButton97;
Panel3: TPanel;
StatusBar1: TStatusBar;
N9: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
MainPanel: TPanel;
Panel1: TPanel;
TreeView1: TTreeView;
Splitter1: TSplitter;
Panel2: TPanel;
ToolbarButton973: TToolbarButton97;
N13: TMenuItem;
ImageList1: TImageList;
Panel4: TPanel;
ListView1: TListView;
Panel5: TPanel;
Panel6: TPanel;
StatusBarPanel: TPanel;
Image1: TImage;
Label1: TLabel;
ToolbarSep971: TToolbarSep97;
procedure TreeView1Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure ListView1DblClick(Sender: TObject);
procedure StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
private
{ Private declarations }
procedure ShowHint(AStr:string);
procedure AddToListView;
procedure ShowFrmUser1;
procedure ShowFrmUserInfo1;
procedure ShowFrmBroadcast1;
procedure ShowFrmReadUserMail1;
procedure ShowFrmReceive1;
procedure ShowFrmViewLogs1(ATag:integer);
procedure ShowFrmSysInfo1;
procedure ShowFrmConfig1;
procedure ShowFrmSysClean1;
procedure ShowFrmTrashMail1;
public
{ Public declarations }
procedure LogIn(ACon:string);
procedure LogOut;
end;
var
FrmMain1: TFrmMain1;
implementation
uses UnitDataModule, FrmUser, FrmReceive, FrmAboutBox,
FrmPassword, FrmBroadcast, FrmUserInfo, UnitConst, FrmReadUserMail,
FrmLogin, FrmViewLogs, FrmSysInfo, FrmConfig, FrmSysClean, FrmTrashMail;
{$R *.dfm}
procedure TFrmMain1.LogIn(ACon:string);
begin
MainPanel.Visible:=true;
Label1.Caption:='连接到 "'+ACon+'" ';
TreeView1.Selected:=frmmain1.TreeView1.Items[0];
TreeView1Click(self);
end;
procedure TFrmMain1.LogOut;
begin
MainPanel.Visible:=false;
Label1.Caption:='';
end;
procedure TFrmMain1.ShowHint(AStr:string);
begin
StatusBar1.Panels[1].Text:=' '+AStr;
StatusBar1.Refresh;
end;
{===============================================================================
+ start 选择功能 +
+ +
================================================================================}
procedure TFrmMain1.TreeView1Click(Sender: TObject);
var
Mynode:Ttreenode;
MyStr:string;
begin
Mynode:=treeview1.Selected;
if Mynode<>nil then
begin
MyStr:=Mynode.Text;
ShowHint(MyStr);
if Mynode.getFirstChild<>nil then //有子节点的话
begin
AddToListView;
end
else begin //没有子节点
if MyStr='用户管理' then
begin
ShowFrmUser1;
end
else if MyStr='用户使用情况' then
begin
ShowFrmUserInfo1;
end
else if MyStr='系统设置' then
begin
ShowFrmConfig1;
end
else if MyStr='发送通告' then
begin
ShowFrmBroadcast1;
end
else if MyStr='系统信息' then
begin
ShowFrmSysInfo1;
end
else if MyStr='系统清理' then
begin
ShowFrmSysClean1;
end
else if MyStr='垃圾邮件' then
begin
ShowFrmTrashMail1;
end
else if MyStr='用户邮件查询' then
begin
ShowFrmReadUserMail1;
end
else if MyStr='综合查询' then
begin
ShowFrmReceive1;
end
else if MyStr='system' then
begin
ShowFrmViewLogs1(1);
end
else if MyStr='smtp' then
begin
ShowFrmViewLogs1(2);
end
else if MyStr='pop3' then
begin
ShowFrmViewLogs1(3);
end
else if MyStr='reply' then
begin
ShowFrmViewLogs1(4);
end
end;
end;
end;
procedure TFrmMain1.ListView1DblClick(Sender: TObject);
var
i:integer;
begin
try
if ListView1.Selected<>nil then
begin
for i:=0 to treeview1.Items.Count-1 do
begin
if treeview1.Items[i].Text=ListView1.Selected.Caption then
begin
treeview1.Selected:=treeview1.Items[i];
TreeView1Click(self);
exit;
end;
end;
end;
finally
end;
end;
//增加到listview中--------------------------------------------------------------
procedure TFrmMain1.AddToListView;
var
MyListItem:TListItem;
Mynode:Ttreenode;
begin
if treeview1.Selected<>nil then
begin
Panel4.BringToFront;
ListView1.clear;
Panel5.Caption:=TreeView1.Selected.Text;
Mynode:=TreeView1.Selected.getFirstChild;
while Mynode<>nil do
begin
MyListItem:=ListView1.Items.Add;
MyListItem.Caption:=Mynode.Text;
MyListItem.ImageIndex:=Mynode.ImageIndex;
Mynode:=Mynode.getNextSibling;
end;
end;
end;
//------------------------------------------------------------------------------
{===============================================================================
+ end 选择功能 +
+ +
================================================================================}
{===============================================================================
| start 显示窗口 |
| |
================================================================================}
procedure TFrmMain1.ShowFrmUser1;
begin
FrmUser1.Show; //显示窗体
FrmUser1.Refresh;
screen.Cursor:=crHourGlass;
FrmUser1.IniShow;
screen.Cursor:=crDefault;
end;
procedure TFrmMain1.ShowFrmUserInfo1;
begin
FrmUserInfo1.Show; //显示窗体
FrmUserInfo1.Refresh;
screen.Cursor:=crHourGlass;
FrmUserInfo1.IniShow;
screen.Cursor:=crDefault;
end;
procedure TFrmMain1.ShowFrmBroadcast1;
begin
FrmBroadcast1.Show; //显示窗体
FrmBroadcast1.Refresh;
screen.Cursor:=crHourGlass;
FrmBroadcast1.IniShow;
screen.Cursor:=crDefault;
end;
procedure TFrmMain1.ShowFrmReadUserMail1;
begin
FrmReadUserMail1.Show; //显示窗体
FrmReadUserMail1.Refresh;
screen.Cursor:=crHourGlass;
FrmReadUserMail1.IniShow;
screen.Cursor:=crDefault;
end;
procedure TFrmMain1.ShowFrmReceive1;
begin
FrmReceive1.Show; //显示窗体
FrmReceive1.Refresh;
screen.Cursor:=crHourGlass;
FrmReceive1.IniShow;
screen.Cursor:=crDefault;
end;
procedure TFrmMain1.ShowFrmSysInfo1;
begin
FrmSysInfo1.Show; //显示窗体
FrmSysInfo1.Refresh;
screen.Cursor:=crHourGlass;
FrmSysInfo1.IniShow;
screen.Cursor:=crDefault;
end;
procedure TFrmMain1.ShowFrmViewLogs1(ATag:integer);
begin
FrmViewLogs1.Show; //显示窗体
FrmViewLogs1.Refresh;
screen.Cursor:=crHourGlass;
FrmViewLogs1.IniShow(ATag);
screen.Cursor:=crDefault;
end;
procedure TFrmMain1.ShowFrmConfig1;
begin
FrmConfig1.Show; //显示窗体
FrmConfig1.Refresh;
screen.Cursor:=crHourGlass;
FrmConfig1.LoadConfig;
screen.Cursor:=crDefault;
end;
procedure TFrmMain1.ShowFrmSysClean1;
begin
FrmSysClean1.Show; //显示窗体
FrmSysClean1.Refresh;
end;
procedure TFrmMain1.ShowFrmTrashMail1;
begin
FrmTrashMail1.Show; //显示窗体
FrmTrashMail1.Refresh;
screen.Cursor:=crHourGlass;
FrmTrashMail1.IniShow;
screen.Cursor:=crDefault;
end;
{===============================================================================
| end 显示窗口 |
| |
===============================================================================}
//初始化------------------------------------------------------------------------
procedure TFrmMain1.FormCreate(Sender: TObject);
var
myinifile:Tinifile;//ini文件
HostStr:string;
begin
myinifile:=Tinifile.Create(extractfilepath(application.ExeName)+'config.ini');
try
HostStr:=myinifile.ReadString('CONFIG','ADDRESS','');
finally
myinifile.Free;
end;
end;
//------------------------------------------------------------------------------
//关闭--------------------------------------------------------------------------
procedure TFrmMain1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
application.Terminate;
end;
//------------------------------------------------------------------------------
{===============================================================================
start 菜单
===============================================================================}
procedure TFrmMain1.N11Click(Sender: TObject);
begin
FrmPassword1.ClearEdit;
while true do
begin
if FrmPassword1.ShowModal=mrOk then
begin
if FrmPassword1.Checktrue=true then
begin
if UnitDataModule1.CheckPass(FrmPassword1.Edit1.Text)=true then
begin
if UnitDataModule1.SetPassword(FrmPassword1.Edit2.Text)=true then
begin
application.MessageBox('修改密码成功','提示信息',MB_ok or MB_ICONINFORMATION);
break;
end
else
begin
application.MessageBox('修改密码出错','提示信息',MB_ok or MB_ICONSTOP);
end;
end
else begin
application.MessageBox('旧密码不正确,请重新输入。','提示信息',MB_ok or MB_ICONINFORMATION);
end;
end;
end
else begin
break;
end;
end;
end;
//
procedure TFrmMain1.N2Click(Sender: TObject);
begin
application.Terminate;
end;
//
procedure TFrmMain1.N9Click(Sender: TObject);
begin
FrmLogin1.show;
end;
//
procedure TFrmMain1.N13Click(Sender: TObject);
begin
LogOut;
end;
//
procedure TFrmMain1.N6Click(Sender: TObject);
begin
FrmAboutBox1.ShowModal;
end;
{===============================================================================
end 菜单
===============================================================================}
procedure TFrmMain1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
with StatusBarPanel do
begin
Parent:=StatusBar1;
Top:=Rect.Top;
Left:=1;
Height:=StatusBar1.Height;
width:=StatusBar1.Panels[0].Width-2;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -