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

📄 unit1.pas

📁 本目录内所有代码仅作指导用户编程之用,用户如果要作为 商业用途,建议使用正版软件进行编译. 开发环境说明: delphi demo : delphi 6.0 vc de
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, ComCtrls, ImgList, ToolWin, PublicUnit,
  winsock, Menus;

type
  TForm1 = class(TForm)
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ImageList1: TImageList;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton10: TToolButton;
    ToolButton2: TToolButton;
    ListView1: TListView;
    PageControl1: TPageControl;
    TabSheet3: TTabSheet;
    Memo1: TMemo;
    Splitter1: TSplitter;
    ToolButton3: TToolButton;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    Panel1: TPanel;
    ToolButton6: TToolButton;
    Edit1: TEdit;
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton10Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure WMdtu(var Message: TMessage); message WM_DTU;
  end;

var
  Form1: TForm1;

implementation

uses dllUnit, unitParam;

{$R *.dfm}

procedure TForm1.ToolButton1Click(Sender: TObject);
var
  start_result: Integer;
begin
  SetWorkMode(2);
  //start_result := start_gprs_server(Handle, WM_DTU, strtoint(Edit1.Text), mess);
  start_result := start_net_service(Handle, WM_DTU, strtoint(Edit1.Text), mess);
  Memo1.Lines.Add(mess);
  if start_result = 0 then
  begin
    ToolButton1.Enabled := false;
    ToolButton4.Enabled := true;
    ToolButton5.Enabled := true;

  end else begin
    ToolButton1.Enabled := true;
    ToolButton4.Enabled := false;
    ToolButton5.Enabled := false;

  end
end;

procedure TForm1.ToolButton10Click(Sender: TObject);
begin
  if not ToolButton1.Enabled then
  begin
    //stop_gprs_server(mess);
    stop_net_service(mess);
    Memo1.Lines.Add(mess);
  end;
  close;
end;

procedure TForm1.ToolButton4Click(Sender: TObject);
var
  stop_result: Integer;
begin
  //stop_result := stop_gprs_server(mess);
  stop_result := stop_net_service(mess);
  Memo1.Lines.Add(mess);
  if stop_result = 0 then
  begin
    ToolButton1.Enabled := true;
    ToolButton4.Enabled := false;
    ToolButton5.Enabled := false;
  end else begin
    ToolButton1.Enabled := false;
    ToolButton4.Enabled := true;
    ToolButton5.Enabled := true;
  end;
  ListView1.Items.Clear;
end;

procedure TForm1.WMdtu(var Message: TMessage);
var
  data_record: TData_Record;
  read_result: Integer;
  listitem: TListItem;
  user_info: TUser_Info;
  addr: in_addr;
  i: Integer;
begin
  memo1.Lines.Add('get a msg');
  read_result := do_read_proc(data_record, mess, false);
  if read_result = 0 then
  begin
    case data_record.m_data_type of
      $01 :
        begin
          listitem := nil;
          get_user_info(data_record.m_userid, user_info);
          for i := 0 to ListView1.Items.Count - 1 do
          begin
            if ListView1.Items[i].Caption = data_record.m_userid then
            begin
              listitem := ListView1.Items[i];
              listitem.Caption := data_record.m_userid;
              listitem.SubItems[0] := user_info.m_logon_date;
              addr.S_addr := htonl(user_info.m_local_addr);
              listitem.SubItems[1] := inet_ntoa(addr);
              listitem.SubItems[2] := inttostr(user_info.m_local_port);
              addr.S_addr := htonl(user_info.m_sin_addr);
              listitem.SubItems[3] := inet_ntoa(addr);
              listitem.SubItems[4] := inttostr(user_info.m_sin_port);
              break;
            end;
          end;
          if listitem = nil then
          begin
            listitem := ListView1.Items.Add;
            listitem.Caption := data_record.m_userid;
            listitem.SubItems.Add(user_info.m_logon_date);
            addr.S_addr := htonl(user_info.m_local_addr);
            listitem.SubItems.Add(inet_ntoa(addr));
            listitem.SubItems.Add(inttostr(user_info.m_local_port));
            addr.S_addr := htonl(user_info.m_sin_addr);
            listitem.SubItems.Add(inet_ntoa(addr));
            listitem.SubItems.Add(inttostr(user_info.m_sin_port));
          end;
        end;
      $02 :
        for i := 0 to ListView1.Items.Count - 1 do
          if ListView1.Items[i].Caption = data_record.m_userid then
          begin
            ListView1.Items[i].Delete;
            break;
          end;
      $09 :
        begin

        end;

       $0b :
       begin
         if FParam <> nil then
          PostMessage(FParam.Handle, WM_DTU_PARAM, 1, 0);
       end;
       $0d :
       begin
         if FParam <> nil then
          PostMessage(FParam.Handle, WM_DTU_PARAM, 2, 0);
       end;
       $04 :
       begin
         if FParam <> nil then begin
          PostMessage(FParam.Handle, WM_DTU_PARAM, 0, 0);
         end;
       end;
    end;
  end else begin
    Memo1.Lines.Add(mess);
  end;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
  memo1.Lines.Clear;
end;

procedure TForm1.ToolButton5Click(Sender: TObject);
begin
  FParam := TFParam.Create(self);
  FParam.ShowModal;
  FParam.Free;
  FParam := nil;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not(Key in ['0'..'9']) then
    Key := #0;
end;

end.

⌨️ 快捷键说明

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