Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Програмируем в Delphi...
Показать сообщение отдельно

Аватара для MeXXXanik

Новый участник


Сообщения: 44
Благодарности: 1

Профиль | Отправить PM | Цитировать


Своя Ася... (Часть 2)
Осталось дошкодить наш ICQ клиент(А у меня в стадии разработки полноценный ICQ клиент под названием ICQ Client.P.S. Он в стадии разработки, а я сам его еще делаю, так что дать вам его скачать НЕМОГУ)
Для поиска:
Код: Выделить весь код
function SearchList(SUin:string; SNick:string):string;
var j:integer;
flag: boolean;
begin
flag:=true;
for j:=0 to UinS.Count-1 do
begin
if SUin=UinS.Strings[j] then
begin
flag:=false;
end;
end;
if flag then
UinS.Add(SUin);
NickS.Add(SNick);
end;
Для изменения сообщения:
function Replace(ZNick:string; Repl:string):string;
var Poz:integer;
s:string;
begin
s:=Form1.MessageEdit.Text;
Poz:=Pos(Repl, s);
while Poz>0 do 
begin
if Repl='*' then 
begin
Delete(s, Poz, Length(Repl)); 
Insert(' ', s, Poz);
end
else
begin
Delete(s, Poz, Length(Repl));
Insert(ZNick, s, Poz);
end;
Form1.MessageEdit.Text:=s;
Poz:=Pos(Repl, s);
end;
end;
Для возрастной категории
(Допишите в uses ICQWorks)
function TForm1.GetAgeMin: Word;
begin
case ComboBox1.ItemIndex of
1: Result := 18;
2: Result := 23;
3: Result := 30;
4: Result := 40;
5: Result := 50;
6: Result := 60;
else
Result := 0;
end;
end;
function TForm1.GetAgeMax: Word;
begin
case ComboBox1.ItemIndex of
1: Result := 22;
2: Result := 29;
3: Result := 39;
4: Result := 49;
5: Result := 59;
6: Result := $2710;
else
Result := 0;
end;
end;
OnCreate для Form'ы
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
UinS:=TStringList.Create;
NickS:=TStringList.Create;
ComboBox1.Items.Add('');
ComboBox1.ItemIndex := 0;
ComboBox1.Items.Add('18-22');
ComboBox1.Items.Add('23-29');
ComboBox1.Items.Add('30-39');
ComboBox1.Items.Add('40-49');
ComboBox1.Items.Add('50-59');
ComboBox1.Items.Add('60 and above');
ComboBox2.Items.Add('');
ComboBox2.ItemIndex := 0;
for i := Low(Countries) to High(Countries) do 
ComboBox2.Items.Add(Countries[i].Value);
end;
ONClick для кнопки
if LoginEdit.Text='' then
ShowMessage('Error! Enter UIN!')
else
Memo1.Clear;
ICQClient1.UIN:=StrToInt(LoginEdit.Text);
ICQClient1.Password:=PasswordEdit.Text;
ICQClient1.Login(0); 
OnLogin для ICQClient
procedure TForm1.ICQClient1Login(Sender: TObject);
var
i:integer;
begin
for i:=0 to StrToInt(CountEdit.TExt) do
begin
ICQClient1.SearchWhitePages('','','','',GetAgeMin,GetAgeMax,0,'','',ComboBox2.Items.Strings[ComboBox2.ItemIndex],'','','','','','','','','',true);
end;
for i:=0 to UinS.Count-1 do
begin
if i=0 then
Replace(NickS.Strings[i],'$Nick')
else
begin
Replace(NickS.Strings[i],NickS.Strings[i-1]); 
end;
ICQClient1.SendMessage(StrToInt(UinS.Strings[i]),MessageEdit.Text);
Memo1.Lines.Add('Послано сообщение на '+UinS.Strings[i]+': '+MessageEdit.Text);
end;
ICQClient1.Disconnect;
UinS.Free;
NickS.Free;
end
А вот и все осталось добавить в OnUserFound компонента ICQClient вот этот код
if Nick='' then
SearchList(Uin, '*')
else
SearchList(Uin, Nick);

Вот и все! На следующий раз я может еще че нибудь приделаю и раскажу вам
Но так как это всего лишь пример, я небуду говорить более этого примера...
Ладно ждите продолжение темы "Програмирование в среде Delphi"

Последний раз редактировалось Drongo, 03-08-2009 в 10:40. Причина: Используйте теги [code]...[/code] для оформления кода


Отправлено: 09:38, 03-08-2009 | #2

Название темы: Програмируем в Delphi...