Форум: "Основная";
Текущий архив: 2002.09.23;
Скачать: [xml.tar.bz2];
ВнизOveroading Найти похожие ветки
← →
Leviathan (2002-09-07 20:27) [0]Имеется процедура:
procedure Write(Ident: Word; var Stream: TFileStream); overload;
begin
IF Stream.Write(Ident, SizeOf(Word)) <> SizeOf(Word) THEN
MessageDlg(ERROR_MESSAGE, mtError, [mbOk], 0);
end;
И еще одна точно такая же, отличие только в том, что вместо TFileStream стоит TMemoryStream. Вопрос такой: можно ли как-нибудь сделать двойной заголовок и.т.п., или исходник обречен содержать две абсолютно одинаковые процедуры?
← →
Kopetr (2002-09-07 20:44) [1]Можно просто написать
procedure Write(Ident: Word; var Stream: TStream);
← →
Leviathan (2002-09-08 12:58) [2]Не получается, уже пробовал, при попытке передать в процедуру TFileStream возникает ошибка - пишет, что var параметр в объявлении функции must be identical. Или это как-нибудь через AS можно обыграть?
← →
Kopetr (2002-09-08 13:19) [3]Примерно так: Write(Id, TStream(FStream))
(var FStream: TFileStream)
← →
McSimm (2002-09-08 13:20) [4]Не нужно как var передавать
← →
McSimm (2002-09-08 13:22) [5]Т.е.
procedure Write(Ident: Word; Stream: TStream);
← →
Leviathan (2002-09-09 21:19) [6]К сожалению, обязательна именно передача через var, поскольку должны быть изменены свойсва конкретного потока, переданного в функцию (а если точнее, измениться должно его Position). Есть еще какие-нибудь предложения?
← →
Kopetr (2002-09-09 21:32) [7]Дак она и изменится.
← →
Юрий Зотов (2002-09-09 23:29) [8]Без проблем. Вы же меняете не сам Stream, а его свойства. Никто этого не запрещает.
← →
Leviathan (2002-09-11 19:33) [9]Так в том то и дело, что нужно, чтобы физически существующий Stream, после выполнения изменился. Если он и так изменится, объясните мне тогда, зачем в параметрах функции указывается var.
← →
Старый Паскалист (2002-09-11 19:43) [10]Доктор сказал - в морг (в смысле убери var) - значит в морг.
В паскале, в отличие от С++, объекты никогда не передаются
по значению, но всегда по ссылке. Безо всякой var.
Поэтому ты можешь смело изменять Stream, и изменения будут
происходить именно с "физически существующим", как ты выражаешься, потоком.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c