📄 unitmain.pas
字号:
unit UnitMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ImgList, ComCtrls, ToolWin, DB, DBTables;
type
TFormMain = class(TForm)
MainMenu1: TMainMenu;
MenuSystem: TMenuItem;
Menulogout: TMenuItem;
MenuClose: TMenuItem;
MenuModule: TMenuItem;
MenuStudentQuery: TMenuItem;
MenuStudentManage: TMenuItem;
MenuTeacherQuery: TMenuItem;
MenuTeacherManage: TMenuItem;
MenuScoreQuery: TMenuItem;
ToolBar1: TToolBar;
ToolButtonStudentQuery: TToolButton;
ToolButtonStudentManage: TToolButton;
ToolButtonTeacherQuery: TToolButton;
ToolButtonTeacherManage: TToolButton;
ToolButtonScoreQuery: TToolButton;
ImageList1: TImageList;
N1: TMenuItem;
PopupMenu1: TPopupMenu;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
procedure MenuStudentQueryClick(Sender: TObject);
procedure MenuStudentManageClick(Sender: TObject);
procedure MenuTeacherQueryClick(Sender: TObject);
procedure MenuTeacherManageClick(Sender: TObject);
procedure MenuScoreQueryClick(Sender: TObject);
procedure FormShow(Sender: TObject);
//声明一个自定义函数,注册ODBC数据源
function RegisterODBC(DSN:string;
AccessFile:string):Boolean;
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormMain: TFormMain;
implementation
uses UnitStudentQuery, UnitStudentManage, UnitTeacherQuery,
UnitTeacherManage, UnitScoreQuery,Registry, UnitLogin;
{$R *.dfm}
//自定义函数:实现Access数据源的ODBC注册
function TFormMain.RegisterODBC(DSN:string; AccessFile:string):Boolean;
var
Reg : TRegistry; //注册表类,用来操作注册表, 需要添加Registry单元
Dir : PChar; //保存系统目录
SysDir: string; //保存系统目录
begin
//初始化注册表类
Reg:=TRegistry.Create();
//指定根键
Reg.RootKey:=HKEY_LOCAL_MACHINE;
//注册DSN名称(参数True表示当该键值不存在时,则创建它)
if(Reg.OpenKey('software\odbc\odbc.ini\odbc data sources',
true)) then
Reg.WriteString(DSN,'Microsoft Access Driver (*.mdb)')
else
begin
//显示提示信息
Application.MessageBox('ODBC注册失败。','错误',
MB_OK OR MB_ICONERROR);
//函数返回false(函数名赋值为False)
RegisterODBC:=false;
end;
//关闭注册类
Reg.CloseKey();
//注册ODBC的数据源(参数True表示当该键值不存在时,则创建它)
if(Reg.OpenKey('Software\odbc\odbc.ini\'+DSN,true)=true) then
begin
//为Dir变量申请255个字符的空间
GetMem(Dir,255);
//获取Windows的系统目录
GetWindowsDirectory(Dir,255);
SysDir:=Dir+'\system32\odbcjt32.dll';
//写入注册表
Reg.WriteString('DBQ',AccessFile);
Reg.WriteString('Driver',SysDir);
Reg.WriteString('DriverID','25');
Reg.WriteString('FIL','MS Access;');
Reg.WriteString('UID','');
end
else
begin
//显示提示信息
Application.MessageBox('ODBC注册失败。','错误',
MB_OK OR MB_ICONERROR);
//函数返回false(函数名赋值为False)
RegisterODBC:=false;
end;
//关闭注册类
Reg.CloseKey();
//函数返回True(函数名赋值为True)
RegisterODBC:=True;
end;
//响应学生查询菜单
procedure TFormMain.MenuStudentQueryClick(Sender: TObject);
var
i:integer;
begin
//逐一查找所有子窗口,判断是否已经存在该窗口
for i:=1 to FormMain.MDIChildCount do
//判断每一个子窗口是否属于TFormStudentQuery
if FormMain.MDIChildren[i-1].ClassType=TFormStudentQuery then
begin
//退出该函数
exit;
end;
//如果没有找到TFormStudentQuery,则创建一个新的子窗口
Application.CreateForm(TFormStudentQuery,FormStudentQuery);
//选中菜单项
MenuStudentQuery.Checked:=true;
//工具条下压
ToolButtonStudentQuery.Down:=true;
end;
//响应学生管理菜单
procedure TFormMain.MenuStudentManageClick(Sender: TObject);
var
i:integer;
begin
//逐一查找所有子窗口,判断是否已经存在该窗口
for i:=1 to FormMain.MDIChildCount do
//判断每一个子窗口是否属于TFormStudentQuery
if FormMain.MDIChildren[i-1].ClassType=TFormStudentManage then
begin
//退出该函数
exit;
end;
//如果没有找到TFormStudentQuery,则创建一个新的子窗口
Application.CreateForm(TFormStudentManage, FormStudentManage);
//选中菜单项
MenuStudentManage.Checked:=true;
//工具条下压
ToolButtonStudentManage.Down:=true;
end;
//响应教师查询菜单
procedure TFormMain.MenuTeacherQueryClick(Sender: TObject);
var
i:integer;
begin
//逐一查找所有子窗口,判断是否已经存在该窗口
for i:=1 to FormMain.MDIChildCount do
//判断每一个子窗口是否属于TFormStudentQuery
if FormMain.MDIChildren[i-1].ClassType=TFormTeacherQuery then
begin
//退出该函数
exit;
end;
//如果没有找到TFormStudentQuery,则创建一个新的子窗口
Application.CreateForm(TFormTeacherQuery, FormTeacherQuery);
//选中菜单项
MenuTeacherQuery.Checked:=true;
//工具条下压
ToolButtonTeacherQuery.Down:=true;
end;
//响应教师管理菜单
procedure TFormMain.MenuTeacherManageClick(Sender: TObject);
var
i:integer;
begin
//逐一查找所有子窗口,判断是否已经存在该窗口
for i:=1 to FormMain.MDIChildCount do
//判断每一个子窗口是否属于TFormStudentQuery
if FormMain.MDIChildren[i-1].ClassType=TFormTeacherManage then
begin
//退出该函数
exit;
end;
//如果没有找到TFormStudentQuery,则创建一个新的子窗口
Application.CreateForm(TFormTeacherManage, FormTeacherManage);
//选中菜单项
MenuTeacherManage.Checked:=true;
//工具条下压
ToolButtonTeacherManage.Down:=true;
end;
//响应成绩查询菜单
procedure TFormMain.MenuScoreQueryClick(Sender: TObject);
var
i:integer;
begin
//逐一查找所有子窗口,判断是否已经存在该窗口
for i:=1 to FormMain.MDIChildCount do
//判断每一个子窗口是否属于TFormStudentQuery
if FormMain.MDIChildren[i-1].ClassType=TFormScoreQuery then
begin
//退出该函数
exit;
end;
//如果没有找到TFormStudentQuery,则创建一个新的子窗口
Application.CreateForm(TFormScoreQuery, FormScoreQuery);
//选中菜单项
MenuScoreQuery.Checked:=true;
//工具条下压
ToolButtonScoreQuery.Down:=true;
end;
procedure TFormMain.FormShow(Sender: TObject);
begin
RegisterODBC('school','school');
FormLogin:=TFormLogin.Create(Self);
FormLogin.ShowModal();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -