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

📄 frmmain.pas

📁 一个简单的同学录软件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -