📄 mainform.pas
字号:
var
SaveRecordFileName:String;
begin
if ServerLinked then
begin
begin
if SaveDlgSaveRecord.Execute then
begin //***********
//SaveDlgSaveRecord.Options:=[ofShowHelp,ofReadOnly]; //覆盖的问题*****
if SaveDlgSaveRecord.FileName<>'' then //*************
SaveRecordFileName:=SaveDlgSaveRecord.FileName+'.txt';
with DataModule1 do
begin
ClientDataSet1.SaveToFile(SaveRecordFileName);//XML文件不能正确保存
end;
end;
end;
end;
end;
procedure NewRecord;
begin
if ServerLinked then
begin
with DataModule1 do
begin
ClientDataSet1.Last;
ClientDataSet1.Insert;
end;
end;
end;
procedure DeleteRecord;
begin
if ServerLinked then
begin
with DataModule1 do
begin
ClientDataSet1.Delete;
end;
end;
end;
procedure ShowInformationInStatusBar(Information:String);
begin
ClientMainForm.StatusBar1.Panels[1].Text:=' 提示信息: '+Information;
end;
procedure HideInformationInStatusBar;
begin
ClientMainForm.StatusBar1.Panels[1].Text:='';
end;
procedure TClientMainForm.sbGetServerInformationClick(Sender: TObject);
begin
if ServerLinked then
DataModule1.ClientDataSet1.Active:=True
else
MessageDlg(NoGetupMessage,mtInformation,[mbOK],0);
end;
procedure TClientMainForm.SpeedButton3Click(Sender: TObject);
begin
NewRecord;
end;
procedure TClientMainForm.SpeedButton6Click(Sender: TObject);
begin
DeleteRecord;
end;
procedure TClientMainForm.SpeedButton13Click(Sender: TObject);
begin
// StatusBar1.Panels[1].Text:='laksjdfsajf lsd你好啊'; //测试用语句
end;
procedure TClientMainForm.sbHelpAndTegetherHintShowMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if Sender is TSpeedButton then
ShowInformationInStatusBar((Sender as TSpeedButton).Hint)
else
HideInformationInStatusBar;
end;
procedure TClientMainForm.SpeedButton1Click(Sender: TObject); //如何实现字符 ' ?
var
SearchStr:OleVariant;
ISentSQL:ISchoolMTSDisp;
begin
if ServerLinked and DataModule1.ClientDataSet1.Active then
begin
try
DataModule1.ClientDataSet1.Active:=False;
SearchStr:='SELECT * FROM '+GetTableForQuery+' WHERE '+
GetFieldForQuery+'='+''''+edtInput.Text+'''';
//SearchStr:=Edit1.Text;
//DataModule1.DCOMConnection1.AppServer.SearchRecord(SearchStr);
ISentSQL:=ISchoolMTSDisp(IDispatch(DataModule1.SocketConnection1.Appserver));
ISentSQL.SearchRecord(SearchStr);
DataModule1.ClientDataSet1.Active:=True;
MessageBox(ClientMainForm.Handle,PChar('共搜索到数据:'+
(IntToStr(DataModule1.ClientDataSet1.RecordCount))+' 笔!'),
'搜索结果',MB_ICONINFORMATION);
except on E:Exception do
MessageDlg('请先选择要查询的表和字段!',mtInformation,[mbOK],0);
end;
end;
end;
procedure TClientMainForm.spFirstClick(Sender: TObject);
begin
if ServerLinked then
DataModule1.ClientDataSet1.First;
end;
procedure TClientMainForm.spPriorClick(Sender: TObject);
begin
if ServerLinked then
DataModule1.ClientDataSet1.Prior;
end;
procedure TClientMainForm.spNextClick(Sender: TObject);
begin
if ServerLinked then
DataModule1.ClientDataSet1.Next;
end;
procedure TClientMainForm.spNPClick(Sender: TObject);
//var
//TimeStart,TimeEnd:Integer;
//BK:TBookMark;
begin
{ if ServerLinked then
begin
TimeStart:=GetTickCount;
try
if (not TrueEOF) then
begin
try
BK:=DataModule1.ClientDataSet1.GetBookmark;
if (DataModule1.ClientDataSet1.GetNextPacket<
DataModule1.ClientDataSet1.PacketRecords)
then
begin
TrueEOF:=True;
DataModule1.ClientDataSet1.Last;
VOwnerData:=DataModule1.ClientDataSet1.FieldByName('系号').value;
DataModule1.ClientDataSet1.GotoBookmark(BK);
DataModule1.ClientDataSet1.Next;
end;
finally
DataModule1.ClientDataSet1.FreeBookmark(BK);
end;
end;
except on Exception do;
end;
StatusBar1.Panels[2].Text:=' 总数据笔数:'+
IntToStr(DataModule1.ClientDataSet1.RecordCount)+'笔!';
TimeEnd:=GetTickCount;
MessageDlg('本次下载用时:'+FloatToStr((TimeEnd-TimeStart)/1000.0)+'秒!',mtInformation,[mbOK],0);
end; }
if ServerLinked and (DataModule1.ClientDataSet1.Active=True)then
with DataModule1 do
begin
ClientDataSet1.PacketRecords:=DesignPacketSize;
if ClientDataset1.GetNextPacket<DesignPacketSize then
MessageBox(ClientMainForm.Handle,'表中所有记录都已下载完毕!','完成信息',MB_ICONINFORMATION);
end;
end;
procedure TClientMainForm.UseManagerClick(Sender: TObject);
begin
try
fmDesign:=TfmDesign.Create(Application);
fmDesign.ShowModal;
finally
fmDesign.Free;
end;
end;
procedure TClientMainForm.SpeedButton11Click(Sender: TObject);
//var
//PrintData:MultiTreadPrint;
begin
if ServerLinked and (DataModule1.ClientDataSet1.Active) then
begin
try
SinglePrintDBGridData;
//PrintData.Create(False);
except on E:Exception do
begin
MessageBox(ClientMainForm.Handle,'打印机未准备好或默认的打印机并不存在!',
'错误信息',MB_ICONWARNING);
end;
end;
end
else
MessageBox(ClientMainForm.Handle,'请先连接服务器,并打开数据表!',
'提示信息',MB_ICONINFORMATION);
end;
procedure TClientMainForm.ServerTableListBoxDblClick(Sender: TObject);
var
ListTableName:String;
SearchStrWithTable:OleVariant;
IGetTableData:ISchoolMTSDisp;
begin
if ServerLinked then
begin
DataModule1.ClientDataSet1.Active:=False;
ListTableName:=ServerTableListBox.Items[ServerTableListbox.ItemIndex];
SearchStrWithTable:='SELECT * FROM '+ListTableName;
IGetTableData:=ISchoolMTSDisp(IDispatch(DataModule1.SocketConnection1.AppServer));
IGetTableData.SearchRecord(SearchStrWithTable);
DataModule1.ClientDataSet1.Active:=True;
DataModule1.ClientDataSet1.GetFieldNames(ComboBox1.Items);
ComBobox1.SetFocus;
end;
end;
procedure TClientMainForm.ServerTableListBoxMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if ServerLinked then
StatusBar1.Panels[1].Text:=' 双击鼠标左键打开选中表中的记录!';
end;
procedure TClientMainForm.mbSystemMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if ServerLinked then
Statusbar1.Panels[1].Text:=' 你所连接的服务器的相关信息!';
end;
procedure TClientMainForm.N13Click(Sender: TObject);
begin
if ServerLinked then
begin
try
fmHint:=TfmHint.Create(Application);
fmHint.ShowModal;
finally
fmHint.Free;
end;
end
else
MessageBox(ClientMainForm.Handle,'尚未连接到服务器,请先连接到服务器!','',MB_ICONASTERISK);
end;
procedure TClientMainForm.N8Click(Sender: TObject);
begin
try
fmPassword:=TfmPassword.Create(Application);
fmPassword.ShowModal;
finally
fmPassword.Free;
end;
end;
procedure TClientMainForm.N26Click(Sender: TObject);
begin
if ServerLinked and DataModule1.ClientDataSet1.Active then
begin
try
fmBring:=TfmBring.Create(Application);
fmBring.ShowModal;
finally
fmBring.Free;
end;
end
else
MessageBox(ClientMainForm.Handle,'请先连接服务器并选择相应的表!','',MB_ICONASTERISK);
end;
procedure TClientMainForm.N23Click(Sender: TObject);
begin
if ServerLinked then
with DataModule1 do
ClientDataSet1.Last;
end;
procedure TClientMainForm.edtInputEnter(Sender: TObject);
var
SearchStr:OleVariant;
ISentSQL:ISchoolMTSDisp;
begin
if ServerLinked then
begin
try
DataModule1.ClientDataSet1.Active:=False;
SearchStr:='SELECT * FROM '+GetTableForQuery+' WHERE '+
GetFieldForQuery+'='+''''+edtInput.Text+'''';
//SearchStr:=Edit1.Text;
//DataModule1.DCOMConnection1.AppServer.SearchRecord(SearchStr);
ISentSQL:=ISchoolMTSDisp(IDispatch(DataModule1.SocketConnection1.Appserver));
ISentSQL.SearchRecord(SearchStr);
DataModule1.ClientDataSet1.Active:=True;
except on E:Exception do
MessageDlg('请先选择要查询的表和字段!',mtInformation,[mbOK],0);
end;
end;
end;
procedure TClientMainForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
WriteIniFile('MainFormFormat','Top',top);
WriteIniFile('MainFormFormat','Left',left);
WriteIniFile('MainFormFormat','Width',width);
WriteIniFile('MainFormFormat','Height',height);
end;
procedure TClientMainForm.FormCreate(Sender: TObject);
begin
DesignPacketSize:=ReadIniFile('SysDesign','PacketSize',100);
AutoLinked:=ReadIniFile('SysDesign','AutoLinked',False);
ShowTime:=ReadIniFile('SysDesign','ShowTime',False);
Top:=ReadIniFile('MainFormFormat','Top',top);
Left:=ReadIniFile('MainFormForamt','Left',left);
Width:=ReadIniFile('MainFormFormat','Width',width);
Height:=ReadIniFile('MainFormFormat','Height',height);
DBGrid1.Font.Color:=ReadIniFile('Color','ClientMainForm.DBGrid1.Font.Color', $00575757);
DBGrid1.Color:=ReadIniFile('Color','ClientMainForm.DBGrid1.Color',clWhite);
ServerTableListBox.Font.Color:=ReadIniFile('Color','ClientMainForm.ServerTableListBox.Font.Color',$00696969);
ServerTableListBox.Color:=ReadIniFile('Color','ClientMainForm.ServerTableListBox.Color',clWhite);
mbSystem.Font.Color:=ReadIniFile('Color','ClientMainForm.mbSystem.Font.Color',$00696969);
mbSystem.Color:=ReadIniFile('Color','ClientMainForm.mbSystem.Color',clWindow);
Font.Name:=ReadIniFile('Color','ClientMainForm.Font.Name','宋体');
end;
procedure TClientMainForm.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[2].Text:=DateTimeToStr(Now);
end;
procedure TClientMainForm.FormShow(Sender: TObject);
begin
//if fmLogin.ShowModal=mrOK then
fmLogin.Hide;
if ShowTime then
Timer1.Enabled:=True;
if AutoLinked then
N4Click(Sender);
end;
procedure TClientMainForm.N10Click(Sender: TObject);
begin
try
fmAbout:=TfmAbout.Create(Application);
fmAbout.ShowModal;
finally
fmAbout.Free;
end;
end;
procedure TClientMainForm.N15Click(Sender: TObject);
begin
try
fmMIDASManager:=TfmMIDASManager.Create(Application);
fmMIDASManager.ShowModal;
finally
fmMIDASManager.Free;
end;
end;
procedure TClientMainForm.FormPaint(Sender: TObject);
begin
//fmLogin.Hide;
end;
procedure TClientMainForm.FormActivate(Sender: TObject);
begin
//fmLogin.Visible:=False;
end;
procedure TClientMainForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean); //2002.4.1 贺广兵
var
IShutLink:ISchoolMTSDisp;
begin
if ServerLinked and DataModule1.ClientDataSet1.Active then
begin
if DataModule1.ClientDataSet1.RecordCount=0 then
begin
DataModule1.ClientDataSet1.Close;
IShutLink:=ISchoolMTSDisp(IDispatch(DataModule1.SocketConnection1.Appserver));
IShutLink.ClearLink; //切断服务器端连接
end;
end;
end;
procedure TClientMainForm.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
//fmLogin.Hide;
end;
procedure TClientMainForm.edtInputKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
SpeedButton1Click(Sender);
end;
procedure TClientMainForm.ComboBox1Click(Sender: TObject);
begin
edtInput.SetFocus;
end;
procedure TClientMainForm.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=13 then
sbUpdatesClick(Sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -