Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TiDAntiFreeze; [D6, Win2k]


Страницы:   1 2

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("У нас таймаут");


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо