📄 ammain.pas
字号:
unit AMMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, APIPECOMLib_TLB, OleServer, ImgList;
type TOleEnum = type LongWord;
type
TForm2 = class(TForm)
TreeView1: TTreeView;
AMConsol1: TAMConsol;
AMSession1: TAMSession;
AMLoginInfo1: TAMLoginInfo;
AMSysMsg1: TAMSysMsg;
ImageList1: TImageList;
AMMessage1: TAMMessage;
Label1: TLabel;
Button1: TButton;
procedure PreShow(Sender: TObject);
procedure SignIn(ASender: TObject; State: TOleEnum; nErrCode: Integer);
procedure DoubleClick(Sender: TObject);
procedure AMMsgReceive(ASender: TObject; const pMsg: IAMMessage);
procedure ReceiveNtyMsg(ASender: TObject; const pSMsg: IAMSysMsg);
procedure AMReceive(ASender: TObject; const pSMsg: IAMSysMsg);
procedure Button1Click(Sender: TObject);
procedure ColseQuery(Sender: TObject; var CanClose: Boolean);
procedure AMSignIn(ASender: TObject; State: TOleEnum;
const bszLoginName: WideString; nErrCode: Integer);
// procedure AMMsgReceive(ASender: TObject; const pMsg: IAMMessage);
private
{ Private declarations }
public
arrayUser :array[0..100] of string ;
nodeSender : TTreeNode;
end;
var
Form2: TForm2;
implementation
uses AMDelphi,SendMessage,ReceiveMessage;
{$R *.dfm}
procedure TForm2.PreShow(Sender: TObject);
begin
form1.ShowModal;
end;
//--------------------
//处理自己登录信息
//--------------------
procedure TForm2.SignIn(ASender: TObject; State: TOleEnum;
nErrCode: Integer);
var
nodeTemp :TTreeNode;
begin
if State = AM_SIGN_IN_OK then
begin
AMSession1.ChangeStatus(AM_USERSTATUS_NLN);
Treeview1.Images := ImageList1;
nodeTemp := Treeview1.Items.Add(nil, '当前登录用户_我自己' );
arrayuser[nodeTemp.AbsoluteIndex] := AMDelphi.Form1.LoginName ;
Treeview1.Items[0].ImageIndex :=2;
Treeview1.Items[0].selectedindex :=2;
end;
if State = AM_SIGN_IN_ERR then
begin
Application.MessageBox('failed','Error');
ShowMessage(AMConsol1.GetErrInfo(nErrCode, 'ENG'));
end;
end;
procedure TForm2.ReceiveNtyMsg(ASender: TObject; const pSMsg: IAMSysMsg);
var
nodeTemp :TTreeNode;
iamSysMsy :IAMSysMsg;
//-----------------------
//获得在线人员信息
//-----------------------
begin
iamSysMsy := pSMsg as IAMSysMsg;
AMSysMsg1.ConnectTo( iamSysMsy);
//-----------------------------
//收到所有在线人员信息
//-----------------------------
if AMSysMsg1.Method = 'NLN' then
begin
Treeview1.Images := ImageList1;
nodeTemp := Treeview1.Items.Add(nil, AMSysMsg1.GetParamStr (3) );
//---------------------------
//建立用户数组
//---------------------------
arrayuser[nodeTemp.AbsoluteIndex] := AMSysMsg1.GetParamStr (2);
Treeview1.Items[nodeTemp.AbsoluteIndex].ImageIndex :=2;
Treeview1.Items[nodeTemp.AbsoluteIndex].selectedindex :=2;
end
end;
//-------------------
//获得消息发送对象
//-------------------
procedure TForm2.DoubleClick(Sender: TObject);
begin
nodeSender:= TreeView1.Selected;
SendMessage.Form3.Show ;
SendMessage.Form3.MEMO1.Text :='';
end;
//----------------------
//服务器消息处理
//----------------------
procedure TForm2.AMReceive(ASender: TObject; const pSMsg: IAMSysMsg);
var
strGetMessage :string;
begin
if pSMsg.Method='MSG' then
begin
strGetMessage := pSMsg.GetParamStr(3);
end
end;
//------------------
// 收到消息处理
//------------------
procedure TForm2.AMMsgReceive(ASender: TObject; const pMsg: IAMMessage);
var
AMMessagetemp : IAMMessage;
begin
AMMessagetemp := pMsg as IAMMessage;
AMMessage1.ConnectTo(AMMessagetemp);
Receivemessage.Form4.Show ;
Receivemessage.Form4.Visible := true;
Receivemessage.Form4.RichEdit1.Text := AMMessage1.GetMsgContent(AMMessage1.MsgContentType);
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
AMMain.Form2.Close();
end;
procedure TForm2.ColseQuery(Sender: TObject; var CanClose: Boolean);
begin
AMMain.Form2.AMSession1.CloseSession();
AMMain.Form2.AMSession1.Destroy();
end;
procedure TForm2.AMSignIn(ASender: TObject; State: TOleEnum;
const bszLoginName: WideString; nErrCode: Integer);
var
nodeTemp :TTreeNode;
begin
if State = AM_SIGN_IN_OK then
begin
AMSession1.ChangeStatus(AM_USERSTATUS_NLN);
Treeview1.Images := ImageList1;
nodeTemp := Treeview1.Items.Add(nil, '当前登录用户' );
arrayuser[nodeTemp.AbsoluteIndex] := AMDelphi.Form1.LoginName ;
Treeview1.Items[0].ImageIndex :=2;
Treeview1.Items[0].selectedindex :=2;
end;
if State = AM_SIGN_IN_ERR then
begin
Application.MessageBox('failed','Error');
ShowMessage(AMConsol1.GetErrInfo(nErrCode, 'ENG'));
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -