📄 u_web_chat.pas
字号:
unit U_WEB_CHAT;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, TFlatButtonUnit, p2p_public, TFlatEditUnit;
type
TF_WEB_CHAT = class(TForm)
MM_CHAT: TMemo;
PN_CHAT: TPanel;
MM_LOG: TMemo;
BN_FH: TFlatButton;
BN_SEND: TFlatButton;
procedure BN_FHClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BN_SENDClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
procedure Deal_chat(ChatData: TChatData);
end;
var
F_WEB_CHAT: TF_WEB_CHAT;
implementation
uses pub_program, ncp, u_web_dm;
var
m_str: string;
m_diff: integer;
m_ToIP, m_ToAcc: string;
m_ToPORT: Integer;
ChatDataPackage: TChatDataPackage;
{$R *.dfm}
procedure TF_WEB_CHAT.BN_FHClick(Sender: TObject);
begin
close;
end;
procedure TF_WEB_CHAT.FormCreate(Sender: TObject);
begin
clearall(sender);
tncp.Create(self);
m_str := tran_str;
caption := m_str;
m_toip := analy_str('ipaddr', m_str);
m_toacc := analy_str('accno', m_str);
m_toport := strtoint(getstr(analy_str('port', m_str)));
end;
procedure TF_WEB_CHAT.BN_SENDClick(Sender: TObject);
var
m_SendMsg: string;
begin
m_SendMsg := mm_chat.Text;
if length(m_SendMsg) > 500 then
begin
MessageDlg('发送信息不能超过500个字节!', mtinformation, [mbok], 0);
exit;
end;
with ChatDataPackage do
begin
Head.MsgType := IntToStr(ChatMsgSign);
StrPCopy(Body.fromAccount, gstr_MyAcc);
StrPCopy(Body.toAccount, m_ToAcc);
StrPCopy(Body.Msg, m_SendMsg);
end;
mm_chat.Clear; // .Lines.Clear;
gint_chatfrm := frm_web_chat;
showmessage('IP: ' + m_ToIP + ' Port: ' +inttostr(m_ToPort) + ' Msg: ' + m_SendMsg);
f_web_dm.id_Udp.SendBuffer(m_ToIP, m_ToPORT, ChatDataPackage, SizeOf(ChatDataPackage));
bn_send.SetFocus;
end;
procedure TF_WEB_CHAT.Deal_chat(ChatData: TChatData);
var
s, m_Msg: string;
begin
s := ChatData.fromAccount;
m_msg := ChatData.Msg;
mm_log.Lines.Add(s + ' ' + datetostr(now, 1));
mm_log.Lines.Add(' ' + m_msg);
mm_chat.SetFocus;
end;
procedure TF_WEB_CHAT.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
VK_ESCAPE: bn_fhclick(sender);
VK_RETURN:
begin
bn_sendclick(sender);
postmessage(mm_chat.Handle, wm_keydown, vk_back, vk_back);
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -