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

📄 searchuser.pas

📁 絮语2007视频聊天软件源程序.仅供参考
💻 PAS
字号:
unit searchuser;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, Buttons, StdCtrls, ExtCtrls, xpButton, Menus,constunt;

type
  Tsearch_user = class(TForm)
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    Bevel1: TBevel;
    Label1: TLabel;
    Edit1: TEdit;
    xpButton6: TxpButton;
    xpButton1: TxpButton;
    xpButton3: TxpButton;
    ListView1: TListView;
    StatusBar1: TStatusBar;
    procedure xpButton6Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure PopupMenu1Popup(Sender: TObject);
    procedure ListView1Change(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    procedure ListView1Click(Sender: TObject);
    procedure xpButton1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure xpButton3Click(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure process_custom_message(var msg:tmessage);message refresh_status;
    procedure itemonclick(sender:tobject);
    procedure add_searchlist;
    function checkitem(md5name:string):boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var

  search_user: Tsearch_user;

implementation

uses shareunit, udpcores,addfirendunt,structureunt;
{$R *.DFM}

function Tsearch_user.checkitem(md5name:string):boolean;
var i:integer;
begin
result:=false;
for i:=1 to listview1.Items.Count do
if md5name=listview1.Items.item[i-1].SubItems[3] then
  begin
  result:=true;
  break;
  end;
end;

procedure Tsearch_user.add_searchlist;
var i:integer;
    params:string;
begin
if expandmemo.Count>0 then
for i:=expandmemo.Count downto 1 do
  begin
  params:=expandmemo.Strings[i-1];
  if getparamitem(params,'msgid')=inttostr(xy_user) then
  if getparamitem(params,'funid')=inttostr(xy_search) then
  if getparamitem(params,'operation')=inttostr(xy_responses) then
     begin
     expandmemo.Delete(i-1);
     if not checkitem(getparamitem(params,'md5name')) then
        with listview1.Items.Add,subitems do
          begin
          imageindex:=0;
          caption:=getparamitem(params,'uname');
          add(getparamitem(params,'userid'));
          add(getparamitem(params,'business'));
          add(getparamitem(params,'dept'));
          add(getparamitem(params,'md5name'));
          add(getparamitem(params,'fromip'));
          add(getparamitem(params,'checkup'));
          add(params);
          end;
     end;
  end;
end;

procedure Tsearch_user.process_custom_message(var msg:tmessage);
begin
case msg.WParam of
  xy_adding:add_searchlist;
  end;
end;

procedure Tsearch_user.FormShow(Sender: TObject);
begin
search_hwnd:=handle;
end;

procedure Tsearch_user.xpButton6Click(Sender: TObject);
var p:tpoint;
begin
GetCursorPos(p);
popupmenu1.Popup(p.x,p.y);
end;

procedure Tsearch_user.N1Click(Sender: TObject);
var s:string;
begin
s:=trim(edit1.text);
if s<>'' then addiptohistorylist(s);
end;

procedure Tsearch_user.N2Click(Sender: TObject);
var s:string;n:integer;
begin
s:=trim(edit1.text);
if (s<>'')then
  begin
  n:=searchiplist.IndexOf(s)+1;
  if n>0 then searchiplist.Delete(n-1);
  end;
end;

procedure Tsearch_user.N4Click(Sender: TObject);
begin
searchiplist.Clear;
end;

procedure Tsearch_user.PopupMenu1Popup(Sender: TObject);
var i:integer; tmp:tmenuitem;
begin
if popupmenu1.Items.Count>4 then
for i:=popupmenu1.Items.Count downto 5 do
  popupmenu1.Items.Delete(i-1);
if searchiplist.count>0 then
for i:=1 to searchiplist.Count do
  begin
  tmp:=tmenuitem.Create(nil);
  tmp.Caption:=searchiplist.Strings[i-1];
  tmp.hint:=searchiplist.Strings[i-1];
  tmp.OnClick:=itemonclick;
  popupmenu1.Items.Add(tmp);
  end;
end;

procedure Tsearch_user.itemonclick(sender:tobject);
begin
edit1.text:=tmenuitem(sender).hint;
end;

procedure Tsearch_user.ListView1Change(Sender: TObject; Item: TListItem;
  Change: TItemChange);
begin
statusbar1.Panels.Items[1].Text:=inttostr(listview1.Items.Count);
end;

procedure Tsearch_user.ListView1Click(Sender: TObject);
begin
if listview1.SelCount>0 then
   statusbar1.Panels.Items[3].Text:=listview1.Selected.SubItems[4];
end;

procedure Tsearch_user.xpButton1Click(Sender: TObject);
begin
xpbutton1.Enabled:=false;
listview1.items.clear;
udpcore.finderuser(edit1.text);
xpbutton1.Enabled:=true;
end;


procedure Tsearch_user.xpButton3Click(Sender: TObject);
var n,xxx,msg:string;
    tmp:userinfo;
begin
if listview1.SelCount>0 then
 begin
  xxx:=listview1.Selected.SubItems[6];
  n:=listview1.Selected.SubItems[5];
  listview1.Selected.Delete;
  if n='2' then showmessage('对方不允计任何人加为好友!');
  if n='1' then
     with Taddfirendfrm.create(nil) do
       try
       params:=xxx;
       showmodal;
       finally
       free;
       end;
  if n='0' then
     begin
     tmp:=udpcore.user.getuserinfoex(0);
     makeparamsex(msg,'msgid',xy_user);
     makeparamsex(msg,'funid',xy_search);
     makeparamsex(msg,'operation',xy_adding);
     makeparamsex(msg,'md5name',tmp.md5name);
     makeparamsex(msg,'userid',tmp.userid);
     makeparamsex(msg,'uname',tmp.uname);
     makeparamsex(msg,'tel',tmp.tel);
     makeparamsex(msg,'dept',tmp.dept);
     makeparamsex(msg,'business',tmp.business);
     udpcore.user.adduser(xxx);
     udpcore.sendtoip(getparamitem(xxx,'fromip'),msg);
     expandmemo.Add(xxx);
     postmessage(main_hwnd,refresh_status,xy_refresh_user_status,0);
     end;

 end;
end;

procedure Tsearch_user.FormPaint(Sender: TObject);
begin
udpcore.formonpaint(self);
end;

procedure Tsearch_user.FormCreate(Sender: TObject);
begin
udpcore.changeLayered(handle);
end;

end.

⌨️ 快捷键说明

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