Помощь - Поиск - Пользователи - Календарь
Полная версия: Вывод системной информации
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
klem4
Надо мне сделать ф-ю для вывода некоторой системной информации, но почему-то вместо пути каталога временных файлов выдает какой-то бред ...

type
TSystemInfo = (
siCompName,
siWinDir,
siTempPath
);

// ....

function getSysInfo(const Info: TSystemInfo): String;
const
size: DWORD = 255;
var
buf: PChar;
begin
GetMem(buf, size);

case Info of
siCompName: GetComputerName(buf, size);
siWinDir: GetWindowsDirectory(buf, size);
siTempPath: GetTempPath(size, buf);
end;

Result := buf;
FreeMem(buf, size);
end;

// ...
someString := getSysInfo(siTempPath);
volvo
Странно, у меня нормально выдает... Только
var
size: DWORD = 255; // <-- С константой не компилируется...

function getSysInfo(const Info: TSystemInfo): String;
var
buf: PChar;
begin
GetMem(buf, size);

case Info of
siCompName: GetComputerName(buf, size);
siWinDir: GetWindowsDirectory(buf, size);
siTempPath: GetTempPath(size, buf);
end;

Result := buf;
FreeMem(buf, size);
end;

klem4
Спасибо, убрал size из констант и все теперь правильно показывает, только у меня и с константой компилировалось ... это должно настораживать ?
volvo
От настроек зависит... Я убрал галку с Assignable Typed Constants, как видишь, лучше оно не будет компилироваться, чем выдаст некорректный результат... smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.