| 
                          dolphin
                         | 
                        
                          Дата: Пятница, 01.08.2008, 17:16 | Сообщение # 1
                         | 
                       
                      
                        
                           
                          
                            Администратор
                           
                          
                            Сообщений: 904
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          
                          
                            
                            
                              Code
                             
                            
                               
                              unit Unit1; 
                               
                              interface 
                               
                              uses 
                              Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
                              Dialogs, ICQClient, ExtCtrls, StdCtrls; 
                               
                              type 
                               
                              TForm1 = class(TForm) 
                              Label1: TLabel; 
                              Label2: TLabel; 
                              Edit1: TEdit; 
                              Edit2: TEdit; 
                              Button1: TButton; 
                              Button2: TButton; 
                              Memo1: TMemo; 
                              Timer1: TTimer; 
                              ICQClient1: TICQClient; 
                              procedure Button1Click(Sender: TObject); 
                              procedure ICQClient1Login(Sender: TObject); 
                              procedure ICQClient1ConnectionFailed(Sender: TObject); 
                              procedure Timer1Timer(Sender: TObject); 
                              procedure Button2Click(Sender: TObject); 
                              procedure ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String); 
                               
                              { Private declarations } 
                              public 
                              { Public declarations } 
                              end; 
                               
                              var 
                              Form1: TForm1; 
                              rec: boolean; 
                               
                              implementation 
                               
                              {$R *.dfm} 
                               
                              procedure TForm1.Button1Click(Sender: TObject); 
                              begin 
                              //Проверка на заполненность полей с ICQ аккаунтом 
                              if (Edit1.Text = '') or (Edit2.Text = '') or //пустые поля 
                              (Length(Edit1.Text) < 5) or (Length(Edit2.Text) < 3) //Если UIN меньше 5 символов и пароль меньше 3 
                              then 
                              begin 
                              MessageDlg('Не правельно заполнены поля!',mtInformation,[mbOk],0); //Выводим сообщение об ошибке 
                              Exit; 
                              end; 
                              rec := True; //Удачное соединение 
                              ICQClient1.UIN := StrToInt(Edit1.Text); //забираем UIN 
                              ICQClient1.Password := Edit2.Text; //забираем пароль 
                              ICQClient1.Login(); //Соединяемся с сервером 
                              Memo1.Lines.Add('Соединение с сервером ICQ...'); //Выводим текущее состояние (соединение) 
                              end; 
                               
                              procedure TForm1.ICQClient1Login(Sender: TObject); 
                              begin 
                              if ICQClient1.LoggedIn then //если соединение установлено 
                              begin 
                              Memo1.Lines.Add('Соединение с сервером установлено.'); //Добавляю в Memo1 строку о текущем положении 
                              Timer1.Enabled := True; //Включаю таймер 
                              end; 
                              end; 
                               
                              procedure TForm1.ICQClient1ConnectionFailed(Sender: TObject); 
                              begin 
                              if not rec then Exit; //Если мы нажали на кнопку "Выход", то не нужно пытаться соединиться 
                              Memo1.Lines.Add('Не удалось соединиться с сервером.'); 
                              if MessageDlg('Попытаться соединиться еще раз?',mtInformation,[mbOk,mbCancel],0) = mrOk 
                              then 
                              begin 
                              ICQClient1.Login(); 
                              Memo1.Lines.Add('Соединение с сервером ICQ...'); 
                              end; 
                               
                              end; 
                               
                              procedure TForm1.Timer1Timer(Sender: TObject); 
                              begin 
                              ICQClient1.SendKeepAlive; //посылаем KeepAlive (Зачем? Описываль выше :)) 
                              end; 
                               
                              procedure TForm1.Button2Click(Sender: TObject); 
                              begin 
                              if not ICQCLient1.LoggedIn then 
                              MessageDlg('Соединение с сервером не установлено!',mtInformation,[mbOk],0) 
                              else 
                              begin 
                              rec := False; 
                              ICQCLient1.Disconnect; 
                              Memo1.Lines.Add('Соединение с сервером оборвано.'); 
                              Timer1.Enabled := False; 
                              end; 
                              end; 
                               
                              procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String); 
                               
                              var 
                              icq: cardinal; 
                              begin 
                              icq := StrToInt(UIN); 
                              Memo1.Lines.Add(UIN + ': ' + Msg); //Добавляем полученное сообщение в Memo1 
                              if Msg='Привет' then 
                              ICQClient1.SendMessage(icq,'Привет') //Отсылаем ответ, мол здравствуйте! Рады вас слышать! 
                              else 
                              ICQClient1.SendMessage(icq,'Извините, мне не о чем с Вами поговорить... :)'); 
                              end; 
                               
                              end. 
                             
                           
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                
                
                  
                    
                      
                        | 
                          Заглянувший
                         | 
                        
                          Дата: Понедельник, 26.01.2009, 14:02 | Сообщение # 2
                         | 
                       
                      
                        
                           
                          
                          
                          
                            Группа: Гости
                            
                           
                           
                         | 
                        Скажи пожалуйста чайнику, этот код до изменения протокола или после? | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                
                
                  
                    
                      
                        | 
                          Заглянувший
                         | 
                        
                          Дата: Вторник, 27.01.2009, 19:22 | Сообщение # 3
                         | 
                       
                      
                        
                           
                          
                          
                          
                            Группа: Гости
                            
                           
                           
                         | 
                        Протокол меняли уже 2 раза с тех пор,работоспособность зависит от компанента! | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                
                
                  
                    
                      
                        | 
                          dolphin
                         | 
                        
                          Дата: Четверг, 29.01.2009, 20:01 | Сообщение # 4
                         | 
                       
                      
                        
                           
                          
                            Администратор
                           
                          
                            Сообщений: 904
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Меняем только TICQClient на Delphi последние изменение 20 января 2009 
                           
                          Система: Windows 10 x64, Windows XP 
                          Среды программирования: Delphi 7, Delphi 10 Seattle 
                           
                          Я не профессионал, я всего лишь любитель 
                          Я не вредитель, я всего лишь теоретик
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   |