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

📄 unit17.~pas

📁 本程序提供了考试学生系统的原代码函数,并实现了很多程序难实现的功能
💻 ~PAS
字号:
unit Unit17;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, NMUDP, StdCtrls, Buttons, ExtCtrls;

type
  TForm17 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    Panel2: TPanel;
    Memo1: TMemo;
    Panel3: TPanel;
    ListBox1: TListBox;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    NMUDP1: TNMUDP;
    SpeedButton1: TSpeedButton;
    procedure Formshow(Sender: TObject);
      //var Buff: array of Char; var length: Integer);
    procedure SpeedButton1Click(Sender: TObject);
    procedure edit1keypress(Sender: TObject; var Key: Char);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure nmudp1datareceived(Sender: TComponent; NumberBytes: Integer;
      FromIP: String; Port: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form17: TForm17;
  computername:array[0..127]of char;

implementation

{$R *.dfm}

procedure TForm17.Formshow(Sender: TObject);
  var
    sz:dword;
  begin
  sz:=Sizeof(ComputerName);
  getcomputername(ComputerName,sz);
  listbox1.Items.Clear;
  listbox1.Items.Add('dajia');
  listbox1.Items.Add(ComputerName);
  listbox1.ItemIndex:=0;
end;

procedure TForm17.SpeedButton1Click(Sender: TObject);
var
mystream:tmemorystream;
tmpstr:string;

i:integer;
begin
  if edit1.Text <>''then
  begin
  nmudp1.ReportLevel:=status_basic;
  nmudp1.RemotePort:=8888;
  if listbox1.Items[listbox1.ItemIndex]:=computername then
  edit1.Text:=computername+'自言自语'+edit1.Text
  else
  edit1.text:=computername+'对'+listbox1.Items[listbox1.itemindex]+'说'+edit1.Text;
  tmpstr:=edit1.Text;
  mystream:=tmemorystream.Create;
  try
  mystream.Write(tmpstr[1],length(edit1.text));
  if listbox1.ItemIndex=0 then
  begin
    for i:=1 to listbox1.Items.Count-1 do
    begin
    nmudp1.RemoteHost:=listbox1.Items[i];
    nmudp1.SendStream(mystream);
    end;
    end
    else
    begin
     nmudp1.RemoteHost:=listbox1.Items[listbox1.itemindex];
    nmudp1.SendStream(mystream);
    end;
    finally
    mystream.Free;
    end;
    edit1.text:='';
    edit1.setfocus;
    end
    else
    edit1.setfocus;
end;

procedure TForm17.edit1keypress(Sender: TObject; var Key: Char);
var
mystream:tmemorystream;
tmpstr:string;
i:integer;
begin
 if(key=#13)and(edit1.text<>'')then
 begin
 nmudp1.ReportLevel:=status_basic;
 nmudp1.RemotePort:=8888;
 if listbox1.Items[listbox1.ItemIndex]:=computername then
  edit1.Text:=computername+'自言自语'+edit1.Text
  else
  edit1.text:=computername+'对'+listbox1.Items[listbox1.itemindex]+'说'+edit1.Text;
  tmpstr:=edit1.Text;
  mystream:=tmemorystream.Create;
  try
  mystream.Write(tmpstr[1],length(edit1.text));
  if listbox1.ItemIndex=0 then
  begin
    for i:=1 to listbox1.Items.Count-1 do
    begin
    nmudp1.RemoteHost:=listbox1.Items[i];
    nmudp1.SendStream(mystream);
    end;
    end
    else
    begin
     nmudp1.RemoteHost:=listbox1.Items[listbox1.itemindex];
     nmudp1.SendStream(mystream);
    end;


  finally
    mystream.Free;
    end;
    edit1.text:='';
    edit1.setfocus;
    end

    else
    edit1.setfocus;
    end;

procedure TForm17.BitBtn2Click(Sender: TObject);
 var
 inputstring:string;
begin
  inputstring:=inputbox('增加聊天对象','ip地址或计算机名:','');
  if inputstring<>''then listbox1.Items.Add(inputstring);
  listbox1.ItemIndex:=0;
  end;

procedure TForm17.BitBtn3Click(Sender: TObject);
begin
if listbox1.ItemIndex<>0 then
listbox1.Items.Delete(listbox1.ItemIndex);
end;

procedure TForm17.BitBtn4Click(Sender: TObject);
begin
close;
end;

procedure TForm17.nmudp1datareceived(Sender: TComponent;
  NumberBytes: Integer; FromIP: String; Port: Integer);
  var
  mystream:tmemorystream;
  tmpstr:string;
begin
  mystream:=tmemorystream.create;
  try
  nmudp1.ReadStream(mystream);
  setlength(tmpstr,numberbytes);
  mystream.Read(tmpstr[1],numberbytes);
  memo1.Lines.Add(tmpstr);
  finally
  mystream.Free;
end;

end;
end.


⌨️ 快捷键说明

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