📄 usersearch.pas
字号:
unit UserSearch;
{(C) Alex Demchenko(alex@ritlabs.com)}
interface
uses
Windows, Messages, Classes, Graphics, Controls, Forms,
StdCtrls, ComCtrls, ICQWorks, Menus;
type
TUserSearchForm = class(TForm)
GroupBox1: TGroupBox;
SearchByNumberRadio: TRadioButton;
NumberEdit: TEdit;
GroupBox2: TGroupBox;
SearchByEmailRadio: TRadioButton;
EmailEdit: TEdit;
GroupBox3: TGroupBox;
SearchByNameRadio: TRadioButton;
NickEdit: TEdit;
Label1: TLabel;
Label2: TLabel;
FirstEdit: TEdit;
LastEdit: TEdit;
Label3: TLabel;
Button1: TButton;
GroupBox4: TGroupBox;
ListView1: TListView;
StatusBar1: TStatusBar;
GroupBox5: TGroupBox;
RandomSearchRadio: TRadioButton;
RandomComboBox: TComboBox;
Label4: TLabel;
AdvancedButton: TButton;
UserSearchPopup: TPopupMenu;
AddToList1: TMenuItem;
UsersInfo1: TMenuItem;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure SearchByEmailRadioClick(Sender: TObject);
procedure SearchByNumberRadioClick(Sender: TObject);
procedure SearchByNameRadioClick(Sender: TObject);
procedure NumberEditChange(Sender: TObject);
procedure EmailEditChange(Sender: TObject);
procedure NickEditChange(Sender: TObject);
procedure RandomSearchRadioClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure AdvancedButtonClick(Sender: TObject);
procedure UserSearchPopupPopup(Sender: TObject);
procedure UsersInfo1Click(Sender: TObject);
procedure AddToList1Click(Sender: TObject);
procedure RandomComboBoxChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
UserSearchForm: TUserSearchForm;
implementation
uses
Main, UserSearchWP;
{$R *.dfm}
procedure TUserSearchForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caHide;
end;
procedure TUserSearchForm.Button1Click(Sender: TObject);
begin
if not MainForm.ICQClient1.LoggedIn then
begin
MessageBox(0, 'Not connected!', 'Error!', MB_ICONERROR);
Exit;
end;
if UserSearchWPForm.Showing then
MainForm.ICQClient1.SearchWhitePages(
UserSearchWPForm.FirstNameEdit.Text,
UserSearchWPForm.LastNameEdit.Text,
UserSearchWPForm.NickNameEdit.Text,
UserSearchWPForm.EmailEdit.Text,
UserSearchWPForm.GetAgeMin,
UserSearchWPForm.GetAgeMax,
UserSearchWPForm.GetGender,
UserSearchWPForm.LanguageCB.Items.Strings[UserSearchWPForm.LanguageCB.ItemIndex],
UserSearchWPForm.CityEdit.Text,
UserSearchWPForm.CountryCB.Items.Strings[UserSearchWPForm.CountryCB.ItemIndex],
UserSearchWPForm.CompanyEdit.Text,
UserSearchWPForm.DepartmentEdit.Text,
UserSearchWPForm.PositionEdit.Text,
UserSearchWPForm.OccupationCB.Items.Strings[UserSearchWPForm.OccupationCB.ItemIndex],
UserSearchWPForm.OrganizationCB.Items.Strings[UserSearchWPForm.OrganizationCB.ItemIndex],
UserSearchWPForm.OrganizationKeyWordsEdit.Text,
UserSearchWPForm.PastAffilCB.Items.Strings[UserSearchWPForm.PastAffilCB.ItemIndex],
UserSearchWPForm.PastAffilKeyWordsEdit.Text,
UserSearchWPForm.KeyWordEdit.Text,
UserSearchWPForm.OnlineCB.Checked)
else if SearchByEmailRadio.Checked then
MainForm.ICQClient1.SearchByMail(EmailEdit.Text)
else if SearchByNumberRadio.Checked then
MainForm.ICQClient1.SearchByUIN(StrToInt(NumberEdit.Text))
else if SearchByNameRadio.Checked then
MainForm.ICQClient1.SearchByName(FirstEdit.Text, LastEdit.Text, NickEdit.Text, '')
else if RandomSearchRadio.Checked then
MainForm.ICQClient1.SearchRandom(RandGroups[RandomComboBox.ItemIndex + 1].Ident)
else
Exit;
Button1.Caption := 'Searching...';
StatusBar1.Panels[0].Text := 'Searching...';
ListView1.Items.Clear;
end;
procedure TUserSearchForm.SearchByNumberRadioClick(Sender: TObject);
begin
SearchByEmailRadio.Checked := False;
SearchByNameRadio.Checked := False;
RandomSearchRadio.Checked := False;
end;
procedure TUserSearchForm.SearchByEmailRadioClick(Sender: TObject);
begin
SearchByNumberRadio.Checked := False;
SearchByNameRadio.Checked := False;
RandomSearchRadio.Checked := False;
end;
procedure TUserSearchForm.SearchByNameRadioClick(Sender: TObject);
begin
SearchByNumberRadio.Checked := False;
SearchByEmailRadio.Checked := False;
RandomSearchRadio.Checked := False;
end;
procedure TUserSearchForm.RandomSearchRadioClick(Sender: TObject);
begin
SearchByNumberRadio.Checked := False;
SearchByEmailRadio.Checked := False;
SearchByNameRadio.Checked := False;
end;
procedure TUserSearchForm.NumberEditChange(Sender: TObject);
begin
SearchByNumberRadio.Checked := True;
SearchByEmailRadio.Checked := False;
SearchByNameRadio.Checked := False;
RandomSearchRadio.Checked := False;
end;
procedure TUserSearchForm.EmailEditChange(Sender: TObject);
begin
SearchByNumberRadio.Checked := False;
SearchByEmailRadio.Checked := True;
SearchByNameRadio.Checked := False;
RandomSearchRadio.Checked := False;
end;
procedure TUserSearchForm.NickEditChange(Sender: TObject);
begin
SearchByNumberRadio.Checked := False;
SearchByEmailRadio.Checked := False;
SearchByNameRadio.Checked := True;
RandomSearchRadio.Checked := False;
end;
procedure TUserSearchForm.FormCreate(Sender: TObject);
var
i: Word;
begin
for i := Low(RandGroups) to High(RandGroups) do
RandomComboBox.Items.Add(RandGroups[i].Value);
RandomComboBox.ItemIndex := 0;
end;
procedure TUserSearchForm.AdvancedButtonClick(Sender: TObject);
begin
UserSearchWPForm.ShowModal;
end;
procedure TUserSearchForm.UserSearchPopupPopup(Sender: TObject);
begin
if ListView1.Selected = nil then
begin
UserSearchPopup.Items[0].Enabled := False;
UserSearchPopup.Items[1].Enabled := False;
end
else
begin
UserSearchPopup.Items[0].Enabled := True;
UserSearchPopup.Items[1].Enabled := True;
end;
end;
procedure TUserSearchForm.UsersInfo1Click(Sender: TObject);
begin
if ListView1.Selected = nil then Exit;
MainForm.DoCreateInfoQuery(ListView1.Selected.SubItems[3]);
end;
procedure TUserSearchForm.AddToList1Click(Sender: TObject);
var
ListItem: TListItem;
begin
if ListView1.Selected = nil then Exit;
MainForm.ICQClient1.AddContact(StrToInt(ListView1.Selected.SubItems[3]));
//Add if user in the contact list ListView1 in the MainForm
ListItem := MainForm.ListView1.Items.Add;
ListItem.ImageIndex := ListView1.Selected.ImageIndex;
ListItem.Caption := ListView1.Selected.SubItems[3];
end;
procedure TUserSearchForm.RandomComboBoxChange(Sender: TObject);
begin
SearchByNumberRadio.Checked := False;
SearchByEmailRadio.Checked := False;
SearchByNameRadio.Checked := False;
RandomSearchRadio.Checked := True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -