📄 searchuser.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 + -