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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2013, 22:17   #1
xsaroo
Пользователь
 
Регистрация: 14.10.2012
Сообщений: 40
По умолчанию Чтение из ini файла(Ошибка)

Вот написал код для чтения последнего пути бд но ругается на ошибку хотя все правильно (этот код работает у меня в другой программе без ошибок) но в это ругается на "Login".
Вот код
Код:
procedure TForm1.BitBtn3Click(Sender: TObject);
var
MyIni: TIniFile;
PathToDB:string;
begin
  Form3.con1.Connected:=false;
  Form3.ADOQuery1.Active:=false;
  // настройки храним в файле Settings.ini
  MyIni := TIniFile.Create('Settings.ini');
  // Читаем оттуда последний путь к БД
  PathToDb := MyIni.ReadString('DB', 'Path', '');
  // Пытаемся залогиниться. Если не вышло, то...
  while (not login(PathToDb)) do
  begin  //..идем по старому пути: запрашиваем путь к файлу БД
    If not OpenDialog1.Execute then exit;
    PathToDb:=Opendialog1.FileName;
  end;
  // Не забываем записать путь к БД!
  MyIni.WriteString('DB', 'Path', PathToDb);
  MyIni.Free;
end;
xsaroo вне форума Ответить с цитированием
Старый 09.06.2013, 22:21   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Ну так не знает он что за login, если это метод и почему он в while цикле...
Человек_Борща вне форума Ответить с цитированием
Старый 09.06.2013, 22:22   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Пользуйся полными путями для обращения к ini и базе. Проблем не будет.
ExtractFilePath(Application.ExeName ) - каталог exe-файла
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.06.2013, 22:44   #4
xsaroo
Пользователь
 
Регистрация: 14.10.2012
Сообщений: 40
По умолчанию

Спасибо.
Все заработало но когда я хочу запихнуть этот код в Oncreate( на певоначальную форму) он при запуске выдает ошибку мол модул нарушает права .... но когда это на кнопке все норм

Последний раз редактировалось xsaroo; 09.06.2013 в 22:53.
xsaroo вне форума Ответить с цитированием
Старый 11.06.2013, 22:26   #5
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Цитата:
Сообщение от xsaroo Посмотреть сообщение
Спасибо.
Все заработало но когда я хочу запихнуть этот код в Oncreate( на певоначальную форму) он при запуске выдает ошибку мол модул нарушает права .... но когда это на кнопке все норм
Код:
var
MyIni: TIniFile;//Глобально

procedure TForm1.FormCreate(Sender: TObject);
begin
  Form3.con1.Connected:=false;
  Form3.ADOQuery1.Active:=false;
  MyIni := TIniFile.Create('Settings.ini');
end;

procedure TForm1.FormShow(Sender: TObject);
var
PathToDB:string;
begin
  PathToDb := MyIni.ReadString('DB', 'Path', '');
  // Пытаемся залогиниться. Если не вышло, то...
  while (not login(PathToDb)) do
  begin  //..идем по старому пути: запрашиваем путь к файлу БД
    If not OpenDialog1.Execute then exit;
    PathToDb:=Opendialog1.FileName;
  end;
  // Не забываем записать путь к БД!
  MyIni.WriteString('DB', 'Path', PathToDb);
  MyIni.Free;
end;
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 11.06.2013, 22:41   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form3.con1.Connected:=false;
  Form3.ADOQuery1.Active:=false;
  MyIni := TIniFile.Create('Settings.ini');
end;
когда создается Form1, то Form3 еще не существует (не создана) =>обращение к несуществующему объекту => Access Violation
Цитата:
ошибку мол модул нарушает права ....
Цитата:
но когда это на кнопке все норм
то все формы (в т.ч Form3) уже созданы и все нормально.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 20.07.2013, 13:24   #7
Stertor
Заблокирован
 
Регистрация: 17.07.2013
Сообщений: 104
По умолчанию

Надеюсь, понял свою ошибку.

Последний раз редактировалось Stertor; 20.07.2013 в 13:28.
Stertor вне форума Ответить с цитированием
Старый 21.07.2013, 13:07   #8
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от xsaroo Посмотреть сообщение
Спасибо.
Все заработало но когда я хочу запихнуть этот код в Oncreate( на певоначальную форму) он при запуске выдает ошибку мол модул нарушает права .... но когда это на кнопке все норм
запихни в onShow, потому что у тебя ещё формы остальные не создались.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 21.07.2013, 13:46   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
мол модул нарушает права
Лучше напиши ошибку так как она звучит на аглицком )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запись/чтение ini файла marwell. Общие вопросы Delphi 2 02.06.2013 17:56
Чтение ключа из ini файла NapalmRain C# (си шарп) 4 06.05.2011 01:27
чтение ini файла Жека_ Общие вопросы C/C++ 4 01.05.2011 08:52
Чтение с INI файла. Baaandit Общие вопросы Delphi 3 26.11.2009 17:15