Возникло непреодолимое желание получить ответ на еще один детский вопрос.

Нужна процедура, которая загружает из интернет в строку (память) некий объем информации и возвращает указатель на эту строку.
Проблема в том, что на момент вызова процедуры, я не знаю какой объем информации будет загружен по переданной в нее ссылке.
1. В процедуре через NEW() создаем динамическую строку и загружаем в нее информацию.
Знаем объем загруженной информации и есть указатель на строку с этой информацией.
2. Как вернуть эти данные в точку вызова процедуры ?
Существует явный запрет на изменения адреса параметра процедуры типа *String
Т.е. я не могу переключить параметр-адрес и вернуть из процедуры указатель на строку.

3. Эксперименты с типом параметра процедуры *?, ANY, Signed и передача в них адреса строки - не получились.
Это в принципе невозможно или можно решить вопрос через какую-то хитрую игру с адресами строк ?
Зачем тогда вообще тип возвращаемого параметра Proc(),*String ?
4. Можно создавать строку в GLOBAL DATA - но это не удобно для Multi DLL приложений.
5. Сейчас вопрос решается следующим образом:
- В процедуре по ссылке загружаю информацию в ФАЙЛ и возвращаю имя файла;
- По размеру файла создаю строку и загружаю из него информацию в память;
- Удаляю файл.
Все работает. Но это же бред ...

Заранее спасибо за любые идеи.
