📄 unit1.pas
字号:
//播放记录的声音
//声音所在的目录按照系统设置的数据保存目录WaveDir
procedure TfmMain.PlayWave(fname:TFileName);
begin
MediaPlayer2.FileName:=fname;
MediaPlayer2.Open;
MediaPlayer2.Play;
end;
//停止播放记录的声音
procedure TfmMain.StopWave;
begin
MediaPlayer2.Stop;
MediaPlayer2.Close;
end;
//保存或加载房间设置
procedure TfmMain.LoadStoreRoomState(IsLoad:boolean);
var roomf:File of TRoomExistType;
fname:TFileName;
begin
fname:=RootDir+'\room.cfg';
assignfile(roomf,fname);
if(not FileExists(fname)) then begin
rewrite(roomf);
write(roomf,Caller.RoomGood);
closefile(roomf);
end
else begin
if(IsLoad) then begin
reset(roomf);
read(roomf,Caller.RoomGood);
closefile(roomf);
end
else begin
rewrite(roomf);
write(roomf,Caller.RoomGood);
closefile(roomf);
end;
end;
end;
//加载系统设置
procedure TfmMain.LoadSystemConfig;
var fname:TFileName;
tfile:File of TSysSet;
begin
fname:=RootDir+'\sysset.cfg';
assignfile(tfile,fname);
if(not FileExists(fname)) then begin
SysSet.PortBase:=$378;
SysSet.RoomBits:=4;
SysSet.PhoneLine1:=100;
SysSet.PhoneLine2:=101;
SysSet.CallInterval:=1;
SysSet.MaxCallTime:=1;
SysSet.MaxManualWaveNum:=1200;
SysSet.MaxAutoWaveNum:=1000;
SysSet.MaxPhoneWaveNum:=1000;
SysSet.AutoSavePhone1:=true;
SysSet.AutoSavePhone2:=true;
SysSet.WaveDir:='d:\Data';
SysSet.TelephoneDir:='d:\Data';
SysSet.RecordBits:=8;
SysSet.RecordRate:=11025;
SysSet.AutoCallEnabled:=false;
SysSet.AutoReCallEnabled:=false;
//自动叫班功能
CheckBox3.Checked:=SysSet.AutoCallEnabled;
CheckBox1.Checked:=SysSet.AutoReCallEnabled;
rewrite(tfile);
write(tfile,SysSet);
closefile(tfile);
end
else begin
reset(tfile);
read(tfile,SysSet);
//自动叫班功能
CheckBox3.Checked:=SysSet.AutoCallEnabled;
CheckBox1.Checked:=SysSet.AutoReCallEnabled;
closefile(tfile);
end;
//加载房间设置
LoadStoreRoomState(true);
//公司名称
StatusBar1.Panels[0].Text:=SysSet.StationName;
//获取时间到字符串转换的格式化字符串
GetLocaleFormatSettings(0,FormatSettings);
end;
procedure TfmMain.BitBtn2Click(Sender: TObject);
var fname:TFileName;
begin
//如果线路忙,则退出
if(Caller.LineBusy) then begin
MessageBox(fmMain.Handle,'线路忙','提示',MB_OK);
Exit;
end;
//如果文件不存在,退出
if(PageControl1.ActivePage=tabAutoCall) then
fname:=GetWaveName(tbAutoCall.FieldByName('实际一叫时间').AsDateTime)
else if(PageControl1.ActivePage=tabVoice) then
fname:=GetWaveName(tbVoice.FieldByName('叫班时间').AsDateTime)
else if(PageControl1.ActivePage=tabPhone) then
fname:=GetTelephoneWaveName(tbPhone.FieldByName('开始时间').AsDateTime)
else
Exit;
if(not FileExists(fname)) then begin
MessageBox(fmMain.Handle,'文件不存在','提示',MB_OK);
Exit;
end;
//置开始播放状态
ReplayCallWaveStarted:=true;
PlayWave(fname);
end;
procedure TfmMain.BitBtn3Click(Sender: TObject);
begin
StopWave;
ReplayCallWaveStarted:=false;
end;
//刷新房间显示
procedure TfmMain.RefreshRoom;
begin
end;
procedure TfmMain.FormPaint(Sender: TObject);
begin
//刷新房间显示
RefreshRoom;
end;
procedure TfmMain.N15Click(Sender: TObject);
begin
fmSet.Show;
end;
procedure TfmMain.Edit1Change(Sender: TObject);
begin
if(IsEmptyString(Edit1.Text)) then
tbPlan.Filtered:=false
else begin
//if(not tbPlan.Filtered) then begin
tbPlan.Filtered:=true;
tbPlan.Filter:='车次 = '+QuotedStr(Edit1.Text);
//end;
end;
end;
procedure TfmMain.Edit3Change(Sender: TObject);
begin
if IsEmptyString(Edit3.Text) then
tbAutoCall.Filtered:=false
else begin
if(not tbAutoCall.Filtered) then
tbAutoCall.Filtered:=true;
tbAutoCall.Filter:='出乘车次 = '+QuotedStr(Edit3.Text);
end;
end;
procedure TfmMain.Edit8Change(Sender: TObject);
begin
if IsEmptyString(Edit8.Text) then
tbStuff.Filtered:=false
else begin
if(not tbAutoCall.Filtered) then
tbStuff.Filtered:=true;
case ComboBox8.ItemIndex of
0: begin
tbStuff.Filter:='单位名称 = '+QuotedStr(Edit8.Text);
end;
1: begin
tbStuff.Filter:='乘务员姓名 = '+QuotedStr(Edit8.Text);
end;
end;
end;
end;
procedure TfmMain.Edit6Change(Sender: TObject);
begin
if IsEmptyString(Edit6.Text) then
tbLogInOff.Filtered:=false
else begin
if(not tbAutoCall.Filtered) then
tbLogInOff.Filtered:=true;
case ComboBox6.ItemIndex of
0: begin
tbLogInOff.Filter:='姓名 = '+QuotedStr(Edit6.Text);
end;
1: begin
end;
end;
end;
end;
procedure TfmMain.Edit7Change(Sender: TObject);
begin
if IsEmptyString(Edit7.Text) then
tbLeave.Filtered:=false
else begin
if(not tbLeave.Filtered) then begin
tbLeave.Filtered:=true;
tbLeave.Filter:='姓名 = '+QuotedStr(Edit7.Text);
end;
end;
end;
procedure TfmMain.BitBtn7Click(Sender: TObject);
begin
tbPhone.Filter:='开始时间 > '+QuotedStr(DateTimeToStr(trunc(DateTimePicker1.DateTime)+DateTimePicker2.DateTime-trunc(DateTimePicker2.DateTime)));
tbPhone.Filtered:=true;
end;
procedure TfmMain.BitBtn8Click(Sender: TObject);
begin
tbVoice.Filter:='叫班时间 > '+QuotedStr(DateTimeToStr(trunc(DateTimePicker1.DateTime)+DateTimePicker3.DateTime-trunc(DateTimePicker4.DateTime)));
tbVoice.Filtered:=true;
end;
procedure TfmMain.DBEdit1Exit(Sender: TObject);
begin
try
Caller.Queue[tbPlan.RecNo-1].time:=tbPlan.FieldByName('计划叫班时间').AsDateTime+strtoint(DBEdit1.Text)*60*ONE_SECOND;
except
MessageBox(fmMain.Handle,'晚点时间只能输入数字','输入错误',MB_OK);
DBEdit1.Text:='0';
end;
end;
procedure TfmMain.N27Click(Sender: TObject);
begin
tbLogInOff.First;
Sleep(100); //等待数据集更新
tbLogInOff.Edit;
tbLogInOff.FieldByName('退出时间').AsDateTime:=Now;
tbLogInOff.Post;
Application.Terminate;
end;
procedure TfmMain.N18Click(Sender: TObject);
begin
fmPass.Label1.Caption:=Caller.UserName;
fmPass.Edit1.Text:='';
fmPass.ShowModal;
end;
procedure TfmMain.N20Click(Sender: TObject);
begin
fmAbout.Left:=(Screen.Width-fmAbout.Width)div 2+5;
fmAbout.Top:=(Screen.Height-fmAbout.Height)div 2+5;
fmAbout.ShowModal;
end;
procedure TfmMain.btnStickyClick(Sender: TObject);
begin
fmSticky.ShowModal;
end;
procedure TfmMain.Button8Click(Sender: TObject);
begin
//设置皮肤
if OpenDialog1.Execute then begin
SkinData1.Active:=false;
SkinData1.SkinFile:=OpenDialog1.FileName;
SkinData1.Active:=true;
end;
end;
procedure TfmMain.DBGrid9TitleClick(Column: TColumn);
begin
if(Column.Index=0) then begin
{with TQuery(TDBGrid(Column.Grid).DataSource.DataSet) do begin
Active:=false;
SQL.Clear;
SQL.Add('select * from Room.db');
SQL.Add('order by '+Column.FieldName+' asc');
Open;
end; }
DBGrid9.Columns[0].Title.Caption:='端口号↑';
DBGrid9.Columns[1].Title.Caption:='房间号码';
tbRoom.Sort:='线路 ASC';
end
else if(Column.Index=1) then begin
DBGrid9.Columns[0].Title.Caption:='端口号';
DBGrid9.Columns[1].Title.Caption:='房间号码↑';
tbRoom.Sort:='房间号码 ASC';
end;
end;
procedure TfmMain.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if(TDBGrid(Sender).DataSource.DataSet.RecNo in RecNoCollect) then begin
//TDBGrid(Sender).Canvas.Brush.Color := clBlue;
TDBGrid(Sender).Canvas.Font.Color := clRed;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end
else if(TDBGrid(Sender).DataSource.DataSet.RecNo in CalledRecNoCollect) then begin
TDBGrid(Sender).Canvas.Font.Color := clBlue;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end
else begin
TDBGrid(Sender).Canvas.Font.Color := clBlack;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
procedure TfmMain.BitBtn1Click(Sender: TObject);
begin
//MediaPlayer1.FileName:=RootDir+'\AutoCall.wav';
//MediaPlayer1.Open;
//MediaPlayer1.Play;
//SendMessage(DBGrid1.Handle,BM_CLICK,100,100);
//DBGrid1.Canvas.Brush.Color:=clBlue;
//DBGrid1.DefaultDrawColumnCell(Rect(0,0,100,100),1,DBGrid1.Columns[1],[gdSelected]);
end;
procedure TfmMain.DBGrid5TitleClick(Column: TColumn);
begin
if(Column.Index=1) then begin
if(tbPhone.Sort='开始时间 DESC') then begin
Column.Title.Caption:='开始时间↑';
tbPhone.Sort:='开始时间 ASC';
end
else begin
Column.Title.Caption:='开始时间↓';
tbPhone.Sort:='开始时间 DESC';
end;
end;
end;
procedure TfmMain.DBGrid4TitleClick(Column: TColumn);
begin
if(Column.Index=1) then begin
if(tbVoice.Sort='叫班时间 DESC') then begin
Column.Title.Caption:='叫班时间↑';
tbVoice.Sort:='叫班时间 ASC';
end
else begin
Column.Title.Caption:='叫班时间↓';
tbVoice.Sort:='叫班时间 DESC';
end;
end;
end;
procedure TfmMain.CheckBox3Click(Sender: TObject);
var
fname:TFileName;
tfile:File of TSysSet;
begin
//自动叫班功能
SysSet.AutoCallEnabled:=CheckBox3.Checked;
//写入文件
fname:=RootDir+'\sysset.cfg';
assignfile(tfile,fname);
rewrite(tfile);
write(tfile,SysSet);
end;
procedure TfmMain.CheckBox1Click(Sender: TObject);
var
fname:TFileName;
tfile:File of TSysSet;
begin
//自动叫班功能
SysSet.AutoReCallEnabled:=CheckBox1.Checked;
//写入文件
fname:=RootDir+'\sysset.cfg';
assignfile(tfile,fname);
rewrite(tfile);
write(tfile,SysSet);
end;
procedure TfmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DeleteCriticalSection(Critical1);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -