![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запуск Программы. [D7]
Golik © (2006-05-03 22:46:00)Доброго времечка!
как зделать запуск программы как в 1С?
появляется окно где пользователь выбирает имя и указывает путь к БД Access по (кнопке),а в Label.Caption отображается выбранный путь к БД.
и при след.запуске он может уже не выбирать путь к БД а сразу начинать работу.
Yegorchic (2006-05-04 20:04:00) [1]
> а как при запуске программы проверить этот ключ в реестре
> на наличие пути?
Я же в [1] и [3] всё описал...
Сергей М. (2006-05-04 13:13:00) [2]
> Golik (04.05.06 12:59) [10]
Справку к классу TRegistry читал ?
Golik (2006-05-04 12:59:00) [3]а как при запуске программы проверить этот ключ в реестре на наличие пути?
Anatoly Podgoretsky (2006-05-04 08:45:00) [4]С помощью оператора присвоения, это :=
Golik (2006-05-04 02:44:00) [5]в том то и проблема как его присвоить?
Std (2006-05-04 02:14:00) [6]
> появляется окно где пользователь выбирает имя и указывает
> путь к БД Access по (кнопке)
Вот когда пользователь выбирает этот путь ты его и присваивай переменной
Golik (2006-05-04 02:03:00) [7]к базе я подключаюсь по кнопке
DataModule2.ADOConnection1.Close;
if EditConnectionString(DataModule2.ADOConnection1) then begin
DataModule2.ADOConnection1.Connected:=true;
как мне запомнить в переменную строку подключения ???
Golik (2006-05-04 01:03:00) [8]так это новый модуль надо создавать?
Yegorchic (2006-05-04 00:08:00) [9]
> и какой ключь лучше всего для этого выбрать!
Обычно выбирают (как я и написал в примере) "\software\имя_компании\имя_проги\" а можно и без "имя_компании"...
Yegorchic (2006-05-04 00:06:00) [10]uses Registry;
...
var
Reg: TRegistry;
...
begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('\software\имя_проги_например\', true);
Reg.WriteString('db_path', dbpath); //где dbpath - string (путь к БД)
Reg.Free;
end;
Писал по памяти - мог где-нибудь ошибиться, но всё должно быть верно.
> да и еще проблемка - если у пользователя нет прав для допуска
> к реестру то и программа его неполучит ? правильно? соответсвенно
> и не пропишет ?
Ну вроде бы почти так. У пользователся по-моему всегда должны быть права на запись в HKEY_CURRENT_USER, а вот в HKEY_LOCAL_MACHINE могжет и не быть прав, поэтому стоит, я думаю, писать в HKEY_CURRENT_USER.
Golik (2006-05-03 23:20:00) [11]а как прописать этот путь в какой-нибудь ключ?
и какой ключь лучше всего для этого выбрать!
да и еще проблемка - если у пользователя нет прав для допуска к реестру то и программа его неполучит ? правильно? соответсвенно и не пропишет ?
Yegorchic (2006-05-03 23:07:00) [12]Если я всё правильно понял, то делать можно так:
Для хранения пути к файлу БД можно использовать реестр.
1. При старте программы проверять, не пустой ли какой-нибудь (какой мы выбрали) ключ реестра (это Reg.KeyExists, где Reg - TRegistry [uses Registry]).
2. Если ключ путой, то выводим форму, где надо указать путь в БД и записываем этот путь в реестр (Reg.WriteString).
3. Если же ключ не путой, то не показываем формы и сразу работаем со сначением нашего ключа (Reg.ReadString).
Вот. Вроде так всё...