|
|
@@ -4,14 +4,13 @@ interface
|
|
|
|
|
|
uses
|
|
|
TransmitDirection,
|
|
|
- FileTransmitterObjective, md5,MyInputBoxFrm,
|
|
|
- FileTransmitter,
|
|
|
- DownloadFileFromWeb,ShellAPI,
|
|
|
+ FileTransmitterObjective, md5, MyInputBoxFrm,
|
|
|
+ FileTransmitter, DownloadFileFromWeb,ShellAPI,
|
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StrUtils, xFonts,
|
|
|
Dialogs, ExtCtrls, ActnCtrls, ActnMan, ActnMenus, ToolWin, ComCtrls, ImgList, MSHTML,
|
|
|
Menus, ActnList, StdStyleActnCtrls, Buttons, StdCtrls, OleCtrls, SHDocVw, RealICQClient,
|
|
|
RealICQUtils, RealICQSkinFrm, ShareUtils, RealICQContacterTreeView, RealICQModel,
|
|
|
- RealICQSpeedButton, RealICQButton;
|
|
|
+ RealICQSpeedButton, RealICQButton, FileCtrl;
|
|
|
|
|
|
type
|
|
|
TMessagesManagerForm = class(TRealICQSkinForm)
|
|
|
@@ -55,14 +54,13 @@ type
|
|
|
SpeedButton1: TSpeedButton;
|
|
|
SpeedButton2: TSpeedButton;
|
|
|
btSeeInfo: TRealICQButton;
|
|
|
- procedure tvSendersClick(Sender: TObject);
|
|
|
+ btExportAllMsg: TSpeedButton;
|
|
|
procedure lvContentsColumnClick(Sender: TObject; Column: TListColumn);
|
|
|
procedure lvContentsClick(Sender: TObject);
|
|
|
procedure btSeeInfoClick(Sender: TObject);
|
|
|
procedure SpeedButton2Click(Sender: TObject);
|
|
|
procedure SpeedButton1Click(Sender: TObject);
|
|
|
- procedure lvContentsMouseUp(Sender: TObject; Button: TMouseButton;
|
|
|
- Shift: TShiftState; X, Y: Integer);
|
|
|
+ procedure lvContentsMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
|
procedure ppListViewPopup(Sender: TObject);
|
|
|
procedure btNextClick(Sender: TObject);
|
|
|
procedure btLastClick(Sender: TObject);
|
|
|
@@ -72,27 +70,22 @@ type
|
|
|
procedure btSearchClick(Sender: TObject);
|
|
|
procedure btRefreshClick(Sender: TObject);
|
|
|
procedure lvContentsDblClick(Sender: TObject);
|
|
|
- procedure WebBrowserDocumentComplete(ASender: TObject;
|
|
|
- const pDisp: IDispatch; var URL: OleVariant);
|
|
|
- procedure lvContentsChange(Sender: TObject; Item: TListItem;
|
|
|
- Change: TItemChange);
|
|
|
+ procedure WebBrowserDocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant);
|
|
|
+ procedure lvContentsChange(Sender: TObject; Item: TListItem;Change: TItemChange);
|
|
|
procedure tvSendersChange(Sender: TObject; Node: TTreeNode);
|
|
|
procedure lvContentsResize(Sender: TObject);
|
|
|
procedure tvSendersGetSelectedIndex(Sender: TObject; Node: TTreeNode);
|
|
|
- procedure tvSendersCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;
|
|
|
- State: TCustomDrawState; var DefaultDraw: Boolean);
|
|
|
+ procedure tvSendersCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;State: TCustomDrawState; var DefaultDraw: Boolean);
|
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
|
procedure FormDestroy(Sender: TObject);
|
|
|
procedure FormCreate(Sender: TObject);
|
|
|
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
|
|
procedure ppTreeNodePopup(Sender: TObject);
|
|
|
- procedure tvSendersMouseUp(Sender: TObject; Button: TMouseButton;
|
|
|
- Shift: TShiftState; X, Y: Integer);
|
|
|
+ procedure tvSendersMouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
|
|
|
procedure miDelMessageHistoryClick(Sender: TObject);
|
|
|
procedure cbPageSizeChange(Sender: TObject);
|
|
|
- procedure WebBrowserBeforeNavigate2(ASender: TObject;
|
|
|
- const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
|
|
|
- Headers: OleVariant; var Cancel: WordBool);
|
|
|
+ procedure WebBrowserBeforeNavigate2(ASender: TObject;const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,Headers: OleVariant; var Cancel: WordBool);
|
|
|
+ procedure btExportAllMsgClick(Sender: TObject);
|
|
|
private
|
|
|
FBaseURL: string;
|
|
|
FRecordCount: Integer;
|
|
|
@@ -104,7 +97,7 @@ type
|
|
|
FFileTransmitter: TFileTransmitter;
|
|
|
FDownFile: TDownFile;
|
|
|
FDBFile: String;
|
|
|
-
|
|
|
+
|
|
|
procedure DownFileProgress(ulProgress, ulProgressMax, ulStatusCode: integer; szStatusText: String);
|
|
|
procedure DownFileComplete(Source_file, Dest_file:String; blStatus:boolean; ErrMessage:String);
|
|
|
procedure LoadTreeViewItems;
|
|
|
@@ -124,6 +117,7 @@ type
|
|
|
procedure ChangeUIColor(AColor: TColor); override;
|
|
|
procedure ShowUsersMessages(ALoginName: String);
|
|
|
procedure ShowTeamsMessages(ATeamID: String);
|
|
|
+ function IsDigit(S: String): Boolean;
|
|
|
end;
|
|
|
|
|
|
var
|
|
|
@@ -170,7 +164,6 @@ begin
|
|
|
end;
|
|
|
AMessageContent := HTML;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.ChangeUIColor(AColor: TColor);
|
|
|
begin
|
|
|
@@ -178,7 +171,6 @@ begin
|
|
|
pnlClient.Color := FormColor;
|
|
|
btSeeInfo.ChangeUIColor(AColor);
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.btSearchClick(Sender: TObject);
|
|
|
var
|
|
|
@@ -247,7 +239,7 @@ begin if Length(Trim(edKeyword.Text)) = 0 then
|
|
|
end; //while
|
|
|
end;
|
|
|
|
|
|
- if Messages = nil then Exit;
|
|
|
+ if Messages = nil then Exit;
|
|
|
tvSenders.Items.Item[tvSenders.Items.Count - 1].Selected := True;
|
|
|
lvContents.Items.BeginUpdate;
|
|
|
try
|
|
|
@@ -276,10 +268,13 @@ begin if Length(Trim(edKeyword.Text)) = 0 then
|
|
|
end
|
|
|
else
|
|
|
ImageIndex := 5;
|
|
|
+
|
|
|
+
|
|
|
RealICQUser:= TUsersService.GetUsersService.GetOrRequestUser(MessageSearchResult.Sender);
|
|
|
|
|
|
ALoginName := RealICQUser.LoginName;
|
|
|
- if Pos('-', ALoginName) > 0 then ALoginName := Copy(ALoginName, Pos('-', ALoginName) + 1, Length(ALoginName));
|
|
|
+ if Pos('-', ALoginName) > 0 then
|
|
|
+ ALoginName := Copy(ALoginName, Pos('-', ALoginName) + 1, Length(ALoginName));
|
|
|
|
|
|
if (Length(RealICQUser.DisplayName) = 0) then
|
|
|
Caption := ALoginName
|
|
|
@@ -299,7 +294,7 @@ begin if Length(Trim(edKeyword.Text)) = 0 then
|
|
|
ReceiverName := RealICQUser.DisplayName + '<' + ALoginName + '>';
|
|
|
Caption := Caption + ' -> ' + ReceiverName;
|
|
|
end;
|
|
|
-
|
|
|
+
|
|
|
SubItems.Add(DateToStr(MessageSearchResult.SendDateTime));
|
|
|
SubItems.Add(TimeToStr(MessageSearchResult.SendDateTime));
|
|
|
|
|
|
@@ -318,13 +313,197 @@ begin if Length(Trim(edKeyword.Text)) = 0 then
|
|
|
ProcessingForm.Free;
|
|
|
end;
|
|
|
end;
|
|
|
-
|
|
|
+//------------------------------------------------------------------------------
|
|
|
+//变量S为要判断的字符串,返回true则正确
|
|
|
+function TMessagesManagerForm.IsDigit(S:String):Boolean;
|
|
|
+var
|
|
|
+i,j:integer;
|
|
|
+begin
|
|
|
+ Result:=True;
|
|
|
+ j :=0 ;
|
|
|
+ for i :=1 to length(s) do
|
|
|
+ begin
|
|
|
+ if not (s[i] in ['0'..'9','.'])then //判断字符串每个字符即s[i],是否为"0"到'9"数字及".'
|
|
|
+ Result:=False;
|
|
|
+ if s[i]='.' Then //统计字符串中"."的个数
|
|
|
+ j:=j+1;
|
|
|
+ end;
|
|
|
+ if j > 1 then //字符串中"."的个数大于1
|
|
|
+ Result:=False;
|
|
|
+ if (s[1]='.') or (s[length(s)]='.') then //字符串中"."的在最前面和最后面
|
|
|
+ Result:=False;
|
|
|
+ //增加, 字符串中"."的位置之前有两个"0"判断
|
|
|
+ s:=copy(s,1, pos('.', S)-1); //取字符串中"."的位置之前字符
|
|
|
+ j:=0;
|
|
|
+ for i:=1 to length(s) do
|
|
|
+ begin
|
|
|
+ if s[i]='0' then
|
|
|
+ j:=j+1;
|
|
|
+ end;
|
|
|
+ if j > 1 then //字符串中"."的位置之前有两个"0"
|
|
|
+ Result:=False;
|
|
|
+end;
|
|
|
+//------------------------------------------------------------------------------
|
|
|
+procedure TMessagesManagerForm.btExportAllMsgClick(Sender: TObject);
|
|
|
+var
|
|
|
+ iLoop, jLoop: Integer;
|
|
|
+ RootPath, FileName, StrLogin,StrSender, StrReceiver, StrTmp: string;
|
|
|
+ GroupList, UserList, TmpList: TStringList;
|
|
|
+ MessageSearchResult: TMessageSearchResult;
|
|
|
+ Messages: TList;
|
|
|
+ RealICQUser: TRealICQUser;
|
|
|
+ RealICQTeam: TRealICQTeam;
|
|
|
+begin
|
|
|
+ RootPath := '';
|
|
|
+ if SelectDirectory('请设置历史聊天记录文件的导出路径', '', RootPath) then
|
|
|
+ begin
|
|
|
+ if RootPath = '' then Exit;
|
|
|
+ RootPath := RootPath + '\历史记录\';
|
|
|
+ if not DirectoryExists(RootPath) then CreateDir(RootPath);
|
|
|
+ ProcessingForm := TProcessingForm.Create(Self);
|
|
|
+ ProcessingForm.Show;
|
|
|
+ Application.ProcessMessages;
|
|
|
+ Sleep(500);
|
|
|
+ Messages := MainForm.DBHistory.SearchMessage('-1', '','', True, '');
|
|
|
+ if Messages = nil then Exit;
|
|
|
+ TmpList := TStringList.Create;
|
|
|
+ //群组消息
|
|
|
+ GroupList := TTeamsAdapter.GetTeams();
|
|
|
+ if GroupList <> nil then
|
|
|
+ for iLoop := 0 to GroupList.Count - 1 do
|
|
|
+ begin
|
|
|
+ RealICQTeam := GroupList.Objects[iLoop] as TRealICQTeam;
|
|
|
+ if Length(RealICQTeam.TeamCaption) = 0 then
|
|
|
+ FileName := RootPath + '群组:' + RealICQTeam.TeamID + '.txt'
|
|
|
+ else
|
|
|
+ FileName := RootPath + '群组:' + RealICQTeam.TeamCaption + '.txt';
|
|
|
+ TmpList.Clear;
|
|
|
+ for jLoop := 0 to Messages.Count - 1 do
|
|
|
+ begin
|
|
|
+ MessageSearchResult := Messages[jLoop];
|
|
|
+ if MessageSearchResult.TeamID = RealICQTeam.TeamID then
|
|
|
+ begin
|
|
|
+ RealICQUser := TUsersService.GetUsersService.GetOrRequestUser(MessageSearchResult.Sender);
|
|
|
+ StrSender := RealICQUser.LoginName;
|
|
|
+ if Pos('-', StrSender) > 0 then
|
|
|
+ StrSender := Copy(StrSender, Pos('-', StrSender) + 1, Length(StrSender));
|
|
|
+ if (Length(RealICQUser.DisplayName) <> 0) then
|
|
|
+ StrSender := RealICQUser.DisplayName + '(' + StrSender + ')';
|
|
|
+ StrTmp := DateToStr(MessageSearchResult.SendDateTime) + ' ';
|
|
|
+ StrTmp := StrTmp + TimeToStr(MessageSearchResult.SendDateTime) + ' ';
|
|
|
+ StrTmp := StrTmp + StrSender + #13#10;
|
|
|
+ StrTmp := StrTmp + #13#10 + MessageSearchResult.MessageStr + #13#10;
|
|
|
+ TmpList.Add(StrTmp);
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+ if TmpList.Count > 0 then TmpList.SaveToFile(FileName);
|
|
|
+ end;
|
|
|
+ //手机短信
|
|
|
+ StrTmp := '';
|
|
|
+ TmpList.Clear;
|
|
|
+ FileName := RootPath + '手机短信.txt';
|
|
|
+ for iLoop := 0 to Messages.Count - 1 do
|
|
|
+ begin
|
|
|
+ MessageSearchResult := Messages[iLoop];
|
|
|
+ if (MessageSearchResult.TeamID = '-2') or (MessageSearchResult.TeamID = '-3') then
|
|
|
+ begin
|
|
|
+ if IsDigit(MessageSearchResult.Sender) then
|
|
|
+ StrSender := MessageSearchResult.Sender
|
|
|
+ else
|
|
|
+ begin
|
|
|
+ RealICQUser := TUsersService.GetUsersService.GetOrRequestUser(MessageSearchResult.Sender);
|
|
|
+ StrSender := RealICQUser.LoginName;
|
|
|
+ if Pos('-', StrSender) > 0 then
|
|
|
+ StrSender := Copy(StrSender, Pos('-', StrSender) + 1, Length(StrSender));
|
|
|
+ if (Length(RealICQUser.DisplayName) <> 0) then
|
|
|
+ StrSender := RealICQUser.DisplayName + '(' + StrSender + ')';
|
|
|
+ end;
|
|
|
+ if IsDigit(MessageSearchResult.Receiver) then
|
|
|
+ StrReceiver := MessageSearchResult.Receiver
|
|
|
+ else
|
|
|
+ begin
|
|
|
+ RealICQUser := TUsersService.GetUsersService.GetOrRequestUser(MessageSearchResult.Receiver);
|
|
|
+ StrReceiver := RealICQUser.LoginName;
|
|
|
+ if Pos('-', StrReceiver) > 0 then
|
|
|
+ StrReceiver := Copy(StrReceiver, Pos('-', StrReceiver) + 1, Length(StrReceiver));
|
|
|
+ if (Length(RealICQUser.DisplayName) <> 0) then
|
|
|
+ StrReceiver := RealICQUser.DisplayName + '(' + StrReceiver + ')';
|
|
|
+ end;
|
|
|
+ StrTmp := StrTmp + DateToStr(MessageSearchResult.SendDateTime) + ' ';
|
|
|
+ StrTmp := StrTmp + TimeToStr(MessageSearchResult.SendDateTime) + ' ';
|
|
|
+ StrTmp := StrTmp + StrSender + ' -> ' + StrReceiver + #13#10;
|
|
|
+ StrTmp := StrTmp + #13#10 + MessageSearchResult.MessageStr + #13#10;
|
|
|
+ TmpList.Add(StrTmp);
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+ if TmpList.Count > 0 then TmpList.SaveToFile(FileName);
|
|
|
+ //联系人
|
|
|
+ UserList := MainForm.DBHistory.GetContactors;
|
|
|
+ if UserList <> nil then
|
|
|
+ for iLoop := 0 to UserList.Count - 1 do
|
|
|
+ begin
|
|
|
+ StrLogin := UserList[iLoop];
|
|
|
+ if (AnsiPos('+', StrLogin) <= 0) and (trim(MainForm.RealICQClient.CenterServerID) <> '') then
|
|
|
+ StrLogin := MainForm.RealICQClient.CenterServerID + '+' + StrLogin;
|
|
|
+ if AnsiSameText(StrLogin, MainForm.RealICQClient.LoginName) then continue;
|
|
|
+ RealICQUser:= TUsersService.GetUsersService.GetOrRequestUser(StrLogin);
|
|
|
+ StrLogin := RealICQUser.LoginName;
|
|
|
+ if Pos('-', StrLogin) > 0 then
|
|
|
+ StrLogin := Copy(StrLogin, Pos('-', StrLogin) + 1, Length(StrLogin));
|
|
|
+ if (Length(RealICQUser.DisplayName) <> 0) then
|
|
|
+ StrLogin := RealICQUser.DisplayName + '(' + StrLogin + ')';
|
|
|
+ FileName := RootPath + '联系人:' + StrLogin + '.txt';
|
|
|
+
|
|
|
+ TmpList.Clear;
|
|
|
+ for jLoop := 0 to Messages.Count - 1 do
|
|
|
+ begin
|
|
|
+ MessageSearchResult := Messages[jLoop];
|
|
|
+ if MessageSearchResult.TeamID <> '-1' then continue;
|
|
|
+ if (MessageSearchResult.Sender = UserList[iLoop]) or (MessageSearchResult.Receiver = UserList[iLoop]) then
|
|
|
+ begin
|
|
|
+ if MessageSearchResult.Sender = UserList[iLoop] then
|
|
|
+ begin
|
|
|
+ StrSender := StrLogin;
|
|
|
+ RealICQUser := TUsersService.GetUsersService.GetOrRequestUser(MessageSearchResult.Receiver);
|
|
|
+ StrReceiver := RealICQUser.LoginName;
|
|
|
+ if Pos('-', StrReceiver) > 0 then
|
|
|
+ StrReceiver := Copy(StrReceiver, Pos('-', StrReceiver) + 1, Length(StrReceiver));
|
|
|
+ if (Length(RealICQUser.DisplayName) <> 0) then
|
|
|
+ StrReceiver := RealICQUser.DisplayName + '(' + StrReceiver + ')';
|
|
|
+ end
|
|
|
+ else
|
|
|
+ begin
|
|
|
+ StrReceiver := StrLogin;
|
|
|
+ RealICQUser := TUsersService.GetUsersService.GetOrRequestUser(MessageSearchResult.Sender);
|
|
|
+ StrSender := RealICQUser.LoginName;
|
|
|
+ if Pos('-', StrSender) > 0 then
|
|
|
+ StrSender := Copy(StrSender, Pos('-', StrSender) + 1, Length(StrSender));
|
|
|
+ if (Length(RealICQUser.DisplayName) <> 0) then
|
|
|
+ StrSender := RealICQUser.DisplayName + '(' + StrSender + ')';
|
|
|
+ end;
|
|
|
+
|
|
|
+ StrTmp := DateToStr(MessageSearchResult.SendDateTime) + ' ';
|
|
|
+ StrTmp := StrTmp + TimeToStr(MessageSearchResult.SendDateTime) + ' ';
|
|
|
+ StrTmp := StrTmp + StrSender + #13#10;
|
|
|
+ StrTmp := StrTmp + #13#10 + MessageSearchResult.MessageStr + #13#10;
|
|
|
+ TmpList.Add(StrTmp);
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+ if TmpList.Count > 0 then TmpList.SaveToFile(FileName);
|
|
|
+ end;
|
|
|
+ Messages.Free;
|
|
|
+ ProcessingForm.Free;
|
|
|
+ MessageBox(Handle, '所有历史记录导出完成! ', '提示', MB_OK or MB_ICONINFORMATION);
|
|
|
+ ShellExecute(handle, 'open', PChar('"' + RootPath + '"'), nil, nil, SW_SHOWNORMAL);
|
|
|
+ end;
|
|
|
+end;
|
|
|
+//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.btSeeInfoClick(Sender: TObject);
|
|
|
var LoginName,Url:String;
|
|
|
|
|
|
begin
|
|
|
Url:=btSeeInfo.Hint;
|
|
|
- LoginName:=MainForm.RealICQClient.LoginName;
|
|
|
+ LoginName := MainForm.RealICQClient.LoginName;
|
|
|
if AnsiPos('-',LoginName)>0 then
|
|
|
begin
|
|
|
LoginName:=Copy(LoginName,AnsiPos('-',LoginName)+1,Length(LoginName)-AnsiPos('-',LoginName));
|
|
|
@@ -346,8 +525,6 @@ begin
|
|
|
ShellExecute(handle, 'open', PChar(MainForm.GetDefaultBrowser),PChar(Format(MainForm.RealICQClient.WebAppBaseURL + LoginURL, [StrToBase64(MainForm.RealICQClient.LoginName), StrToBase64(MD5En(MainForm.RealICQClient.Password)), StrToBase64(ReadMessageURL +Url)])),'',SW_SHOWDEFAULT);
|
|
|
|
|
|
end;
|
|
|
-
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.cbPageSizeChange(Sender: TObject);
|
|
|
begin
|
|
|
@@ -358,7 +535,6 @@ begin
|
|
|
else
|
|
|
LoadMessages;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.ShowUsersMessages(ALoginName: String);
|
|
|
var
|
|
|
@@ -389,8 +565,8 @@ begin
|
|
|
begin
|
|
|
if RealICQUser.LoginName = ALoginName then
|
|
|
begin
|
|
|
- Node.Selected := True;
|
|
|
- Exit;
|
|
|
+ Node.Selected := True;
|
|
|
+ Exit;
|
|
|
end;
|
|
|
end;
|
|
|
except
|
|
|
@@ -421,111 +597,6 @@ begin
|
|
|
NodeUser.ImageIndex := 1;
|
|
|
NodeUser.Selected := True;
|
|
|
end;
|
|
|
-
|
|
|
-procedure TMessagesManagerForm.FileTransmitterCalculatedSpeed(Sender: TObject; ATransmittedSize: Int64);
|
|
|
-var
|
|
|
- Completed: Integer;
|
|
|
-begin
|
|
|
- Completed := ATransmittedSize*100 div FFileTransmitter.StreamLength;
|
|
|
- SpeedButton1.Caption := IntToStr(Completed)+'%';
|
|
|
-end;
|
|
|
-
|
|
|
-procedure TMessagesManagerForm.FileTransmitterCompleted(Sender: TObject);
|
|
|
-begin
|
|
|
- SpeedButton1.Enabled := True;
|
|
|
- SpeedButton1.Caption := '备份';
|
|
|
- MessageBox(Handle, PChar('消息记录已成功备份至服务器'), '提示', MB_OK or MB_ICONINFORMATION);
|
|
|
- MainForm.DBHistory.OpenDBConntion;
|
|
|
-end;
|
|
|
-
|
|
|
-procedure TMessagesManagerForm.SpeedButton1Click(Sender: TObject);
|
|
|
-var
|
|
|
- DBFile: String;
|
|
|
-begin
|
|
|
- if Length(Trim(MainForm.RealICQClient.DBHistoryFileName)) > 0 then
|
|
|
- begin
|
|
|
- if MessageBox(Handle, PChar(Format('确定要替换服务器上%s的消息记录吗?', [DateTimeToStr(MainForm.RealICQClient.DBHistoryFileUploadDateTime)])), '提示', MB_OKCANCEL or MB_ICONQUESTION) <> ID_OK then Exit;
|
|
|
- end;
|
|
|
-
|
|
|
- DBFile := MainForm.DBHistory.DBFileName;
|
|
|
- try
|
|
|
- try
|
|
|
- MainForm.DBHistory.CloseDBConntion;
|
|
|
- FFileTransmitter := TFileTransmitter.Create(MainForm.RealICQClient.TCPClient, tdSender, DBFile, 2, MainForm.RealICQClient.LoginName, 0, 0);
|
|
|
- FFileTransmitter.OnTransmitting := FileTransmitterCalculatedSpeed;
|
|
|
- FFileTransmitter.OnTransmitOK := FileTransmitterCompleted;
|
|
|
- FFileTransmitter.SendFileRequest;
|
|
|
- SpeedButton1.Enabled := False;
|
|
|
- except
|
|
|
- On E: Exception do MessageBox(Handle, PChar('备份消息记录时出错:' + E.Message), '提示', MB_OK);
|
|
|
- end;
|
|
|
- finally
|
|
|
- // MainForm.DBHistory.DBFileName := DBFile;
|
|
|
- end;
|
|
|
-end;
|
|
|
-
|
|
|
-procedure TMessagesManagerForm.SpeedButton2Click(Sender: TObject);
|
|
|
-begin
|
|
|
- if Length(Trim(MainForm.RealICQClient.DBHistoryFileName)) = 0 then
|
|
|
- begin
|
|
|
- MessageBox(Handle, '没有备份记录!', '提示', MB_OK);
|
|
|
- Exit;
|
|
|
- end;
|
|
|
-
|
|
|
- if MessageBox(Handle, PChar(Format('确定要将 %s 的消息记录恢复至本地吗?', [DateTimeToStr(MainForm.RealICQClient.DBHistoryFileUploadDateTime)])), '提示', MB_OKCANCEL or MB_ICONQUESTION) <> ID_OK then Exit;
|
|
|
-
|
|
|
- FDownFile := TDownFile.Create;
|
|
|
- FDownFile.OnComplete := DownFileComplete;
|
|
|
- FDownFile.OnProgress := DownFileProgress;
|
|
|
-
|
|
|
- FDBFile := MainForm.DBHistory.DBFileName + '.TEMP';
|
|
|
- FDownFile.ThreadDownFile(MainForm.RealICQClient.DBHistoryFileName, FDBFile);
|
|
|
- SpeedButton2.Enabled := False;
|
|
|
-end;
|
|
|
-
|
|
|
-//------------------------------------------------------------------------------
|
|
|
-procedure TMessagesManagerForm.DownFileProgress(ulProgress, ulProgressMax, ulStatusCode: integer; szStatusText: String);
|
|
|
-var
|
|
|
- Completed: Integer;
|
|
|
-begin
|
|
|
- if ulProgressMax = 0 then Exit;
|
|
|
-
|
|
|
- Completed := ulProgress*100 div ulProgressMax;
|
|
|
- SpeedButton2.Caption := IntToStr(Completed)+'%';
|
|
|
-end;
|
|
|
-
|
|
|
-//------------------------------------------------------------------------------
|
|
|
-procedure TMessagesManagerForm.DownFileComplete(Source_file, Dest_file:String; blStatus:boolean; ErrMessage:String);
|
|
|
-begin
|
|
|
- SpeedButton2.Caption := '恢复';
|
|
|
- SpeedButton2.Enabled := True;
|
|
|
- if blStatus then
|
|
|
- begin
|
|
|
- try
|
|
|
- ProcessingForm := TProcessingForm.Create(Self);
|
|
|
- ProcessingForm.pnlClient.Caption := '正在恢复记录,请稍候...';
|
|
|
- ProcessingForm.Show;
|
|
|
- Application.ProcessMessages;
|
|
|
- Sleep(400);
|
|
|
- try
|
|
|
- MainForm.DBHistory.RestoreMessageHistory(FDBFile);
|
|
|
- finally
|
|
|
- ProcessingForm.Free;
|
|
|
- end;
|
|
|
- MessageBox(Handle, '恢复消息记录成功!', '提示', MB_ICONINFORMATION);
|
|
|
- except
|
|
|
- MessageBox(Handle, PChar('恢复消息记录失败: ' + ErrMessage), '错误', MB_ICONERROR);
|
|
|
- end;
|
|
|
- end
|
|
|
- else
|
|
|
- begin
|
|
|
- MessageBox(Handle, PChar('恢复消息记录失败: ' + ErrMessage), '错误', MB_ICONERROR);
|
|
|
- end;
|
|
|
-
|
|
|
- btRefresh.Click;
|
|
|
- //tvSendersChange(tvSenders, tvSenders.Selected);
|
|
|
-end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.ShowTeamsMessages(ATeamID: String);
|
|
|
var
|
|
|
@@ -554,31 +625,20 @@ begin
|
|
|
Node := Node.GetNext;
|
|
|
end;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.LoadTreeViewItems;
|
|
|
var
|
|
|
iLoop, jLoop, iIndex: Integer;
|
|
|
- LoginName,
|
|
|
- GroupName,
|
|
|
- ACaption: String;
|
|
|
- ALoginName: String;
|
|
|
- GroupMembers: TStringList;
|
|
|
- AlreadyAddedUsers: TStringList;
|
|
|
+ LoginName, ALoginName, ACaption, GroupName: String;
|
|
|
+ ATeams, AUsers, GroupMembers, AlreadyAddedUsers, OtherContactors: TStringList;
|
|
|
+ BranchNodes: TList;
|
|
|
RealICQUser: TRealICQUser;
|
|
|
RealICQTeam: TRealICQTeam;
|
|
|
- ATeams: TStringList;
|
|
|
- NodeGroup,
|
|
|
- NodeUser: TTreeNode;
|
|
|
-
|
|
|
+ NodeGroup, NodeUser: TTreeNode;
|
|
|
+ Branch, TmpBranch: TRealICQBranch;
|
|
|
BranchInfo: TRealICQBranchInfo;
|
|
|
- Branch,
|
|
|
- TmpBranch: TRealICQBranch;
|
|
|
Employee: TRealICQEmployee;
|
|
|
- BranchNodes: TList;
|
|
|
- OtherContactors: TStringList;
|
|
|
ATreeView: TRealICQContacterTreeView;
|
|
|
- AUsers: TStringList;
|
|
|
|
|
|
procedure AddGroupUsers(AGroupName: String; GroupList: TStringList);
|
|
|
var
|
|
|
@@ -596,9 +656,9 @@ var
|
|
|
if AGroupName='其他联系人' then
|
|
|
begin
|
|
|
if (AnsiPos('+',LoginName)<=0) and (trim(MainForm.RealICQClient.CenterServerID)<>'') then
|
|
|
- LoginName:=MainForm.RealICQClient.CenterServerID+'+'+LoginName;
|
|
|
+ LoginName := MainForm.RealICQClient.CenterServerID + '+' + LoginName;
|
|
|
end;
|
|
|
-
|
|
|
+
|
|
|
if AnsiSameText(LoginName, MainForm.RealICQClient.LoginName) then continue;
|
|
|
if AlreadyAddedUsers.IndexOf(LoginName) >= 0 then continue;
|
|
|
|
|
|
@@ -629,7 +689,7 @@ begin
|
|
|
tvSenders.Items.Clear;
|
|
|
cbSearchRange.Items.Clear;
|
|
|
cbSearchRange.Items.Add('全部记录');
|
|
|
-
|
|
|
+
|
|
|
if MainForm.ShowGroup and (MainForm.RealICQClient.WorkingMode = wmPublic) then
|
|
|
begin
|
|
|
for iLoop := MainForm.Groups.Count - 1 downto 0 do
|
|
|
@@ -647,12 +707,13 @@ begin
|
|
|
if RealICQUser <> nil then
|
|
|
begin
|
|
|
ALoginName := RealICQUser.LoginName;
|
|
|
- if Pos('-', ALoginName) > 0 then ALoginName := Copy(ALoginName, Pos('-', ALoginName) + 1, Length(ALoginName));
|
|
|
+ if Pos('-', ALoginName) > 0 then
|
|
|
+ ALoginName := Copy(ALoginName, Pos('-', ALoginName) + 1, Length(ALoginName));
|
|
|
|
|
|
if (Length(RealICQUser.DisplayName) = 0) then
|
|
|
- ACaption := ALoginName
|
|
|
+ ACaption := ALoginName
|
|
|
else
|
|
|
- ACaption := RealICQUser.DisplayName + '<' + ALoginName + '>';
|
|
|
+ ACaption := RealICQUser.DisplayName + '<' + ALoginName + '>';
|
|
|
|
|
|
NodeUser := tvSenders.Items.AddChild(NodeGroup, ACaption);
|
|
|
NodeUser.Data := RealICQUser;
|
|
|
@@ -767,7 +828,7 @@ begin
|
|
|
finally
|
|
|
FreeAndNil(BranchNodes);
|
|
|
if AUsers <> nil then
|
|
|
- FreeAndNil(AUsers);
|
|
|
+ FreeAndNil(AUsers);
|
|
|
end;
|
|
|
//end;
|
|
|
|
|
|
@@ -776,7 +837,7 @@ begin
|
|
|
AddGroupUsers(GroupName, TFriendsService.GetService.GetFriends);
|
|
|
NodeGroup.MoveTo(NodeGroup.Parent, naAddChildFirst);
|
|
|
|
|
|
- GroupName := '其他联系人';
|
|
|
+ GroupName := '其他联系人';
|
|
|
OtherContactors := MainForm.DBHistory.GetContactors;
|
|
|
AddGroupUsers(GroupName, OtherContactors);
|
|
|
|
|
|
@@ -790,11 +851,10 @@ begin
|
|
|
for iLoop := 0 to ATeams.Count - 1 do
|
|
|
begin
|
|
|
RealICQTeam := ATeams.Objects[iLoop] as TRealICQTeam;
|
|
|
- if (Length(RealICQTeam.TeamCaption) = 0) then
|
|
|
- ACaption := RealICQTeam.TeamID
|
|
|
+ if Length(RealICQTeam.TeamCaption) = 0 then
|
|
|
+ ACaption := RealICQTeam.TeamID
|
|
|
else
|
|
|
- ACaption := RealICQTeam.TeamCaption + '<群号码:' + RealICQTeam.TeamID + '>';
|
|
|
-
|
|
|
+ ACaption := RealICQTeam.TeamCaption + '<群号码:' + RealICQTeam.TeamID + '>';
|
|
|
NodeUser := tvSenders.Items.AddChild(NodeGroup, ACaption);
|
|
|
NodeUser.Data := RealICQTeam;
|
|
|
NodeUser.StateIndex := TeamStateIndex;
|
|
|
@@ -811,7 +871,7 @@ begin
|
|
|
NodeGroup := tvSenders.Items.AddChild(nil, LVSystemMessage);
|
|
|
NodeGroup.StateIndex := SystemMessageStateIndex;
|
|
|
NodeGroup.ImageIndex := 6;
|
|
|
-
|
|
|
+
|
|
|
//添加查找结果结节
|
|
|
NodeGroup := tvSenders.Items.AddChild(nil, '查找结果');
|
|
|
NodeGroup.StateIndex := SearchResultStateIndex;
|
|
|
@@ -820,13 +880,113 @@ begin
|
|
|
AlreadyAddedUsers.Free;
|
|
|
cbSearchRange.ItemIndex := 0;
|
|
|
end;
|
|
|
+//------------------------------------------------------------------------------
|
|
|
+procedure TMessagesManagerForm.SpeedButton1Click(Sender: TObject);
|
|
|
+var
|
|
|
+ DBFile: String;
|
|
|
+begin
|
|
|
+ if Length(Trim(MainForm.RealICQClient.DBHistoryFileName)) > 0 then
|
|
|
+ begin
|
|
|
+ if MessageBox(Handle, PChar(Format('确定要替换服务器上%s的消息记录吗?', [DateTimeToStr(MainForm.RealICQClient.DBHistoryFileUploadDateTime)])), '提示', MB_OKCANCEL or MB_ICONQUESTION) <> ID_OK then Exit;
|
|
|
+ end;
|
|
|
+
|
|
|
+ DBFile := MainForm.DBHistory.DBFileName;
|
|
|
+ try
|
|
|
+ try
|
|
|
+ MainForm.DBHistory.CloseDBConntion;
|
|
|
+ FFileTransmitter := TFileTransmitter.Create(MainForm.RealICQClient.TCPClient, tdSender, DBFile, 2, MainForm.RealICQClient.LoginName, 0, 0);
|
|
|
+ FFileTransmitter.OnTransmitting := FileTransmitterCalculatedSpeed;
|
|
|
+ FFileTransmitter.OnTransmitOK := FileTransmitterCompleted;
|
|
|
+ FFileTransmitter.SendFileRequest;
|
|
|
+ SpeedButton1.Enabled := False;
|
|
|
+ except
|
|
|
+ On E: Exception do MessageBox(Handle, PChar('备份消息记录时出错:' + E.Message), '提示', MB_OK);
|
|
|
+ end;
|
|
|
+ finally
|
|
|
+ // MainForm.DBHistory.DBFileName := DBFile;
|
|
|
+ end;
|
|
|
+end;
|
|
|
+//------------------------------------------------------------------------------
|
|
|
+procedure TMessagesManagerForm.SpeedButton2Click(Sender: TObject);
|
|
|
+begin
|
|
|
+ if Length(Trim(MainForm.RealICQClient.DBHistoryFileName)) = 0 then
|
|
|
+ begin
|
|
|
+ MessageBox(Handle, '没有备份记录!', '提示', MB_OK);
|
|
|
+ Exit;
|
|
|
+ end;
|
|
|
+
|
|
|
+ if MessageBox(Handle, PChar(Format('确定要将 %s 的消息记录恢复至本地吗?', [DateTimeToStr(MainForm.RealICQClient.DBHistoryFileUploadDateTime)])), '提示', MB_OKCANCEL or MB_ICONQUESTION) <> ID_OK then Exit;
|
|
|
+
|
|
|
+ FDownFile := TDownFile.Create;
|
|
|
+ FDownFile.OnComplete := DownFileComplete;
|
|
|
+ FDownFile.OnProgress := DownFileProgress;
|
|
|
+
|
|
|
+ FDBFile := MainForm.DBHistory.DBFileName + '.TEMP';
|
|
|
+ FDownFile.ThreadDownFile(MainForm.RealICQClient.DBHistoryFileName, FDBFile);
|
|
|
+ SpeedButton2.Enabled := False;
|
|
|
+end;
|
|
|
+//------------------------------------------------------------------------------
|
|
|
+procedure TMessagesManagerForm.FileTransmitterCalculatedSpeed(Sender: TObject; ATransmittedSize: Int64);
|
|
|
+var
|
|
|
+ Completed: Integer;
|
|
|
+begin
|
|
|
+ Completed := ATransmittedSize*100 div FFileTransmitter.StreamLength;
|
|
|
+ SpeedButton1.Caption := IntToStr(Completed)+'%';
|
|
|
+end;
|
|
|
+//------------------------------------------------------------------------------
|
|
|
+procedure TMessagesManagerForm.FileTransmitterCompleted(Sender: TObject);
|
|
|
+begin
|
|
|
+ SpeedButton1.Enabled := True;
|
|
|
+ SpeedButton1.Caption := '备份';
|
|
|
+ MessageBox(Handle, PChar('消息记录已成功备份至服务器'), '提示', MB_OK or MB_ICONINFORMATION);
|
|
|
+ MainForm.DBHistory.OpenDBConntion;
|
|
|
+end;
|
|
|
+//------------------------------------------------------------------------------
|
|
|
+procedure TMessagesManagerForm.DownFileProgress(ulProgress, ulProgressMax, ulStatusCode: integer; szStatusText: String);
|
|
|
+var
|
|
|
+ Completed: Integer;
|
|
|
+begin
|
|
|
+ if ulProgressMax = 0 then Exit;
|
|
|
+
|
|
|
+ Completed := ulProgress*100 div ulProgressMax;
|
|
|
+ SpeedButton2.Caption := IntToStr(Completed)+'%';
|
|
|
+end;
|
|
|
+//------------------------------------------------------------------------------
|
|
|
+procedure TMessagesManagerForm.DownFileComplete(Source_file, Dest_file:String; blStatus:boolean; ErrMessage:String);
|
|
|
+begin
|
|
|
+ SpeedButton2.Caption := '恢复';
|
|
|
+ SpeedButton2.Enabled := True;
|
|
|
+ if blStatus then
|
|
|
+ begin
|
|
|
+ try
|
|
|
+ ProcessingForm := TProcessingForm.Create(Self);
|
|
|
+ ProcessingForm.pnlClient.Caption := '正在恢复记录,请稍候...';
|
|
|
+ ProcessingForm.Show;
|
|
|
+ Application.ProcessMessages;
|
|
|
+ Sleep(400);
|
|
|
+ try
|
|
|
+ MainForm.DBHistory.RestoreMessageHistory(FDBFile);
|
|
|
+ finally
|
|
|
+ ProcessingForm.Free;
|
|
|
+ end;
|
|
|
+ MessageBox(Handle, '恢复消息记录成功!', '提示', MB_ICONINFORMATION);
|
|
|
+ except
|
|
|
+ MessageBox(Handle, PChar('恢复消息记录失败: ' + ErrMessage), '错误', MB_ICONERROR);
|
|
|
+ end;
|
|
|
+ end
|
|
|
+ else
|
|
|
+ begin
|
|
|
+ MessageBox(Handle, PChar('恢复消息记录失败: ' + ErrMessage), '错误', MB_ICONERROR);
|
|
|
+ end;
|
|
|
|
|
|
+ btRefresh.Click;
|
|
|
+ //tvSendersChange(tvSenders, tvSenders.Selected);
|
|
|
+end;
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.lvContentsResize(Sender: TObject);
|
|
|
begin
|
|
|
lvContents.Columns.Items[3].Width := lvContents.Width - 308;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.miDelMessageHistoryClick(Sender: TObject);
|
|
|
var
|
|
|
@@ -862,18 +1022,15 @@ begin
|
|
|
end;
|
|
|
tvSendersChange(tvSenders, Node);
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.ppListViewPopup(Sender: TObject);
|
|
|
begin
|
|
|
MenuItem1.Enabled := btDel.Enabled;
|
|
|
end;
|
|
|
-
|
|
|
procedure TMessagesManagerForm.ppTreeNodePopup(Sender: TObject);
|
|
|
begin
|
|
|
miDelMessageHistory.Visible := tvSenders.Selected <> nil;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.lvContentsChange(Sender: TObject;
|
|
|
Item: TListItem; Change: TItemChange);
|
|
|
@@ -971,7 +1128,6 @@ begin
|
|
|
|
|
|
InsertHTML(WebBrowser, AMessageStr);
|
|
|
end;
|
|
|
-
|
|
|
procedure TMessagesManagerForm.lvContentsClick(Sender: TObject);
|
|
|
begin
|
|
|
|
|
|
@@ -979,13 +1135,11 @@ begin
|
|
|
self.lvContentsChange(Sender,lvContents.Selected,ctText);
|
|
|
|
|
|
end;
|
|
|
-
|
|
|
procedure TMessagesManagerForm.lvContentsColumnClick(Sender: TObject;
|
|
|
Column: TListColumn);
|
|
|
begin
|
|
|
//
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.lvContentsDblClick(Sender: TObject);
|
|
|
var
|
|
|
@@ -1010,12 +1164,10 @@ begin
|
|
|
SystemMessageSearchResult.AutoCloseTime);
|
|
|
end;
|
|
|
end;
|
|
|
-
|
|
|
procedure TMessagesManagerForm.lvContentsMouseUp(Sender: TObject;
|
|
|
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
|
begin
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.btDelClick(Sender: TObject);
|
|
|
var
|
|
|
@@ -1058,7 +1210,6 @@ begin
|
|
|
end;
|
|
|
end;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.btLastClick(Sender: TObject);
|
|
|
begin
|
|
|
@@ -1071,7 +1222,6 @@ begin
|
|
|
else
|
|
|
LoadMessages;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.btNextClick(Sender: TObject);
|
|
|
begin
|
|
|
@@ -1084,7 +1234,6 @@ begin
|
|
|
else
|
|
|
LoadMessages;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.btFirstClick(Sender: TObject);
|
|
|
begin
|
|
|
@@ -1097,7 +1246,6 @@ begin
|
|
|
else
|
|
|
LoadMessages;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.btPrevClick(Sender: TObject);
|
|
|
begin
|
|
|
@@ -1110,14 +1258,12 @@ begin
|
|
|
else
|
|
|
LoadMessages;
|
|
|
end;
|
|
|
-
|
|
|
procedure TMessagesManagerForm.btRefreshClick(Sender: TObject);
|
|
|
begin
|
|
|
Self.ClearContents;
|
|
|
ClearHTML(WebBrowser);
|
|
|
LoadTreeViewItems;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.ClearContents;
|
|
|
var
|
|
|
@@ -1136,7 +1282,6 @@ begin
|
|
|
lblSender.Caption := '发信人:';
|
|
|
ClearHTML(WebBrowser);
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.ShowSystemMessages(Messages: TList);
|
|
|
var
|
|
|
@@ -1175,7 +1320,6 @@ begin
|
|
|
Messages.Free;
|
|
|
end;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.SetPageSetsState;
|
|
|
begin
|
|
|
@@ -1192,7 +1336,6 @@ begin
|
|
|
btLast.Enabled := btNext.Enabled;
|
|
|
pnlPageSet.Visible := True;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.ShowMessages(Messages: TList);
|
|
|
var
|
|
|
@@ -1241,7 +1384,8 @@ begin
|
|
|
begin
|
|
|
RealICQUser:= TUsersService.GetUsersService.GetOrRequestUser(MessageSearchResult.Receiver);
|
|
|
ALoginName := RealICQUser.LoginName;
|
|
|
- if Pos('-', ALoginName) > 0 then ALoginName := Copy(ALoginName, Pos('-', ALoginName) + 1, Length(ALoginName));
|
|
|
+ if Pos('-', ALoginName) > 0 then
|
|
|
+ ALoginName := Copy(ALoginName, Pos('-', ALoginName) + 1, Length(ALoginName));
|
|
|
if (Length(RealICQUser.DisplayName) = 0) then
|
|
|
ReceiverName := RealICQUser.LoginName
|
|
|
else
|
|
|
@@ -1276,7 +1420,6 @@ begin
|
|
|
Messages.Free;
|
|
|
end;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.LoadMessages;
|
|
|
var
|
|
|
@@ -1300,7 +1443,6 @@ begin
|
|
|
DBHistorySearchResult.Free;
|
|
|
end;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.LoadSystemMessages;
|
|
|
var
|
|
|
@@ -1320,7 +1462,6 @@ begin
|
|
|
DBHistorySearchResult.Free;
|
|
|
end;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.LoadSMSMessages;
|
|
|
var
|
|
|
@@ -1343,10 +1484,8 @@ begin
|
|
|
DBHistorySearchResult.Free;
|
|
|
end;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
-procedure TMessagesManagerForm.tvSendersChange(Sender: TObject;
|
|
|
- Node: TTreeNode);
|
|
|
+procedure TMessagesManagerForm.tvSendersChange(Sender: TObject; Node: TTreeNode);
|
|
|
var
|
|
|
RealICQUser: TRealICQUser;
|
|
|
RealICQTeam: TRealICQTeam;
|
|
|
@@ -1412,12 +1551,6 @@ begin
|
|
|
lvContents.Items.EndUpdate;
|
|
|
end;
|
|
|
end;
|
|
|
-
|
|
|
-procedure TMessagesManagerForm.tvSendersClick(Sender: TObject);
|
|
|
-begin
|
|
|
-
|
|
|
-end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.tvSendersCustomDrawItem(Sender: TCustomTreeView;
|
|
|
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
|
|
|
@@ -1431,16 +1564,12 @@ begin
|
|
|
Node.ImageIndex := 4;
|
|
|
end;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
-procedure TMessagesManagerForm.tvSendersGetSelectedIndex(Sender: TObject;
|
|
|
- Node: TTreeNode);
|
|
|
+procedure TMessagesManagerForm.tvSendersGetSelectedIndex(Sender: TObject; Node: TTreeNode);
|
|
|
begin
|
|
|
Node.SelectedIndex := Node.ImageIndex;
|
|
|
end;
|
|
|
-
|
|
|
-procedure TMessagesManagerForm.tvSendersMouseUp(Sender: TObject;
|
|
|
- Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
|
+procedure TMessagesManagerForm.tvSendersMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
|
var
|
|
|
Node: TTreeNode;
|
|
|
P: TPoint;
|
|
|
@@ -1463,7 +1592,6 @@ begin
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
-
|
|
|
{设置WebBrowser的样式}
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.SetDOMStyle(Doc:IHTMLDocument2);
|
|
|
@@ -1474,7 +1602,6 @@ begin
|
|
|
Doc.body.style.fontSize := '9pt';
|
|
|
Doc.body.style.margin := '2pt';
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.WebBrowserBeforeNavigate2(ASender: TObject;
|
|
|
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
|
|
|
@@ -1531,7 +1658,6 @@ begin
|
|
|
end;
|
|
|
{$endregion}
|
|
|
end;
|
|
|
-
|
|
|
procedure TMessagesManagerForm.WebBrowserDocumentComplete(ASender: TObject;
|
|
|
const pDisp: IDispatch; var URL: OleVariant);
|
|
|
begin
|
|
|
@@ -1540,14 +1666,12 @@ begin
|
|
|
except
|
|
|
end;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.FormClose(Sender: TObject;
|
|
|
var Action: TCloseAction);
|
|
|
begin
|
|
|
Action := caFree;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.FormCloseQuery(Sender: TObject;
|
|
|
var CanClose: Boolean);
|
|
|
@@ -1555,7 +1679,6 @@ begin
|
|
|
lvContents.OnChange := nil;
|
|
|
CanClose := True;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.FormCreate(Sender: TObject);
|
|
|
begin
|
|
|
@@ -1570,13 +1693,11 @@ begin
|
|
|
AddUserStatePictureToImageList(ImgLstNodeImage);
|
|
|
LoadTreeViewItems;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.FormDestroy(Sender: TObject);
|
|
|
begin
|
|
|
MessagesManagerForm := nil;
|
|
|
end;
|
|
|
-
|
|
|
//------------------------------------------------------------------------------
|
|
|
procedure TMessagesManagerForm.CreateParams(var Params: TCreateParams);
|
|
|
begin
|