⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nmmsg.pas

📁 DELPHI里面一些常用的控件
💻 PAS
字号:
unit NMMSG;
{$X+}
{$R-}

{$IFDEF VER100}
{$DEFINE NMF3}
{$ENDIF}
{$IFDEF VER110}
{$DEFINE NMF3}
{$ENDIF}
{$IFDEF VER120}
{$DEFINE NMF3}
{$ENDIF}
{$IFDEF VER125}
{$DEFINE NMF3}
{$ENDIF}

interface

uses
  Classes, SysUtils, Forms, Psock, NMConst, Winsock;
{$IFDEF VER110}
{$OBJEXPORTALL On}
{$ENDIF}
{$IFDEF VER120}
{$OBJEXPORTALL On}
{$ENDIF}
{$IFDEF VER125}
{$OBJEXPORTALL On}
{$ENDIF}


//  CompName='NMMSG32';
//  Major_Version='4';
//  Minor_Version='02';
//  Date_Version='012798';

type
  TMSGEvent = procedure(Sender: TComponent; const sFrom, sMsg: string) of object;


  TNMMsg = class(TPowerSock)
  private
    sFromName: string;
    FOnMessageSent: TNotifyEvent;
  protected
  public
    constructor Create(AOwner: TComponent); override;
    procedure Abort; override;
    function PostIt(const sMsg: string): string;
  published
    property FromName: string read sFromName write sFromName;
    property OnMessageSent: TNotifyEvent read FOnMessageSent write FOnMessageSent;
  end; {_ TNMMsg = class(TPowerSock) _}



  TNMMSGServ = class(TNMGeneralServer)
  private
    FOnMSG: TMSGEvent;
  protected
  public
    constructor Create(AOwner: TComponent); override;
    procedure Serve; override;
  published
    property OnMSG: TMSGEvent read FOnMSG write FOnMSG;
  end; {_ TNMMSGServ = class(TNMGeneralServer) _}
 
implementation

constructor TNMMsg.Create;
begin
  inherited Create(AOwner);
  Port := 6711;
end; {_ constructor TNMMsg.Create; _}

function TNMMsg.PostIt;
var i: integer;
begin
  Connect;
  try
    Write(Format('%.4d', [Length(FromName)]) + FromName);
    Write(Format('%.4d', [Length(sMsg)]) + sMsg);
    if Assigned(FOnMessageSent) then FOnMessageSent(self);
    Result := Read(16);
  finally
    DisConnect;
  end; {_ try _}
end; {_ function TNMMsg.PostIt; _}

procedure TNMMsg.Abort;
begin
  if Connected then
  begin
    Cancel;
    DisConnect;
  end; {_ if connected then _}
end; {_ procedure TNMMsg.Abort; _}

{TNMMSGServ}
constructor TNMMSGServ.Create;
begin
  inherited Create(AOwner);
  Port := 6711;
end; {_ constructor TNMMSGServ.Create; _}

procedure TNMMSGServ.Serve;
var sFrom, sMsg: string;
  i: integer;
begin
  try
    i := StrToInt(Read(4));
    if i > 0 then
      sFrom := Read(i);
    i := StrToInt(Read(4));
    if i > 0 then
      sMsg := Read(i)
    else {_ NOT if i > 0 then _}  sMsg := '';
    Write('OK' + '              ');
    if Assigned(TNMMSGServ(Chief).FOnMSG) then (TNMMSGServ(Chief).FOnMSG(self, sFrom, sMsg));
    while Connected and (not beencanceled) do
      Wait;
  except
  end;
end; {_ procedure TNMMSGServ.Serve; _}


end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -