Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.01.2011, 14:48
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию StringList

Код:
potokkomand1:=TstringList.Create;
PK1:=TstringList.Create;
PK1.add('7559384=hello');
PK1.add('7559384=hello');
PK1.add('7559384=hello');
potokkomand1:=PK1;
Timer1potok:=True;
If Timer1potok = True then
begin
 Timer1potok:=false;
 if potokkomand1.Count-1 > 6 then
  begin
for mem1:=potokkomand1.Count-1 Downto 0 do
    begin
     UIN1:=copy(potokkomand1.strings[mem1],1,pos('=',potokkomand1.strings[mem1])-1);
     Msg1:=copy(potokkomand1.strings[mem1],pos('=',potokkomand1.strings[mem1])+1,length(potokkomand1.strings[mem1]));
     potokkomand1.Delete(mem1);
     Form1.obrabotchik1(UIN1, Msg1);
     sleep(200);
    end;
  end
else
 begin
  for mem1:=potokkomand1.Count-1 DownTo 0 do
   begin
    UIN1:=copy(potokkomand1.strings[mem1],1,pos('=',potokkomand1.strings[mem1])-1);
    Msg1:=copy(potokkomand1.strings[mem1],pos('=',potokkomand1.strings[mem1])+1,length(potokkomand1.strings[mem1]));
    potokkomand1.Delete(mem1);
    Form1.obrabotchik1(UIN1, Msg1);
  end;
 end;
end;

кто скажет почему не работает, ставил точки останова, до функций выделенных красным, почемуто не выполняются они, хотя синие выполнялись
Ответить с цитированием
  #2  
Старый 22.01.2011, 15:12
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Код:
potokkomand1:=TstringList.Create;
PK1:=TstringList.Create;
PK1.add('7559384=hello');
PK1.add('7559384=hello');
PK1.add('7559384=hello');
potokkomand1:=PK1; 
Timer1potok:=True; // за чем это?
If Timer1potok = True then // оно и так будет True, можно убрать if.
// также на будущее не пиши так: if(x=True), пиши так: if(x) then ...;
begin
 Timer1potok:=false;
 if potokkomand1.Count-1 > 6 then // здесь -1 не надо я так полагаю
  begin
for mem1:=potokkomand1.Count-1 Downto 0 do
    begin
     UIN1:=copy(potokkomand1.strings[mem1],1,pos('=',potokkomand1.strings[mem1])-1);
     Msg1:=copy(potokkomand1.strings[mem1],pos('=',potokkomand1.strings[mem1])+1,length(potokkomand1.strings[mem1]) - pos('=', potokkomand1.strings[mem1]));
     potokkomand1.Delete(mem1);
     Form1.obrabotchik1(UIN1, Msg1);
     sleep(200);
    end;
  end
else 
 begin
  for mem1:=potokkomand1.Count-1 DownTo 0 do
   begin
    UIN1:=copy(potokkomand1.strings[mem1],1,pos('=',potokkomand1.strings[mem1])-1);
    Msg1:=copy(potokkomand1.strings[mem1],pos('=',potokkomand1.strings[mem1])+1,length(potokkomand1.strings[mem1]) - pos('=',potokkomand1.strings[mem1]));
    potokkomand1.Delete(mem1);
    Form1.obrabotchik1(UIN1, Msg1);
  end;
 end;
end;
Это просто мелкие ошибки. Чтоб узнать в чем причина надо показать весь код относящийся сюда.
__________________
Помогаю за Спасибо
Ответить с цитированием
  #3  
Старый 22.01.2011, 15:35
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

я проверял переменная potokkomand1 забивается только почемуто функции не активируются после for mem1:=potokkomand1.Count-1 DownTo 0 do, по идее такое может быть если в potokkomand1 нету совсем строк,
Ответить с цитированием
  #4  
Старый 22.01.2011, 15:59
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Ну а ты дебагером просмотри значение переменной при выполнении и узнаешь.
__________________
Помогаю за Спасибо
Ответить с цитированием
  #5  
Старый 22.01.2011, 16:10
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

щас кину код
Ответить с цитированием
  #6  
Старый 22.01.2011, 16:16
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

Код:
procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);
begin
PK1.add(UIN+'='+Msg);
end;
сдесь добавляется в PK1, PK1 это TStringList

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1potok:=True;
MyThread:= TMyThread.Create;
end;
тут мы таймером устанавливаем что именно мне нужно так как там несколько в потоке IF'ов и создаем поток

Код:
constructor TMyThread.Create;
begin
   Create(True); 
   FreeOnTerminate := True;  после завершения своего кода поток завершится сам
   Priority := tpNormal; 
   Resume; 
end;
создаем поток


Код:
procedure TMyThread.Execute;
var
mem1: integer;
UIN1,Msg1,UIN2,Msg2,UIN3,Msg3,UIN4,Msg4,UIN5,Msg5,UIN6,Msg6,UIN7,Msg7,UIN8,Msg8,UIN9,Msg9,UIN10,Msg10: string;
potokkomand1,potokkomand2,potokkomand3,potokkomand4,potokkomand5,potokkomand6,potokkomand7,potokkomand8,potokkomand9,potokkomand10: TstringList;
begin
potokkomand1:=TstringList.Create;
potokkomand2:=TstringList.Create;
potokkomand3:=TstringList.Create;
potokkomand4:=TstringList.Create;
potokkomand5:=TstringList.Create;
potokkomand6:=TstringList.Create;
potokkomand7:=TstringList.Create;
potokkomand8:=TstringList.Create;
potokkomand9:=TstringList.Create;
potokkomand10:=TstringList.Create;
potokkomand1:=PK1;
potokkomand2:=PK2;
potokkomand3:=PK3;
potokkomand4:=PK4;
potokkomand5:=PK5;
potokkomand6:=PK6;
potokkomand7:=PK7;
potokkomand8:=PK8;
potokkomand9:=PK9;
potokkomand10:=PK10;
PK1.Clear;
PK2.Clear;
PK3.Clear;
PK4.Clear;
PK5.Clear;
PK6.Clear;
PK7.Clear;
PK8.Clear;
PK9.Clear;
PK10.Clear;
If Timer1potok = True then
begin
 Timer1potok:=false;
 if potokkomand1.Count-1 > 6 then
  begin
   for mem1:=potokkomand1.Count-1 Downto 0 do
    begin
     UIN1:=copy(potokkomand1.strings[mem1],1,pos('=',potokkomand1.strings[mem1])-1);
     Msg1:=copy(potokkomand1.strings[mem1],pos('=',potokkomand1.strings[mem1])+1,length(potokkomand1.strings[mem1]));
     potokkomand1.Delete(mem1);
     Form1.obrabotchik1(UIN1, Msg1);
     sleep(200);
    end;
  end
else
 begin
  for mem1:=potokkomand1.Count-1 DownTo 0 do
   begin
    UIN1:=copy(potokkomand1.strings[mem1],1,pos('=',potokkomand1.strings[mem1])-1);
    Msg1:=copy(potokkomand1.strings[mem1],pos('=',potokkomand1.strings[mem1])+1,length(potokkomand1.strings[mem1]));
    potokkomand1.Delete(mem1);
    Form1.obrabotchik1(UIN1, Msg1);
  end;
 end;
end;
код потока основной P.S. там еще идет 10 аналогичных If Timer1potok = True then с последующими действиями функций но они тоже не работают
Ответить с цитированием
  #7  
Старый 22.01.2011, 16:42
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

таймер с периодом в 1 сек
Ответить с цитированием
  #8  
Старый 22.01.2011, 21:38
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

както странно
Код:
PK1.Clear;
PK2.Clear;
PK3.Clear;
PK4.Clear;
PK5.Clear;
PK6.Clear;
PK7.Clear;
PK8.Clear;
PK9.Clear;
PK10.Clear;
убрал и все работает нормально хотя странно , но после не долгого времени работы вылезло это
Ответить с цитированием
  #9  
Старый 23.01.2011, 10:23
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

чтото даже не нашел в инете чем может быть вызванна данная ошибка

Последний раз редактировалось ALexandr555, 23.01.2011 в 10:26.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:03.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025