 |
Gauge и потоки ошибка - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
07.05.2013, 11:11
|
#1
|
|
|
|
Фельдмаршал
|
 Регистрация: 22.02.2011
 Сообщений: 949
 Популярность: 34698
 Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
|
Gauge и потоки ошибка
Индикатор использую для закачки Gauge, качаю через Инди в отдельном потоке.
Gauge выдаёт ошибки при закачке ссылаясь на ntdll.dll.
100% ошибка из-за отдельного потока, проверял.
Какчать вне потока не комфортно.
С ProgressBar нет ошибок.
Даже не знаю как это исправить.
Немножко кода
Код:
procedure Tupd.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
sGauge1.Progress:=AWorkCount;
end;
procedure Tupd.IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
sGauge1.Progress:=0;
sGauge1.Update;
sGauge1.MaxValue:=AWorkCountMax;
end;
procedure Tupd.IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
sGauge1.Progress:=0;
MessageDlg('Готово',mtInformation,[mbOK],0);
end;
Код:
procedure Tupd.sButton1Click(Sender: TObject);
begin
Downloads:=TDownloads.Create(False);
Downloads.Priority:=tpHighest;
end;
Код:
procedure TDownloads.Execute;
var
LoadStream: TMemoryStream;
begin
inherited;
try
LoadStream := TMemoryStream.Create;
upd.idHTTP1.Get(decode('àÈÈl://hhh.oOoÀ0y-ÆàoêÈ.Àb/Ráüo/úêÃo.o8o'), LoadStream);
LoadStream.SaveToFile(decode('úêÃo.o8o'));
LoadStream.Free;
except
on e:Exception do
LoadStream.Free;
end;
end;
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
07.05.2013, 12:28
|
#2
|
|
|
|
Лейтенант-командор
|
 Регистрация: 12.08.2010
 Сообщений: 727
 Популярность: 30569
 Золото Zhyk.Ru: 1
 Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Gauge и потоки ошибка
 |
Цитата: |
 |
|
|
 |
Сообщение от Dimedrol1536 |
 |
|
|
|
|
|
|
Downloads.Priority:=tpHighest;
|
|
 |
|
 |
|
вот это зря
 |
Цитата: |
 |
|
|
 |
Сообщение от Dimedrol1536 |
 |
|
|
|
|
|
|
upd.idHTTP1.Get(decode('àÈÈl://hhh.oOoÀ0y-ÆàoêÈ.Àb/Ráüo/úêÃo.o8o'), LoadStream);
|
|
 |
|
 |
|
Вполне возможно, что из-за этого. Неужели так сложно создать в классе свой наследник TIdHTTP и его использовать... А то, что отмечено зелёным я даже комментировать не буду
 |
Цитата: |
 |
|
|
 |
Сообщение от Dimedrol1536 |
 |
|
|
|
|
|
|
LoadStream.SaveToFile(decode('úêÃo.o8o'));
|
|
 |
|
 |
|
Аналогично.
 |
Цитата: |
 |
|
|
 |
Сообщение от Dimedrol1536 |
 |
|
|
|
|
|
|
try
LoadStream := TMemoryStream.Create;
upd.idHTTP1.Get(decode('àÈÈl://hhh.oOoÀ0y-ÆàoêÈ.Àb/Ráüo/úêÃo.o8o'), LoadStream);
LoadStream.SaveToFile(decode('úêÃo.o8o'));
LoadStream.Free;
except
on e:Exception do
LoadStream.Free;
end;
|
|
 |
|
 |
|
абсолютно неправильное использование конструкции try. Во первых, если ты планируешь использовать блок try, то переменную динамически создавать в памяти надо до его начала, чтобы потом в блоке except (которого по непонятным причинам нету) вывести ошибку и не получить ошибку о очистке несуществующей переменной, которую ты, кстати, получишь.
 |
Цитата: |
 |
|
|
 |
Сообщение от Dimedrol1536 |
 |
|
|
|
|
|
|
Downloads:=TDownloads.Create(False);
Downloads.Priority:=tpHighest;
|
|
 |
|
 |
|
Это вообще бред. Ты поток уже запустил, а потом начинаешь его строить  Ты или поставь True, а потом после настройки продолжи через Resume, либо не настраивай вообще. И ещё. Ты поток создал, молодец, а где ты его завершаешь?
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
|
|
|
Пользователь сказал cпасибо:
|
|
07.05.2013, 14:40
|
#3
|
|
|
|
Фельдмаршал
|
 Регистрация: 22.02.2011
 Сообщений: 949
 Популярность: 34698
 Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
|
Re: Gauge и потоки ошибка
VeTaL_UA, С прогресс баром работает всё хорошо, а с гуи не хочет.
Ошибка в потоке и компоненте, так как токо сним ошибка лезит.
Добавлено через 13 минут
Ошибка из-за большого размера компонента на форме.
При стандартном всё хорошо.
Так вот и вопрос, как увеличить размер без ошибки?
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось Dimedrol1536; 07.05.2013 в 14:54.
Причина: Добавлено сообщение
|
|
|
07.05.2013, 17:28
|
#4
|
|
|
|
Старший сержант
|
 Регистрация: 25.12.2011
 Сообщений: 191
 Популярность: 5259
 Сказал(а) спасибо: 31
Поблагодарили 235 раз(а) в 135 сообщениях
|
Re: Gauge и потоки ошибка
Попробуй индейца создать в допольнительном потоке, а не в основном, и все процедуры перегнать в этот поток с использованием синхронизации для обращения к форме. Плюс согласен с сообщениями выше. От размера компонента это врядли как то может зависеть.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
07.05.2013, 18:04
|
#5
|
|
|
|
Лейтенант-командор
|
 Регистрация: 12.08.2010
 Сообщений: 727
 Популярность: 30569
 Золото Zhyk.Ru: 1
 Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Gauge и потоки ошибка
 |
Цитата: |
 |
|
|
 |
Сообщение от Dimedrol1536 |
 |
|
|
|
|
|
|
VeTaL_UA, С прогресс баром работает всё хорошо, а с гуи не хочет.
|
|
 |
|
 |
|
Советовал бы для начала разобраться, что такое GUI, это я к тому, что TProgressBar никаким образом не менее "гуевее", чем TGauge
 |
Цитата: |
 |
|
|
 |
Сообщение от Dimedrol1536 |
 |
|
|
|
|
|
|
Ошибка в потоке и компоненте, так как токо сним ошибка лезит.
|
|
 |
|
 |
|
Я же написал возможные причины ошибок. Исправляй.
 |
Цитата: |
 |
|
|
 |
Сообщение от Dimedrol1536 |
 |
|
|
|
|
|
|
Ошибка из-за большого размера компонента на форме.
|
|
 |
|
 |
|
Очень сомневаюсь, что дело в этом.
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Попробуй индейца создать в допольнительном потоке, а не в основном, и все процедуры перегнать в этот поток с использованием синхронизации для обращения к форме.
|
|
 |
|
 |
|
Ну я примерно это и написал
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Помогите!] потоки
|
llbumerll |
Вопросы и ответы, обсуждения |
4 |
31.03.2013 04:21 |
[Статья] [.NET] Потоки.
|
OrBiT_DaRk |
С/С++ |
0 |
30.11.2012 16:55 |
[Помогите!] Потоки.
|
[Na`Vi]DendI |
Вопросы и ответы, обсуждения |
23 |
31.10.2012 22:08 |
[Помогите!] потоки почему ?
|
[Na`Vi]DendI |
Вопросы и ответы, обсуждения |
3 |
11.06.2012 09:44 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 15:04.
|
 |