Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2013, 22:04   #1
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию функция не работает (делфи)

сделал функцию для поиска некоторых переменных среды Windows, но при попытке использования проект падает с ошибкой Access violation, подскажите почему?

Код:
Function GetSysDir(variable: string): string;
Var reg: TRegistry;
    HomeDrive, WinDir, Temp, UserProfile, s: string;
begin
reg.Create;
reg.RootKey:= HKEY_CURRENT_USER;
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', false);

s:= reg.ReadString('Fonts'); 
Delete(s, 3, 15); //в этом разделе почему то нет чисто HomeDrive... пришлось импровизировать...
HomeDrive:= s;
WinDir:= HomeDrive + '\Windows';
Temp:= reg.ReadString('Local Settings') + '\Temp';
s:= Temp;
Delete(s, Length(s)-20, Length(s)+25); //как и чисто UserProfile
UserProfile:= s;

if variable = 'HomeDrive'   then Result:= HomeDrive;
if variable = 'WinDir'      then Result:= WinDir;
if variable = 'Temp'        then Result:= Temp;
if variable = 'UserProfile' then Result:= UserProfile;

reg.CloseKey;
reg.Free;
reg.Destroy;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:= GetSysDir(Edit1.Text);
end;

Последний раз редактировалось NewLamer&Programer; 11.01.2013 в 22:07.
NewLamer&Programer вне форума Ответить с цитированием
Старый 11.01.2013, 22:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
reg.Create;
reg:=TRegistry.Create;

Дальше не смотрел.
Цитата:
некоторых переменных среды Windows
GetEnvironmentVariable() или SHGetSpecialFolderLocation() не катит?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.01.2013, 23:25   #3
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
reg:=TRegistry.Create;

Дальше не смотрел.
да это то фигня как раз, сколько раз так писал всегда прокатывало...

Цитата:
Сообщение от Stilet Посмотреть сообщение
GetEnvironmentVariable() или SHGetSpecialFolderLocation() не катит?
а вот за это реальное спасибо ! не знал про такую...
NewLamer&Programer вне форума Ответить с цитированием
Старый 11.01.2013, 23:37   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Цитата:
да это то фигня как раз, сколько раз так писал всегда прокатывало...
Я тут банки грабил - всегда прокатывало.

Нужно писать, как положено, а не как прокатывает.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.01.2013, 23:47   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
reg.Create;
Цитата:
Цитата:
reg:=TRegistry.Create;
да это то фигня как раз, сколько раз так писал всегда прокатывало...
НЕ ВЕРЮ!
Вы обращаетесь к методу Create объекта который ещё НЕ СОЗДАН! Это не прокатывало, не прокатывает и не будет прокатывать!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.01.2013, 00:13   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Я тут банки грабил - всегда прокатывало.
Теперь я знаю твою тайну. За свое молчание требую один доллар и миллион вертолетов.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает функция artem611 Паскаль, Turbo Pascal, PascalABC.NET 3 11.04.2011 10:10
не работает функция Benderbej JavaScript, Ajax 2 30.08.2010 18:54
Не работает функция gets()!!! Ilya'91 Общие вопросы C/C++ 1 28.07.2008 23:16