Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.05.2009, 09:06
Аватар для Alxd
Alxd Alxd вне форума
Прохожий
 
Регистрация: 19.05.2009
Сообщения: 23
Репутация: 10
Вопрос Помогите пожалуйста разобраться

Есть вот такая структурка
Код:
// Запись настройки
Settings = record
   Name: String[255]; // Наименование настройки
   DBPath: String[255]; // Путь к базе
   DBUserName: String[100]; // Имя пользователя
   DBUserPassword: String[50]; // Пароль пользователя
   DBType: Byte; // Тип базы данных (0 - файловая, 1-серверная)
   ExchangeCode: String[10]; // Код настройки обмена
end;

// Коллекция настроек
SettingsData = record
   RunPath: String[255]; // Путь запуска 1С Предприятия
   Data: Array[0..49] of Settings; // Массив настроек
   Count: Byte; // Количество записей
end;
И есть процедура, которая осуществляет запись в файл
Код:
procedure SaveSettingsDB();
var
  SettingsFile: file of SettingsData;
begin
  AssignFile(SettingsFile, 'Settings.dat');
  Rewrite(SettingsFile);
  Write(SettingsFile, MainData);
  CloseFile(SettingsFile);
end;
Admin: Пользуемся тегами!

Проблема в следующем:
- Если есть записи в MainData.Data - все хорошо сохраняется, но если заполнить просто MainData.RunPath, а MainData.Data не трогать, то файл вообще не создается.

Вопрос: Почему так происходит и как это побороть?

Последний раз редактировалось Admin, 19.05.2009 в 10:17.
Ответить с цитированием
  #2  
Старый 19.05.2009, 09:23
Аватар для Alxd
Alxd Alxd вне форума
Прохожий
 
Регистрация: 19.05.2009
Сообщения: 23
Репутация: 10
По умолчанию Уточнение

Немного разобрался
Код:
procedure TfrmSettings.btOpenPath1CClick(Sender: TObject);
begin
  OpenDialog.Filter:='Файл запуска 1С Предприятия|1cv8.exe';
  OpenDialog.Title:='Укажите путь запска 1С Предприятия';
  if OpenDialog.Execute then
  begin
    EditPath1C.Text:= OpenDialog.Files[0];
    MainData.RunPath:=EditPath1C.Text;
  end;
  OpenDialog.Destroy;
end;

Если OpenDialog не вызывать, а EditPath заполнять руками и потом

MainData.RunPath:=EditPath1C.Text;

...то все работает.
Подскажите, как это лечить?

Последний раз редактировалось Admin, 19.05.2009 в 10:17.
Ответить с цитированием
  #3  
Старый 19.05.2009, 11:36
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Ошибка не здесь. И судя по этой строке:
Код:
OpenDialog.Destroy;
к коде есть много интересного и неожиданного. Так что не удивительно наличие необъяснимых ошибок.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #4  
Старый 19.05.2009, 14:08
Аватар для Alxd
Alxd Alxd вне форума
Прохожий
 
Регистрация: 19.05.2009
Сообщения: 23
Репутация: 10
По умолчанию

Может и так
Но факт остается фактом, если выбор файла все таки произошел через OpenDialog, то Settings.dat не создается
Ответить с цитированием
  #5  
Старый 19.05.2009, 14:24
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Полный код модуля в студию!
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #6  
Старый 19.05.2009, 14:53
Аватар для Alxd
Alxd Alxd вне форума
Прохожий
 
Регистрация: 19.05.2009
Сообщения: 23
Репутация: 10
По умолчанию

Странно как-то просто

Последний раз редактировалось Alxd, 19.05.2009 в 22:34.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:42.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025