![]() |
|
#1
|
||||
|
||||
![]() Код:
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
|
||||
|
||||
![]() Код:
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
|
||||
|
||||
![]() я проверял переменная potokkomand1 забивается только почемуто функции не активируются после for mem1:=potokkomand1.Count-1 DownTo 0 do, по идее такое может быть если в potokkomand1 нету совсем строк,
|
#4
|
||||
|
||||
![]() Ну а ты дебагером просмотри значение переменной при выполнении и узнаешь.
Помогаю за Спасибо ![]() |
#5
|
||||
|
||||
![]() щас кину код
|
#6
|
||||
|
||||
![]() Код:
procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String); begin PK1.add(UIN+'='+Msg); end; Код:
procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1potok:=True; MyThread:= TMyThread.Create; end; Код:
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; |
#7
|
||||
|
||||
![]() таймер с периодом в 1 сек
|
#8
|
||||
|
||||
![]() както странно
Код:
PK1.Clear; PK2.Clear; PK3.Clear; PK4.Clear; PK5.Clear; PK6.Clear; PK7.Clear; PK8.Clear; PK9.Clear; PK10.Clear; ![]() |
#9
|
||||
|
||||
![]() чтото даже не нашел в инете чем может быть вызванна данная ошибка
Последний раз редактировалось ALexandr555, 23.01.2011 в 10:26. |