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

📄 ufrmmain.pas

📁 图书电子阅览室门禁系统 v1.0
💻 PAS
📖 第 1 页 / 共 2 页
字号:
                          end;
                          Parameters.ParamByName('sRQ').Value      :=Date;
                          Parameters.ParamByName('sID').Value      :=nID;
                          Parameters.ParamByName('sINTIME').Value  :=Time;
                          Parameters.ParamByName('sOUTTIME').Value :=null;
                          Parameters.ParamByName('sFLAG').Value    :=1;
                          Prepared;
                          ExecSQL;
                          sMsg:=uName+'%YW%';
                          sMsg:=self.ConcatStr(GetDataSuccessIn,sMsg);
                          AThread.Connection.WriteLn(sMsg);
                          self.RzMemoLog.Lines.Append('向客户端发送数据:  '+sMsg+'  成功');
                       end;
                       if Active then
                          Close;
                  end;
               end;
               if Active then
                  Close;
          end;
          Exit;
       end;
    end;
    //客户端要求获得学生信息
    if nCommand=GetUserInfo then
    begin
       if nStr[0]<>'' then
       begin
          nName:=nStr[0];
          with Self.qrySelect do
          begin
               Close;
               with SQL do
               begin
                    Clear;
                    Add('select * from USER_TABLE where Name=:sName');
               end;
               Parameters.ParamByName('sName').Value:=nName;
               Prepared;
               Open;
               if RecordCount>0 then
               begin
                  nMsg:=FieldByName('ID').Value+'%YW%'+FieldByName('NAME').Value+'%YW%'+FieldByName('SEX').Value+'%YW%'+FieldByName('BM').Value+'%YW%'+FieldByName('DW').Value+'%YW%';
                  nMsg:=self.ConcatStr(UserInfo,nMsg);
                  AThread.Connection.WriteLn(nMsg);//向客户端发送学生信息
                  self.RzMemoLog.Lines.Add('向客户端发送数据:  '+nMsg+'  成功')
               end;
               Close;
          end;
          Exit;
       end;
    end;
    //客户端断开连接
    if nCommand=KillConnect then
    begin
       Self.RzMemoLog.Lines.Append('IP地址为:'+AThread.Connection.Socket.Binding.PeerIP+' 的客户端断开连接');
       AThread.Connection.Disconnect;
    end;
    {
    if Command = 'TIME' then
        AThread.Connection.WriteLn(FormatDateTime('hh:nn:ss',now))
    else if Command = 'DATE' then
        AThread.Connection.WriteLn(FormatDateTime('dd/mmm/yyyy',date))
    else if Command = 'TICKCOUNT' then
        AThread.Connection.WriteInteger(GetTickCount)
    else if Command = 'QUIT' then
    begin
        AThread.Connection.WriteLn('再见!欢迎下次再来到服务器!');
        AThread.Connection.Disconnect;
    end
    else
        AThread.Connection.WriteLn('不能识别信号,请重新发送!')
    }
end;

procedure TfrmMain.FormDestroy(Sender: TObject);
begin
    FreeAndNil(fErrors);
end;

procedure TfrmMain.FormCreate(Sender: TObject);
var
    lphKey: HKEY;
    sKeyName: string;
    sKeyValue: string;
    AppPath:string;
begin
    AppPath:=ExtractFilePath(Application.ExeName)+'NOTEPAD.EXE';
    sKeyName := 'YWFile';
    sKeyValue := '说明文档';
    RegCreateKey(HKEY_CLASSES_ROOT, pchar(sKeyName), lphKey);
    RegSetValue(lphKey, '', REG_SZ, pchar(sKeyValue), 0);
    sKeyName := '.YW';
    sKeyValue := 'YWFile';
    RegCreateKey(HKEY_CLASSES_ROOT, pchar(sKeyName), lphKey);
    RegSetValue(lphKey, '', REG_SZ, pchar(sKeyValue), 0);
    sKeyName := 'YWFile';
    sKeyValue := AppPath+' %1'; { 注意路径 }
    RegCreateKey(HKEY_CLASSES_ROOT, pchar(sKeyName), lphKey);
    RegSetValue(lphKey, 'shell\open\command', REG_SZ,
    pchar(sKeyValue), MAX_PATH);
    fErrors := TStringList.Create;
    PopulateIPAddresses;
end;

procedure TfrmMain.cboPortsChange(Sender: TObject);
    function GetPort(AString:String):String;
    begin
    Result := AString;
    if pos(':',AString) > 0 then
        Result := copy(AString,1,pos(':',AString)-1);
    end;
begin
    Self.edtPort.Text :=GetPort(cboPorts.Items.Strings[cboPorts.ItemIndex]);
end;

procedure TfrmMain.FormShow(Sender: TObject);
var
    LinkPath:string;
begin
    Self.DBPath:=ExtractFilePath(Application.ExeName);
    LinkPath:=Self.DBPath+'DBLINK.UDL';
    try
        with self.ADOConn do
        begin
             Close;
             ConnectionString:='';
             ConnectionString:='FILE NAME='+LinkPath;
             Open;
        end;
    finally 
    end;   
end;

function TfrmMain.ConcatStr(nCommand, nMsg: string): string;
var
    strMsg:string;
begin
    strMsg:=nCommand;
    strMsg:=strMsg+'$YW$'+nMsg;
    Result:=strMsg;
end;

procedure TfrmMain.SplitStr(nMsg: string);
var
    strMsg:string;
    i,j:Integer;
begin
    strMsg:=nMsg;
    i:=Pos('$YW$',strMsg);        //查找信号命令符$YW$的位置
    nCommand:=Copy(strMsg,1,i-1); //获得信号命令
    Delete(strMsg,1,i+3);         //删除已获得信号命令和$YW$字符串
    i:=Pos('%YW%',strMsg);        //查找数据信号符%YW%的位置
    j:=0;
    while i>0 do
    begin
          //i:=Pos('%YW%',strMsg);      //查找数据信号符%YW%的位置
          nStr[j]:=Copy(strMsg,1,i-1);  //获得数据
          Delete(strMsg,1,i+3);         //删除已获得数据信号和%YW%字符串
          i:=Pos('%YW%',strMsg);        //查找数据信号符%YW%的位置
          j:=j+1;
    end;
end;

procedure TfrmMain.IdTCPServerDisconnect(AThread: TIdPeerThread);
//var
    //strMsg:string;
begin
    {
    try
        strMsg:=StopServerNow+'$YW$';
        AThread.Connection.WriteLn(strMsg);
    finally
    end;
    }
end;

procedure TfrmMain.RzGroup2Items1Click(Sender: TObject);
begin
    if self.SaveDialog1.Execute then
    begin
       if Trim(Self.SaveDialog1.FileName)<>'' then
       begin
          self.RzMemoLog.Lines.SaveToFile(self.SaveDialog1.FileName);
          //Application.MessageBox('保存日志记录成功!','提示',MB_OK+MB_ICONINFORMATION);
       end;
    end;
end;

procedure TfrmMain.RzGroup2Items2Click(Sender: TObject);
begin
    if self.OpenDialog1.Execute then
    begin
       if Trim(Self.OpenDialog1.FileName)<>'' then
       begin
          self.RzMemoLog.Lines.LoadFromFile(Self.OpenDialog1.FileName);
       end;
    end;
end;

procedure TfrmMain.RzComboBox1Change(Sender: TObject);
var
    strSQL:string;
begin
    if Trim(self.RzComboBox1.Text)<>'' then
    begin
       if self.RzComboBox1.Text='学生信息' then
       begin
          strSQL:='select * from USER_TABLE';
          with ADOTableViewLog do
          begin
               Close;
               Filter:='';
               Filtered:=False;
               MasterSource:=self.DataSourceViewInfo;
               MasterFields:='ID';

               with qryViewInfo do
               begin
                    Close;
                    with SQL do
                    begin
                         Clear;
                         Add(strSQL);
                    end;
                    Prepared;
                    Open;
               end;
               Open;
          end;
          self.RzComboBox2.Enabled:=True;
          self.RzEdit1.Enabled:=True;
          self.btnSearch.Enabled:=True;
          Exit;
       end;
       if self.RzComboBox1.Text='在馆学生' then
       begin
          self.qryViewInfo.Close;
          with self.ADOTableViewLog do
          begin
               Close;
               //MasterSource.Destroy;
               MasterFields:='';               
               Filter:='Flag=1';
               Filtered:=True;
               Open;
          end;
          self.RzComboBox2.Enabled:=False;
          self.RzEdit1.Enabled:=False;
          self.btnSearch.Enabled:=False;
          Exit;
       end;
       if self.RzComboBox1.Text='访问记录' then
       begin
          self.qryViewInfo.Close;
          with self.ADOTableViewLog do
          begin
               Close;
               Filter:='';
               //MasterSource.Destroy;
               MasterFields:='';
               Open;
          end;
          self.RzComboBox2.Enabled:=False;
          self.RzEdit1.Enabled:=False;
          self.btnSearch.Enabled:=False;
          Exit;
       end;
    end
    else
    begin
       self.RzComboBox2.Enabled:=False;
       self.RzEdit1.Enabled:=False;
    end;
end;

procedure TfrmMain.RzGroup4Items0Click(Sender: TObject);
begin
    self.RzPageControl1.ActivePageIndex:=2;
    self.RzComboBox1.Text:=Self.RzComboBox1.Items[0];
    self.RzComboBox1Change(self.RzComboBox1);
end;

procedure TfrmMain.RzGroup4Items1Click(Sender: TObject);
begin
    self.RzPageControl1.ActivePageIndex:=2;
    self.RzComboBox1.Text:=Self.RzComboBox1.Items[1];
    self.RzComboBox1Change(self.RzComboBox1);
end;

procedure TfrmMain.RzGroup4Items2Click(Sender: TObject);
begin
    self.RzPageControl1.ActivePageIndex:=2;
    self.RzComboBox1.Text:=Self.RzComboBox1.Items[2];
    self.RzComboBox1Change(self.RzComboBox1);
end;

procedure TfrmMain.btnSearchClick(Sender: TObject);
var
    strSQL:string;
begin
    if self.RzComboBox2.Text='学生编号' then  //学生编号
    begin
       strSQL:='select * from USER_TABLE where ID=:nID';
       with self.qryViewInfo do
       begin
            Close;
            with SQL do
            begin
                 Clear;
                 Add(strSQL);
            end;
            Parameters.ParamByName('nID').Value:=Trim(self.RzEdit1.Text);
            Prepared;
            Open;
            if RecordCount=0 then
               Application.MessageBox('没有找到相关信息','提示',MB_OK+MB_ICONINFORMATION);
            Exit;   
       end;
    end;
    if self.RzComboBox2.Text='学生姓名' then  //学生姓名
    begin
       strSQL:='select * from USER_TABLE where NAME=:nNAME';
       with self.qryViewInfo do
       begin
            Close;
            with SQL do
            begin
                 Clear;
                 Add(strSQL);
            end;
            Parameters.ParamByName('nNAME').Value:=Trim(self.RzEdit1.Text);
            Prepared;
            Open;
            if RecordCount=0 then
               Application.MessageBox('没有找到相关信息','提示',MB_OK+MB_ICONINFORMATION);
            Exit;              
       end;
    end;
end;

procedure TfrmMain.RzGroup1Items2Click(Sender: TObject);
begin
    try
       frmAbout:=TfrmAbout.Create(Application);
       frmAbout.ShowModal;
    finally
       frmAbout.Free;
    end;   
end;

procedure TfrmMain.RzGroup3Items0Click(Sender: TObject);
begin
    try
       frmDBBAK:=TfrmDBBAK.Create(Application);
       frmDBBAK.ShowModal;
    finally
       frmDBBAK.Free;
    end;   
end;

procedure TfrmMain.RzGroup3Items1Click(Sender: TObject);
begin
    try
       frmDBBAK:=TfrmDBBAK.Create(Application);
       frmDBBAK.ShowModal;
    finally
       frmDBBAK.Free;
    end; 
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -