Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi

Войти
Регистрация
Восстановить пароль
 
zlodey4ik
-10 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 139
#1

Access violation at address при запуске потоков - Delphi

08.05.2013, 14:16. Просмотров 926. Ответов 10
Метки нет (Все метки)

Всем привет, запускаю несколько потоков но получаю ошибку http://prntscr.com/13xzpg
Код запуска потоков
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm3.sButton3Click(Sender: TObject);
var
  i: integer;
begin
 pchecking:=true;
 cproxy:=0;
  for i:=0 to sspinedit1.Value do begin
    SetLength(MyT2, i+1);
    MyT2[i]:=ProxiCheck(True);
    MyT2[i].Priority:=tpLowest;
    MyT2[i].FreeOnTerminate:=True;
    MyT2[i].Resume;
  end;
end;
Подскажите что не так. На первой форме таким же способом все работает а тут нет.(Проблема точно не в потоке я закомментировал весь его код и вылазила та же ошибка)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2013, 14:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Access violation at address при запуске потоков (Delphi):

Воспроизведение mp3-мелодий, ошибка "Access violation at address 00469E29 in module 'MobileCollection.exe'. Read of address 00000484" - Delphi
Всем привет! В программе часто вызываю: WMP_Music.URL:=полный путь к mp3-песне;; WMP_Music.controls.play; WMP_Music -...

Access violation at address 00403E1D in module 'Project.exe' - Delphi
Обясните как етой ошибки не било Access violation at address 00403E1D in module 'Project.exe'. Read of address 00000014 Access...

ActiveX ошибка: Х Access violation at address xx in module 'xxx.ocx'.Read of adress 0000030. - Delphi
Подскажите, кто знает Не могу обратиться к свойству главной формы (например ActivexForm.Left ) при попытке обратиться выдает ошибку ...

Access violation при сравнении изображений - Delphi
делаю программу для сравнения изображений перевожу в битмапы и потом смотрю по цвету пикселя картинки одного размера вот код ...

Access Violation при BitMap.Create - Delphi
Доброго Времени Суток! У меня в коде используется двусвязный список типа Tinf=record {тип данных, который будет храниться в элементе...

TList. Ошибка Access Violation при создании. - Delphi
Имеется такая структура данных: type TMyList = class private FMyList: TList; public property MyList: TList read FMyList...

10
mss
2334 / 2253 / 250
Регистрация: 24.12.2010
Сообщений: 13,727
08.05.2013, 14:44 #2
Цитата Сообщение от zlodey4ik Посмотреть сообщение
ProxiCheck
Это что за зверь ?

MyT2 как и где объявлен ?
0
zlodey4ik
-10 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 139
08.05.2013, 14:58  [ТС] #3
Delphi
1
2
  private
    MyT2: array of ProxiCheck;
0
mss
2334 / 2253 / 250
Регистрация: 24.12.2010
Сообщений: 13,727
08.05.2013, 15:01 #4
ProxiCheck как объявлена и реализована ?
Где установка размера массива MyT2 ?
0
zlodey4ik
-10 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 139
08.05.2013, 15:07  [ТС] #5
1)
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
unit Unit4;
 
interface
 
uses
  Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, httpsend, ssl_openssl, blcksock ;
 
type
  ProxiCheck = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
    procedure goodproxyfind;
  end;
var
  ipp, pp: String; //ip proxy, port proxy
 
implementation
uses Unit1, Unit3;
 
procedure ProxiCheck.Execute;
var
  httpcheck: THTTPSend;
  b1,b2: integer;
  str, site: string;
  x: Integer;
  a1: string;
begin
  while form3.pchecking do begin
    httpcheck:=THTTpSend.Create;
    PCS.Enter;
    Str := form3.sMemo1.Lines[form3.cproxy];
    x := Pos(':', Str);
    ipp := Copy(Str, 1, x - 1);
    pp := Copy(Str, x + 1, Length(Str));
    form3.cproxy:=form3.cproxy+1;
    Pcs.Leave;
 
    httpcheck.HTTPMethod('get', 'http://www.myip.ru/');
    site:=httpcheck.Document.ToString;
    b1:=Pos('Ваш IP-адрес</B></TD></TR><TR><TD bgcolor=white align=center valign=middle>',site)+75;
    Delete(site,1,b1-1);
    b2:=Pos('</TD></TR>',site)-1;
    a1:=Copy(site,1,b2);
 
    if a1=ipp then Synchronize(goodproxyfind);
 
  end;
end;
 
procedure ProxiCheck.goodproxyfind;
begin
   form3.sMemo2.Lines.Add(ipp+':'+pp)
end;
 
end.
2)В цикле SetLength(MyT2, i+1);
0
mss
2334 / 2253 / 250
Регистрация: 24.12.2010
Сообщений: 13,727
08.05.2013, 15:16 #6
Цитата Сообщение от zlodey4ik Посмотреть сообщение
запускаю несколько потоков
То есть ProxiCheck(True) - это, по-твоему, "запуск потока" ?
Да это даже скомпилировано без ошибки быть не может, не говоря уже о запуске приложения.

Цитата Сообщение от zlodey4ik Посмотреть сообщение
while form3.pchecking do begin
Убирай из кода потока все упоминания о формах и визуальных компонентах на них !!!
Сколько раз нужно тебе долдонить одно и тоже чтобы ты наконец прислушался ?
0
zlodey4ik
-10 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 139
08.05.2013, 15:20  [ТС] #7
Вот запуск потока
Delphi
1
2
3
4
5
SetLength(MyT2, i+1);
    MyT2[i]:=ProxiCheck(True);
    MyT2[i].Priority:=tpLowest;
    MyT2[i].FreeOnTerminate:=True;
    MyT2[i].Resume;
Насчет второго я учусь
0
mss
2334 / 2253 / 250
Регистрация: 24.12.2010
Сообщений: 13,727
08.05.2013, 16:08 #8
Цитата Сообщение от zlodey4ik Посмотреть сообщение
Вот запуск потока
Это не запуск потока, а ахинея.

Запуск потока - это ProxiCheck.Create(True)

Разницу с ProxiCheck(True) ощущаешь хоть какую-нибудь ?

Цитата Сообщение от zlodey4ik Посмотреть сообщение
Насчет второго я учусь
Да уж не меньше месяца прошло - а воз и ныне там.
1
zlodey4ik
-10 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 139
08.05.2013, 16:40  [ТС] #9
Цитата Сообщение от mss Посмотреть сообщение
Это не запуск потока, а ахинея.

Запуск потока - это ProxiCheck.Create(True)

Разницу с ProxiCheck(True) ощущаешь хоть какую-нибудь ?



Да уж не меньше месяца прошло - а воз и ныне там.
Спасибо

у меня с конструкторами не очень вот в чем проблема
0
mss
2334 / 2253 / 250
Регистрация: 24.12.2010
Сообщений: 13,727
08.05.2013, 16:55 #10
А врать-то зачем про access violation, если это даже скомпилировать нельзя ?

Цитата Сообщение от zlodey4ik Посмотреть сообщение
с конструкторами не очень вот в чем проблема
Так и надо бы разобраться раз и навсегда что это и с чем их едят, а не продолжать упрямо лепить дикий и сумбурный код)
0
zlodey4ik
-10 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 139
08.05.2013, 17:37  [ТС] #11
У меня чесно компилировало но при нажатие на кнопку выдавало ошибку(скрин даже приложен)


Немогли бы подсказать хороший урок по конструкторам?
0
08.05.2013, 17:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2013, 17:37
Привет! Вот еще темы с ответами:

Access Violation при вызове метода Open для Sqlquery из потока - Delphi
Здравствуйте, очень нужна помощь. Использую dbexpress для работы с Oracle. В проекте есть модуль данных, на котором расположены компоненты...

Delphi 2010: получаю Access Violation при попытке настроить Build Configuration - Delphi
Кликаю ПКМ на конфигурации &quot;Release&quot;, потом выбираю пункт &quot;Edit...&quot; и вылезает Access Violation. Полный текст: &quot;Access violation at...

Access violation at adress - Delphi
Собственно говоря, вот элемент кода, ошибка при попытке выполнить сроку setlength(masofFD2, fv2); for i:=0 to length(arofd)-1 do ...

Access Violation в подпрограмме - Delphi
Доброго вечера, не сильно разбираюсь в Deplhi, почти написал программу, которая по заданным числам массива из 11 элементов, сначала...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru