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

📄 receivedunit.pas

📁 企业通comicq是一个通讯工具软件,一个通讯工具软件
💻 PAS
字号:
unit ReceivedUnit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls, ExtCtrls;

type
  TReceivedMsgForm = class(TForm)
    StatusBar: TStatusBar;
    Notebook: TNotebook;
    ReceivedMsgMemo: TMemo;
    btnAnswer: TButton;
    btnCancel: TButton;
    btnPre: TButton;
    btnNext: TButton;
    SendMsgMemo: TMemo;
    btnSend: TButton;
    btnClose: TButton;
    btnClear: TButton;
    btnMsg: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure SendMsgMemoKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure btnAnswerClick(Sender: TObject);
    procedure btnClearClick(Sender: TObject);
    procedure btnMsgClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnCancelClick(Sender: TObject);
    procedure btnCloseClick(Sender: TObject);
    procedure btnSendClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btnPreClick(Sender: TObject);
    procedure btnNextClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    FromIP,RemoteComputerName:String;
    MsgList:TStringList;
    MsgPointer:Integer;
  end;

var
  ReceivedMsgForm: TReceivedMsgForm;

implementation
uses FormMain;
{$R *.DFM}

procedure TReceivedMsgForm.FormCreate(Sender: TObject);
begin
  MsgList    := TStringList.Create;
  MsgPointer := 0;
end;

procedure TReceivedMsgForm.FormDestroy(Sender: TObject);
begin
  MsgList.Free;
end;

procedure TReceivedMsgForm.SendMsgMemoKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if (Key=13) and (ssCtrl in Shift) then
    btnSend.Click;
end;

procedure TReceivedMsgForm.btnAnswerClick(Sender: TObject);
begin
  NoteBook.ActivePage := 'Answer';
end;

procedure TReceivedMsgForm.btnClearClick(Sender: TObject);
begin
  SendMsgMemo.Clear;
  SendMsgMemo.SetFocus;
end;

procedure TReceivedMsgForm.btnMsgClick(Sender: TObject);
begin
  NoteBook.ActivePage := 'ReceivedMsg';
end;

procedure TReceivedMsgForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
//  Action := caFree;
end;

procedure TReceivedMsgForm.btnCancelClick(Sender: TObject);
begin
  Close;
end;

procedure TReceivedMsgForm.btnCloseClick(Sender: TObject);
begin
  if MsgPointer>=MsgList.Count-1 then
    Close
  else
    NoteBook.ActivePage:='ReceivedMsg';
end;

procedure TReceivedMsgForm.btnSendClick(Sender: TObject);
var
  Msg:String;
begin
  Msg := Format('%-15s%-6s',[FromIP,'Chat']);
  Msg := Msg+SendMsgMemo.Text;
  MainForm.COMICQ.SendMsg(FromIP,Msg);

  if MsgPointer>=MsgList.Count-1 then
    Close
  else
    NoteBook.ActivePage:='ReceivedMsg';

end;

procedure TReceivedMsgForm.FormShow(Sender: TObject);
begin
  StatusBar.Panels[0].Text:='IP:'+FromIP;
  StatusBar.Panels[1].Text:='名称:'+RemoteComputerName;

  if MsgList.Count=0 then
    btnMsg.Enabled:=False
  else
    btnMsg.Enabled:=True;

  if MsgPointer<=0 then
    btnPre.Enabled:=False
  else
    btnPre.Enabled:=True;

  if MsgPointer>=MsgList.Count-1 then
    btnNext.Enabled:=False
  else
    btnNext.Enabled:=True;

  if MsgPointer<MsgList.Count then
    ReceivedMsgMemo.Text := MsgList.Strings[MsgPointer];  //有一点点问题
end;

procedure TReceivedMsgForm.btnPreClick(Sender: TObject);
begin
Dec(MsgPointer);

if MsgPointer<=0 then
  btnPre.Enabled:=False;
if MsgPointer<MsgList.Count-1 then
  btnNext.Enabled:=True;

ReceivedMsgMemo.Text:=MsgList.Strings[MsgPointer];
end;

procedure TReceivedMsgForm.btnNextClick(Sender: TObject);
begin
Inc(MsgPointer);

if MsgPointer>0 then
  btnPre.Enabled:=True;
if MsgPointer>=MsgList.Count-1 then
  btnNext.Enabled:=False;

ReceivedMsgMemo.Text:=MsgList.Strings[MsgPointer];
end;

end.
 

⌨️ 快捷键说明

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