, Как я могу возвратить TStringList и все еще освободить его в локальной функции?
Вы не можете. При освобождении его в локальной функции Вы не можете использовать возвращаемое значение. Результат и vStrList указывают на тот же объект TStringList в памяти. TStringList является классом, и
Result := vStrList
поэтому не копирует список строк, но только копирует ссылку.
Так, вместо этого необходимо освободить список строк в контексте вызова после того, как Вы будете сделаны, работая с ним или передадите список строк в качестве параметра Вашей функции как это
procedure FuncStringList (StringList : TStringList);
и позволите коду вызова создать и освободить список строк. Как указано другими ответами, это - предпочтительный путь, так как он делает владение очень ясным.
Вы можете получить размеры, используя getElement (...). Width
и ... height
.
Поскольку JavaScript не может доступ к чему-либо на локальном диске по соображениям безопасности, вы не можете просматривать локальные файлы. Это также верно для файлов в кэше браузера.
Вам действительно нужен сервер, который может обрабатывать запросы AJAX. На этом сервере установите службу, которая загружает изображение и сохраняет поток данных в фиктивном выводе, который просто считает байты. Обратите внимание, что вы не всегда можете полагаться на поле заголовка Content-length , поскольку данные изображения могут быть закодированы. В противном случае было бы достаточно отправить HTTP-запрос HEAD.
) Чтобы получить исходные размеры изображения, вы можете создать элемент IMG программно, например:var img = document.createElement('img');
img.onload = function () { alert(img.width + ' x ' + img.height); };
img.src='http://sstatic.net/so/img/logo.png';
Вы можете найти размер изображения на странице, используя что-то вроде
document.getElementById('someImage').width
размера файла, однако вам придется использовать что-то на стороне сервера
Единственное, что вы можете сделать, - это загрузить изображение на сервер и проверить размер и размер изображения, используя какой-либо язык на стороне сервера, например C #.
Изменить:
При необходимости вы можете нельзя делать только с использованием javascript.
Вы можете получить размеры, используя getElement (...). width
и ... height
.
Поскольку JavaScript не может получить доступ ни к чему на локальном диске по соображениям безопасности, вы не можете просматривать локальные файлы. Это также верно для файлов в кэше браузера.
Вам действительно нужен сервер, который может обрабатывать запросы AJAX. На этом сервере установите службу, которая загружает изображение и сохраняет поток данных в фиктивном выводе, который просто считает байты. Обратите внимание, что вы можете ' t всегда полагаться на поле заголовка Content-length , поскольку данные изображения могут быть закодированы. В противном случае было бы достаточно отправить HTTP-запрос HEAD.
var img = new Image();
img.src = sYourFilePath;
var iSize = img.fileSize;