Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.21;
Скачать: CL | DM;

Вниз

Запуск Программы.   Найти похожие ветки 

 
Golik   (2006-05-03 22:46) [0]

Доброго времечка!
как зделать запуск программы как в 1С?
появляется окно где пользователь выбирает имя и указывает путь к БД Access по  (кнопке),а в Label.Caption отображается выбранный путь к БД.
и при след.запуске он может уже не выбирать путь к БД а сразу начинать работу.


 
Yegorchic ©   (2006-05-03 23:07) [1]

Если я всё правильно понял, то делать можно так:

Для хранения пути к файлу БД можно использовать реестр.

1. При старте программы проверять, не пустой ли какой-нибудь (какой мы выбрали) ключ реестра (это Reg.KeyExists, где Reg - TRegistry [uses Registry]).

2. Если ключ путой, то выводим форму, где надо указать путь в БД и записываем этот путь в реестр (Reg.WriteString).

3. Если же ключ не путой, то не показываем формы и сразу работаем со сначением нашего ключа (Reg.ReadString).

Вот. Вроде так всё...


 
Golik   (2006-05-03 23:20) [2]

а как прописать этот путь в какой-нибудь ключ?
и какой ключь лучше всего для этого выбрать!
да и еще проблемка - если у пользователя нет прав для допуска к реестру то и программа его неполучит ? правильно? соответсвенно и не пропишет ?


 
Yegorchic ©   (2006-05-04 00:06) [3]

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.


 
Yegorchic ©   (2006-05-04 00:08) [4]


> и какой ключь лучше всего для этого выбрать!


Обычно выбирают (как я и написал в примере) "\software\имя_компании\имя_проги\" а можно и без "имя_компании"...


 
Golik   (2006-05-04 01:03) [5]

так это новый модуль надо создавать?


 
Golik   (2006-05-04 02:03) [6]

к базе я подключаюсь по кнопке

DataModule2.ADOConnection1.Close;
if EditConnectionString(DataModule2.ADOConnection1) then begin
DataModule2.ADOConnection1.Connected:=true;

как мне запомнить в переменную строку подключения ???


 
Std ©   (2006-05-04 02:14) [7]


> появляется окно где пользователь выбирает имя и указывает
> путь к БД Access по  (кнопке)

Вот когда пользователь выбирает этот путь ты его и присваивай переменной


 
Golik   (2006-05-04 02:44) [8]

в том то и проблема как его присвоить?


 
Anatoly Podgoretsky ©   (2006-05-04 08:45) [9]

С помощью оператора присвоения, это :=


 
Golik   (2006-05-04 12:59) [10]

а как при запуске программы проверить этот ключ в реестре на наличие пути?


 
Сергей М. ©   (2006-05-04 13:13) [11]


> Golik   (04.05.06 12:59) [10]


Справку к классу TRegistry читал ?


 
Yegorchic ©   (2006-05-04 20:04) [12]


> а как при запуске программы проверить этот ключ в реестре
> на наличие пути?


Я же в [1] и [3] всё описал...



Страницы: 1 вся ветка

Текущий архив: 2006.05.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
2-1146411533
Yo-yo
2006-04-30 19:38
2006.05.21
TadvMemo


15-1145813248
Volf_555
2006-04-23 21:27
2006.05.21
Какой посоветуете PHP - редактор?


2-1146567183
Id
2006-05-02 14:53
2006.05.21
Взаимодействие баз данных в пределах одного запроса


15-1146044448
Rule
2006-04-26 13:40
2006.05.21
Компания Borland приглашает 11 мая на семинар в Киеве


2-1146916420
mr1Andersen
2006-05-06 15:53
2006.05.21
Подскажите, пожалуйста, как лучше сделать: