📄 ufrmmain.pas
字号:
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 + -