📄 frmmain.pas
字号:
unit frmMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, Menus, ImgList, ComCtrls, ToolWin, Buttons, StdCtrls, xutils,
rcdStud, FrmDwxx, FrmJtxx, FrmGrxx, FrmJbxx, FrmHttp, shellapi, Registry,
XPMenu, udcHintEx;
type
TfmMain = class(TForm)
Panel1: TPanel;
Splitter1: TSplitter;
Panel2: TPanel;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
Panel4: TPanel;
tvstud: TTreeView;
STB: TStatusBar;
barTB: TToolBar;
ToolButton1: TToolButton;
icolib: TImageList;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton9: TToolButton;
N3: TMenuItem;
T1: TMenuItem;
S1: TMenuItem;
H1: TMenuItem;
S2: TMenuItem;
A1: TMenuItem;
ImageList1: TImageList;
N6: TMenuItem;
FmJbxx1: TFmJbxx;
FmGrxx1: TFmGrxx;
FmJtxx1: TFmJtxx;
FmDwxx1: TFmDwxx;
dlgOpen: TOpenDialog;
dlgSave: TSaveDialog;
fmHttp1: TfmHttp;
gohttp: TTimer;
ImageList2: TImageList;
PopupMenu1: TPopupMenu;
SendMail1: TMenuItem;
CutDel1: TMenuItem;
Show1: TMenuItem;
ToolButton5: TToolButton;
N7: TMenuItem;
N8: TMenuItem;
XPMenu1: TXPMenu;
dcHintEx1: TdcHintEx;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure N2Click(Sender: TObject);
// procedure S1Click(Sender: TObject);
procedure T1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton10Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure tvstudClick(Sender: TObject);
function ArrGetFreeNO: integer;
procedure FormPaint(Sender: TObject);
// procedure Edit1Enter(Sender: TObject);
procedure gohttpTimer(Sender: TObject);
function MyShellExecute(const sAction, sFileName, sPara: string): Boolean;
procedure SendMail1Click(Sender: TObject);
procedure CutDel1Click(Sender: TObject);
procedure Show1Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure A1Click(Sender: TObject);
procedure S2Click(Sender: TObject);
// procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
newLItem: TlistItem;
datafilename: string;
temstud: basestud;
studfile: file of basestud;
arrstud: array[1..100] of basestud;
procedure cardview(i: string; APn: integer);
procedure StudFileSave(studfilename: string);
procedure StudFileOpen(studfilename: string);
procedure FillList(py: string);
procedure ArrstudDelete(i: integer);
procedure SeeDetail;
procedure SendqqMail;
{ Public declarations }
end;
var
fmMain: TfmMain;
implementation
uses frmlogin, FrmDataIn, FrmChangePassword, FrmSendMail, FrmSmtpSetup,
FrmOsoonUser, FrmSSendMail, FrmAbout;
{$R *.DFM}
var
HaveLogin: boolean;
StudID: integer; //用于标识当前选中的同学ID号
procedure TfmMain.FormCreate(Sender: TObject);
begin
havelogin := false;
datafilename := 'data.par'; //同学录数据文件默认文件名
studfileopen(datafilename); //打开同学录数据文件
filllist(''); //没有检索拼音的情况下添充数据
fmjbxx1.Visible := true;
fmgrxx1.visible := false;
fmjtxx1.visible := false;
fmdwxx1.visible := false;
fmhttp1.Visible := false;
end;
procedure TfmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
studfilesave(datafilename);
//调用退出
fmlogin.close;
end;
procedure TfmMain.N2Click(Sender: TObject);
begin
fmlogin.Close;
end;
procedure TfmMain.T1Click(Sender: TObject);
begin
if t1.Checked then
begin
msgbox('不看了');
t1.Checked := false;
barTB.Visible := false;
end
else
begin
msgbox('看');
t1.Checked := true;
barTB.Visible := true;
end;
end;
procedure TfmMain.ToolButton2Click(Sender: TObject);
var i: integer;
begin
i := fmmain.ArrGetFreeNO;
cardview(inttostr(i), 0);
end;
//临时功能,正式版将cut/
//删除4 到100号的数据内容
procedure TfmMain.ToolButton10Click(Sender: TObject);
var i: integer;
begin
{for i:=4to 100 do
begin
fmmain.ArrstudDelete(i);
fmmain.StudFileSave('data.dat');//保存数据
end;
//更新显示
fmmain.FillList('');
}
end;
procedure TfmMain.tvstudClick(Sender: TObject);
var
strWS: string;
temstr: string; //临时用到的字符串变量
osoonfile: file of osoonuser;
newosoonuser: osoonuser;
begin
strWS := fmmain.tvstud.selected.text;
if strws = '基本情况' then
begin
fmjbxx1.Visible := true;
fmgrxx1.visible := false;
fmjtxx1.visible := false;
fmdwxx1.visible := false;
fmhttp1.Visible := false;
end;
if strws = '个人情况' then
begin
fmjbxx1.Visible := false;
fmgrxx1.visible := true;
fmjtxx1.visible := false;
fmdwxx1.visible := false;
fmhttp1.Visible := false;
end;
if strws = '家庭情况' then
begin
fmjbxx1.Visible := false;
fmgrxx1.visible := false;
fmjtxx1.visible := true;
fmdwxx1.visible := false;
fmhttp1.Visible := false;
end;
if strws = '单位情况' then
begin
fmjbxx1.Visible := false;
fmgrxx1.visible := false;
fmjtxx1.visible := false;
fmdwxx1.visible := true;
fmhttp1.Visible := false;
end;
if strws = '使用说明' then
begin
fmjbxx1.Visible := false;
fmgrxx1.visible := false;
fmjtxx1.visible := false;
fmdwxx1.visible := false;
//对浏览器进行操作的初始化
temstr := 'file:///' + extractfilepath(application.exename) + 'help.html';
fmhttp1.Panel2.Caption := '使用说明';
fmhttp1.WebBrowser.Navigate(temstr);
fmhttp1.Visible := true;
end;
if strws = '傲行同学录留言' then
begin
temstr := 'OsoonINI.dat';
if FileExists(temstr) then
begin
if havelogin = false then //如果已经登陆就不需要重新登陆
begin
assignfile(osoonfile, temstr);
reset(osoonfile);
read(osoonfile, newosoonuser);
closefile(osoonfile);
temstr := 'www.osoon.com/login.php?username=' + newosoonuser.username + '&passwd=' + newosoonuser.password + '';
fmhttp1.Panel2.caption := '正在登陆请等待';
fmhttp1.webbrowser.Navigate(temstr);
havelogin := true;
gohttp.Interval :=newosoonuser.webdelay*1000;
gohttp.Enabled := true;
end;
fmjbxx1.Visible := false;
fmgrxx1.visible := false;
fmjtxx1.visible := false;
fmdwxx1.visible := false;
fmhttp1.Visible := true;
if havelogin then
begin
fmhttp1.WebBrowser.Refresh;
end;
end
else
begin
msgbox('请先对傲行网登陆信息进行设置!');
fmjbxx1.visible := true;
fmgrxx1.visible := false;
fmjtxx1.visible := false;
fmdwxx1.visible := false;
fmhttp1.visible := false;
end;
end;
if strws = '软件更新' then
begin
fmjbxx1.Visible := false;
fmgrxx1.visible := false;
fmjtxx1.visible := false;
fmdwxx1.visible := false;
fmhttp1.WebBrowser.Navigate('http://pcode.go.163.com');
fmhttp1.Panel2.Caption := '软件更新';
//fmhttp1.WebBrowser.Refresh;
fmhttp1.Visible := true;
end;
if strws = '改变密码' then
begin
fmmain.Enabled := false;
fmcp.visible := true;
end;
if strws = '发送群体EMAIL' then
begin
fmmain.enabled := false;
fmsendmail.visible := true;
end;
if strws = 'SMTP设置' then
begin
fmmain.Enabled := false;
fmsmtpsetup.visible := true;
end;
if strws = '傲行网登陆设置' then
begin
FmOsoonUser.visible := true;
fmmain.enabled := false;
end;
end;
{用于保存同学录的数据
入口参数为studfilename 类型为string
功能为将
一个全局变量arrstud 此变量数据类型为basestud(基本学生数据类型)
定性主文件名为studfilename的数据文件
内部变量为i
用于标定数据文件中数据组数
}
procedure TfmMain.StudFileSave(studfilename: string);
var
i: integer;
begin
assignfile(studfile, studfilename);
rewrite(studfile);
reset(studfile);
for i := 1 to 100 do
begin
write(studfile, fmmain.arrstud[i]);
end;
closefile(studfile);
//msgbox('数据已经保存,按确定后退出程序!');
end;
{用于打开同学录数据文件
入口参数为studfilename 类型为string
功能为将文件名为studfilename的文件数据读入
一个全局变量arrstud 此变量数据类型为basestud(基本学生数据类型)
内部变量为i
用于标定数据文件中数据组数
}
procedure TfmMain.StudFileOpen(studfilename: string);
var
i: integer;
begin
i := 1;
assignfile(studfile, studfilename);
reset(studfile);
while not eof(studfile) do
begin
read(studfile, temstud); //
fmmain.arrstud[i] := temstud; // 将文件数据读入数组中
i := i + 1; //数据指针向后移动
end;
end;
{添充listview数据,
入口参数为py字符串类型
功能:
把全局变量arrstud数组中检索拼音为py的数据添充到listview中去
如果py为空则将全部数据添入。
}
procedure TfmMain.FillList(py: string);
var
b_item, p_item, h_item, c_item: Tlistitem;
i: integer;
begin
if py <> '' then
begin
end
else
begin
fmjbxx1.ListView1.items.clear;
fmgrxx1.ListView1.Items.Clear;
fmjtxx1.ListView1.Items.Clear;
fmdwxx1.ListView1.Items.clear;
for i := 1 to 100 do
begin
if not arrstud[i].s_v then //如果数据已经被占用说明
begin // 数组项目不为空则写出
//公共信息项目
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -