![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
существование экземпляра класса [D5, Win2k]
VictorS © (2002-04-19 02:12:00)как определить, существует ли экземпляр (обьект) класса.
Например var SM:TStringStream;
.......................................
//перед следующей строчкой надо определить, существует ли
// SM
ind:=SM.Size;
проверка на nil не помогает, обьект не определен - фатальная ошибка.
В частности, после передачи под надзор сокета
Socket.SendStream(SM) после передачи SM освобождается.
Ну и не могу определить, уже освободился, или нет.
Надо в цикле опять передавать новую порцию данных, а если еще
старая передается - SM портится. Пытаюсь контролировать его размер - выпадаю из цикла с ошибкой. Помогите советом, пожалуйста. Или есть другие приемы проталкивания больших порций
данных? Подскажите. К сожалению в TServerSocket нет свойства
BytesSend или чего - то похожего.
Большое программерское спасибо!
Alx2 (2002-04-19 07:46:00) [1]Вот так попробуй объявить:
var SM:TStringStream = Nil;
А при уничтожении использовать FreeAndNil.
Тогда проверка на Nil (то же самое что assigned) должна отрабатываться.
Либо попробуй сделать наследника для TStringStream с переопределенным деструктором. Из него и будет ясно убился он или нет (выставлением глобального флага, например).
Но IMHO, подобные задачи - следствие чего-то недодуманного.
ghost_by (2002-04-19 07:34:00) [2]
if Assigned(SM) then begin
end else begin
end;
Попробуй так, незнаю поможет ли.