инициализируем
DefaultDataFolder:='a:\_OUT\';
есть примитивная процедура класса
procedure TNeoSocket.SetDataFolder(const Value:String);
begin
FDataFolder:=IncludeTrailingPathDelimiter(Value);
end;
в произвольной процедуре вызываем
SetDataFolder(DefaultDataFolder)
и в дебагере видим, что Value='', то есть значение глобальной переменной в функцию не передаётся
если вызвать SetDataFolder('a:\_OUT\') - всё штатно
если в этой произвольной процедуре описать локальную переменную
var
shit:string;
присвоить ей значение глобальной переменной
shit:=DefaultDataFolder;
и вызвать процедуру класса
SetDataFolder(shit) - снова всё штатно.
Спрошу цензурно - почему так???
А зачем локальную константу присваивать глобальной? FDataFolder? Оно и не должно работать
2 варианта Либо дефотное значение не проинициализировано Либо отладчик глючит, и там, где есть значение - показывает пусто Попробуй вывести значение в консоль или Memo
читай текст. дословно, по буквам. не фантазтруй
хрен там. в дебагере я вижу вызов процедуры с правильным параметром. следующий шаг отладки, я внутри процедуры, но передаваемый параметр - пустой. чёзанах?
Выложи проект сюда. Тебя тыкнут носом за пару минут )
Описание куцое, тут только домыслы
то есть в двух проектах один и тот же код по-разному работает, в одном работает, во втором сиськи мнёт?
Да никто тебе так не скажет. Телепатов нет )
збс, иного и не ожидал
Сделай простой проектик, скопируй туда эту переменную и эту процедуру и дай посмотреть
Ну или 3 вариант - ты нашел багу кампелятора!
ну вот и я о том же
Это вероятно, но вероятность этого мала ) Сделай минимальный проект и выложи, коли это действительно так - зарепортят
Это сильное заявление, но нам нужны пруфы
Обсуждают сегодня