![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TiDAntiFreeze; [D6, Win2k]
alt7 © (2003-05-21 18:06:00)Каков принцип работы?
Вот мне нужно использовать его в консольном приложении, где есть TiDTCPClient.Readln, то есть пока не прочтет инфу из сокета, то с места не сдвинется.
Что нужно написать, чтобы осталльная работа не стопорилась?
Некая такая конструкция имеется:
while true do
begin
<..>
TiDTCPClient.Readln;
<..>
WriteLn(buffer);
end;
Как заставить срабатывать WriteLn(Buffer независимо от того, пришли ли данные?)
alt7 (2003-05-22 13:18:00) [1]Это где?
Я вот зашел Tools -> Debugger Options -> Language Exceptions -> Exception Types To Ignore
Добавлял сюда и EIdReadTimeOut и EIdException, все равно выскакивает окошко...
Reindeer Moss Eater (2003-05-22 13:15:00) [2]Настроить опции IDE касающиесся встроенного отладчика. "Break On Exceptions"
alt7 (2003-05-22 13:11:00) [3]Вопрос:
try
Buffer := vIdTCPClient.Readln;
except
on EIdReadTimeOut do Buffer := "";
end;
Как сделать так чтоб при исключении не вылетало окошко о нем в IDE и при запуске *.exe не выскакивало сообщение о неизвестном исключении и моя программа продолжала работать??
Reindeer Moss Eater (2003-05-22 13:06:00) [4]Боюсь что нет.
Трудно ответить что-то человеку, который не может сказать что ему надо.
alt7 (2003-05-22 13:03:00) [5]Это не по-существу. Давай не отклоняться от темы. Я спросил, ты можешь ответить?
Reindeer Moss Eater (2003-05-22 13:01:00) [6]Че тут определяться, прога - моя программа, среда - IDE
А Волга, например, впадает в Каспийское море.
alt7 (2003-05-22 12:59:00) [7]Да и кстати кто-то говорил про Readable, но функция эта в TIDSocketHandle, а как до нее добраться из TIDTCPClient?
alt7 (2003-05-22 12:57:00) [8]Че тут определяться, прога - моя программа, среда - IDE
Reindeer Moss Eater (2003-05-22 12:55:00) [9]Прога, или среда?
Ты определись с понятиями уже.
alt7 (2003-05-22 12:40:00) [10]Я про первый пункт не говорю.
Я спрашиваю что сделать нужно, чтобы при таймауте прога продолжала работать как будто-бы исключение не произошло
Reindeer Moss Eater (2003-05-22 12:36:00) [11]1. А если исключение будет не EIdReadTimeOut, а например дисконнект, или превышение максмальной длины строки?
Где обработака?
2. "Прога" не вылетает. Это встроенный отладчик среды, из под которого ты запускаешь проект останавливается на исключениях.
alt7 (2003-05-22 12:31:00) [12]ага я написал:
try
Buffer := vIdTCPClient.ReadLn; <--|
except |
on EIdReadTimeOut do Buffer := ""; |
end; |
|
Так у меня прога все равно вылетает на второй строке -|
Reindeer Moss Eater (2003-05-22 12:27:00) [13]Разработчики старались, трудились, давая возможность пользователям библиотеки знать, что происходит во время выполнения методов, а неблагодарные пользователи хотят выключить исключения.
Их не отключать надо, а обрабатывать!!!
alt7 (2003-05-22 12:24:00) [14]Ага, работает но возникает EIdReadTimeout-исключение, когда timeout срабатывает, можно ли его как-то отключить? Чтоб не срабатывало исключение, и моя прога работала дальше как ни в чем не бывало?
alt7 (2003-05-22 12:08:00) [15]Переставил Indy. Вроде Timeout хавает счас проверю остальное
Reindeer Moss Eater (2003-05-22 11:51:00) [16]Печальный случай.
Не пробовал поискать файлы *.pas в каталоге Indy, содержащие "IdTimeoutDefault"?
alt7 (2003-05-22 11:47:00) [17]Ну у меня стоит версия 9.00.11 выкачивал дето дней 10 назад.
Не работает даже с этим uses
А то видимо код конца строки?
Reindeer Moss Eater (2003-05-22 11:43:00) [18]usesidGlobal;
И это не Delphi, это Indy последнего релиза.
И что значит #$A ?
Ну символ с кодом $0A наверное. Или с кодом 10 или LF.
alt7 (2003-05-22 11:37:00) [19]Это какой Делфи?? Мой 6-ой и ругается что не знает, что такое ReadTimeOut...
И что значит #$A ?
Reindeer Moss Eater (2003-05-22 11:33:00) [20]IdTCPClient1.ReadTimeOut:=5000;
IdTCPClient1.ReadLn(#$A,IdTimeoutDefault);
if IdTCPClient1.ReadLnTimedOut then ShowMessage("У нас таймаут");