home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 November / Chip_2002-11_cd1.bin / zkuste / delphi / kompon / d3456 / ICQ.ZIP / ICQ / Example / UserSearch.pas < prev    next >
Pascal/Delphi Source File  |  2002-07-11  |  7KB  |  228 lines

  1. unit UserSearch;
  2. {(C) Alex Demchenko(alex@ritlabs.com)}
  3.  
  4. interface
  5.  
  6. uses
  7.   Windows, Messages, Classes, Graphics, Controls, Forms,
  8.   StdCtrls, ComCtrls, ICQWorks, Menus;
  9.  
  10. type
  11.   TUserSearchForm = class(TForm)
  12.     GroupBox1: TGroupBox;
  13.     SearchByNumberRadio: TRadioButton;
  14.     NumberEdit: TEdit;
  15.     GroupBox2: TGroupBox;
  16.     SearchByEmailRadio: TRadioButton;
  17.     EmailEdit: TEdit;
  18.     GroupBox3: TGroupBox;
  19.     SearchByNameRadio: TRadioButton;
  20.     NickEdit: TEdit;
  21.     Label1: TLabel;
  22.     Label2: TLabel;
  23.     FirstEdit: TEdit;
  24.     LastEdit: TEdit;
  25.     Label3: TLabel;
  26.     Button1: TButton;
  27.     GroupBox4: TGroupBox;
  28.     ListView1: TListView;
  29.     StatusBar1: TStatusBar;
  30.     GroupBox5: TGroupBox;
  31.     RandomSearchRadio: TRadioButton;
  32.     RandomComboBox: TComboBox;
  33.     Label4: TLabel;
  34.     AdvancedButton: TButton;
  35.     UserSearchPopup: TPopupMenu;
  36.     AddToList1: TMenuItem;
  37.     UsersInfo1: TMenuItem;
  38.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  39.     procedure Button1Click(Sender: TObject);
  40.     procedure SearchByEmailRadioClick(Sender: TObject);
  41.     procedure SearchByNumberRadioClick(Sender: TObject);
  42.     procedure SearchByNameRadioClick(Sender: TObject);
  43.     procedure NumberEditChange(Sender: TObject);
  44.     procedure EmailEditChange(Sender: TObject);
  45.     procedure NickEditChange(Sender: TObject);
  46.     procedure RandomSearchRadioClick(Sender: TObject);
  47.     procedure FormCreate(Sender: TObject);
  48.     procedure AdvancedButtonClick(Sender: TObject);
  49.     procedure UserSearchPopupPopup(Sender: TObject);
  50.     procedure UsersInfo1Click(Sender: TObject);
  51.     procedure AddToList1Click(Sender: TObject);
  52.     procedure RandomComboBoxChange(Sender: TObject);
  53.   private
  54.     { Private declarations }
  55.   public
  56.     { Public declarations }
  57.   end;
  58.  
  59. var
  60.   UserSearchForm: TUserSearchForm;
  61.  
  62. implementation
  63. uses
  64.   Main, UserSearchWP;
  65.  
  66. {$R *.dfm}
  67.  
  68. procedure TUserSearchForm.FormClose(Sender: TObject;
  69.   var Action: TCloseAction);
  70. begin
  71.   Action := caHide;
  72. end;
  73.  
  74. procedure TUserSearchForm.Button1Click(Sender: TObject);
  75. begin
  76.   if not MainForm.ICQClient1.LoggedIn then
  77.   begin
  78.     MessageBox(0, 'Not connected!', 'Error!', MB_ICONERROR);
  79.     Exit;
  80.   end;
  81.   if UserSearchWPForm.Showing then
  82.     MainForm.ICQClient1.SearchWhitePages(
  83.       UserSearchWPForm.FistNameEdit.Text,
  84.       UserSearchWPForm.LastNameEdit.Text,
  85.       UserSearchWPForm.NickNameEdit.Text,
  86.       UserSearchWPForm.EmailEdit.Text,
  87.       StrToInt(UserSearchWPForm.MinAgeEdit.Text),
  88.       StrToInt(UserSearchWPForm.MaxAgeEdit.Text),
  89.       UserSearchWPForm.GenderComboBox.ItemIndex,
  90.       UserSearchWPForm.LanguageComboBox.Items.Strings[UserSearchWPForm.LanguageComboBox.ItemIndex],
  91.       UserSearchWPForm.CityEdit.Text,
  92.       UserSearchWPForm.StateEdit.Text,
  93.       UserSearchWPForm.CountryComboBox.Items.Strings[UserSearchWPForm.CountryComboBox.ItemIndex],
  94.       UserSearchWPForm.CompanyEdit.Text,
  95.       UserSearchWPForm.DepartmentEdit.Text,
  96.       UserSearchWPForm.PositionEdit.Text,
  97.       UserSearchWPForm.OccupationComboBox.Items.Strings[UserSearchWPForm.OccupationComboBox.ItemIndex],
  98.       UserSearchWPForm.PastComboBox.Items.Strings[UserSearchWPForm.PastComboBox.ItemIndex],
  99.       UserSearchWPForm.PastDescEdit.Text,
  100.       UserSearchWPForm.InterestComboBox.Items.Strings[UserSearchWPForm.InterestComboBox.ItemIndex],
  101.       UserSearchWPForm.InterestsDescEdit.Text,
  102.       UserSearchWPForm.AffilationComboBox.Items.Strings[UserSearchWPForm.AffilationComboBox.ItemIndex],
  103.       UserSearchWPForm.AffilationDescEdit.Text,
  104.       UserSearchWPForm.HomePageEdit.Text,
  105.       UserSearchWPForm.SearchOnlineUsers.Checked)
  106.   else if SearchByEmailRadio.Checked then
  107.     MainForm.ICQClient1.SearchByMail(EmailEdit.Text)
  108.   else if SearchByNumberRadio.Checked then
  109.     MainForm.ICQClient1.SearchByUIN(StrToInt(NumberEdit.Text))
  110.   else if SearchByNameRadio.Checked then
  111.     MainForm.ICQClient1.SearchByName(FirstEdit.Text, LastEdit.Text, NickEdit.Text, '')
  112.   else if RandomSearchRadio.Checked then
  113.     MainForm.ICQClient1.SearchRandom(RandGroups[RandomComboBox.ItemIndex + 1].Ident)
  114.   else
  115.     Exit;
  116.   Button1.Caption := 'Searching...';
  117.   StatusBar1.Panels[0].Text := 'Searching...';
  118.   ListView1.Items.Clear;
  119. end;
  120.  
  121. procedure TUserSearchForm.SearchByNumberRadioClick(Sender: TObject);
  122. begin
  123.   SearchByEmailRadio.Checked := False;
  124.   SearchByNameRadio.Checked := False;
  125.   RandomSearchRadio.Checked := False;  
  126. end;
  127.  
  128. procedure TUserSearchForm.SearchByEmailRadioClick(Sender: TObject);
  129. begin
  130.   SearchByNumberRadio.Checked := False;
  131.   SearchByNameRadio.Checked := False;
  132.   RandomSearchRadio.Checked := False;
  133. end;
  134.  
  135. procedure TUserSearchForm.SearchByNameRadioClick(Sender: TObject);
  136. begin
  137.   SearchByNumberRadio.Checked := False;
  138.   SearchByEmailRadio.Checked := False;
  139.   RandomSearchRadio.Checked := False;
  140. end;
  141.  
  142. procedure TUserSearchForm.RandomSearchRadioClick(Sender: TObject);
  143. begin
  144.   SearchByNumberRadio.Checked := False;
  145.   SearchByEmailRadio.Checked := False;
  146.   SearchByNameRadio.Checked := False;
  147. end;
  148.  
  149. procedure TUserSearchForm.NumberEditChange(Sender: TObject);
  150. begin
  151.   SearchByNumberRadio.Checked := True;
  152.   SearchByEmailRadio.Checked := False;
  153.   SearchByNameRadio.Checked := False;
  154.   RandomSearchRadio.Checked := False;
  155. end;
  156.  
  157. procedure TUserSearchForm.EmailEditChange(Sender: TObject);
  158. begin
  159.   SearchByNumberRadio.Checked := False;
  160.   SearchByEmailRadio.Checked := True;
  161.   SearchByNameRadio.Checked := False;
  162.   RandomSearchRadio.Checked := False;
  163. end;
  164.  
  165. procedure TUserSearchForm.NickEditChange(Sender: TObject);
  166. begin
  167.   SearchByNumberRadio.Checked := False;
  168.   SearchByEmailRadio.Checked := False;
  169.   SearchByNameRadio.Checked := True;
  170.   RandomSearchRadio.Checked := False;
  171. end;
  172.  
  173. procedure TUserSearchForm.FormCreate(Sender: TObject);
  174. var
  175.   i: Word;
  176. begin
  177.   for i := Low(RandGroups) to High(RandGroups) do
  178.     RandomComboBox.Items.Add(RandGroups[i].Value);
  179.   RandomComboBox.ItemIndex := 0;
  180. end;
  181.  
  182. procedure TUserSearchForm.AdvancedButtonClick(Sender: TObject);
  183. begin
  184.   UserSearchWPForm.ShowModal;
  185. end;
  186.  
  187. procedure TUserSearchForm.UserSearchPopupPopup(Sender: TObject);
  188. begin
  189.   if ListView1.Selected = nil then
  190.   begin
  191.     UserSearchPopup.Items[0].Enabled := False;
  192.     UserSearchPopup.Items[1].Enabled := False;
  193.   end
  194.   else
  195.   begin
  196.     UserSearchPopup.Items[0].Enabled := True;
  197.     UserSearchPopup.Items[1].Enabled := True;
  198.   end;
  199. end;
  200.  
  201. procedure TUserSearchForm.UsersInfo1Click(Sender: TObject);
  202. begin
  203.   if ListView1.Selected = nil then Exit;
  204.   MainForm.DoCreateInfoQuery(ListView1.Selected.SubItems[3]);
  205. end;
  206.  
  207. procedure TUserSearchForm.AddToList1Click(Sender: TObject);
  208. var
  209.   ListItem: TListItem;
  210. begin
  211.   if ListView1.Selected = nil then Exit;
  212.   MainForm.ICQClient1.AddContact(StrToInt(ListView1.Selected.SubItems[3]));
  213.   //Add if user in the contact list ListView1 in the MainForm
  214.   ListItem := MainForm.ListView1.Items.Add;
  215.   ListItem.ImageIndex := ListView1.Selected.ImageIndex;
  216.   ListItem.Caption := ListView1.Selected.SubItems[3];
  217. end;
  218.  
  219. procedure TUserSearchForm.RandomComboBoxChange(Sender: TObject);
  220. begin
  221.   SearchByNumberRadio.Checked := False;
  222.   SearchByEmailRadio.Checked := False;
  223.   SearchByNameRadio.Checked := False;
  224.   RandomSearchRadio.Checked := True;
  225. end;
  226.  
  227. end.
  228.