Показать сообщение отдельно
  #4  
Старый 11.05.2013, 16:20
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Здесь нужно запомнить одно простое правило, если используемая функция или процедура в своих параметрах для запуска содержит ключевое слово var, то с этой переменной нужно работать не на прямую, а передавать ей переменную соответствующего типа, поскольку после того как процедура или функция эта отработает, в "заваренной" переменной будет лежать выходной результат. Это действует всегда и везде.

Конкретно с примером - ведь начиналось всё правильно, зачемто отключена s типа string, в код передается константная величина в одинарных кавычках ('*.png'), которую нельзя изменить во время работы, вот компилятор как раз на это (E2197) и ругается. А решается очень просто

Код:
procedure TForm1.Button5Click(Sender: TObject);
var 
s:string;
begin
// edit1.Text должен содержать ответ на GET запрос, содержащий адрес картинки на сервере в сети

// используем основной результат функции который по определению типа boolean 
if GetCacheFileName(edit1.Text, s) then 
   Image1.Picture.LoadFromFile(s) //вернула true, т.е. файл в кэше есть, в s её имя на диске
 else 
   ShownMessage('Файл получить не удалось, пичалька'); // вернула false, нету файла
end;
Ответить с цитированием