Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Круглый стол
  
Правила КС
>> Настройки

Фильтр вопросов
>> Новые вопросы
отслеживать по
>> Новые ответы

Избранное

Страница вопросов
Поиск по КС


Специальные проекты:
>> К л ю к в а
>> Г о л о в о л о м к и

Вопрос №

Задать вопрос
Off-topic вопросы

Помощь

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  15:41[Войти] | [Зарегистрироваться]
Ответ на вопрос № 60563

24-03-2008 18:49
Уважаемые спецы! Вопрос простой, но никак не могу понять в чем дело...

D7
procedure TForm1.SaveParam;
var
  iniFile: TIniFile;
begin
  iniFile := TIniFile.Create('./params.ini');
  iniFile.UpdateFile;
  iniFile.WriteString('Main','Zum',MaskEdit1.Text);
  iniFile.WriteString('Main','MaxV',IntToStr(MaxV));
  iniFile.WriteString('Main','MaxZ',IntToStr(MaxZ));
  iniFile.WriteString('Main','Sving',IntToStr(TrackBar3.Position));
  iniFile.WriteString('Main','File',Edit1.Text);
  iniFile.Free;
end;

Если в Edit1 записывается текст руками, то все сохраняется нормально, но
если перед этим было: Edit1.Text := OpenDialog1.FileName;
то запись не происходит. При чем не сохраняет ничего... Хоть за бубен берись...

[+] Добавить в избранные вопросы

Отслеживать ответы на этот вопрос по RSS

Ответы:


Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице.
Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.

24-04-2008 13:52 | Комментарий к предыдущим ответам
>>> Для второго те же функции только готовят соответствующие данные в памяти
Это мне известно. Но надо не только вываливать на автора всю известную информацию, но и смотреть, что же автору надо. Я в тексте вопроса про TMemIniFile ничего до сих пор не видел, потому по умолчанию полагал, что работа идет именно с TIniFile. А вот для него UpdateFile совершенно не нужен перед дестректором. Дело в том, что его деструктор имеет вызов UpdateFile внутри себя. Причины, по которым TMemIniFile так не делает мне неизвестны. Впрочем, я его использовал только в одном проекте и то больше для самообразования, так что судить не буду.

21-04-2008 00:15 | Комментарий к предыдущим ответам
>>> перед Ini.Free надо добавить Ini.UpdateFile
Не надо.
Есть два типа: TIniFile и TMemIniFile. Для первого функции WriteXXXXX записывают данные непосредственно в файл. Для второго те же функции только готовят соответствующие данные в памяти, а запись в файл производится функцией UpdateFile.

20-04-2008 01:00 | Комментарий к предыдущим ответам
>>> перед Ini.Free надо добавить Ini.UpdateFile
Не надо.

25-03-2008 14:44 | Сообщение от автора вопроса
Спасибо всем...

Действительно, при обращении к OpenDialog происходит смена текущего каталога...
Отдельное спасибо  Бел Амор...

25-03-2008 07:19
>>> При чем не сохраняет ничего...

Сохраняет, только в другом каталоге...
Кстати, удобно, когда имя ini-файла совпадает с именем исполняемого:

iniFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));


25-03-2008 05:16
Чтобы данные записались в Ini-файл, то перед Ini.Free надо добавить Ini.UpdateFile!

24-03-2008 23:52
по пробуйте
var s:string;
...
s:=OpenDialog1.FileName;
UniqueString(s);
Edit1.Text:=s;

24-03-2008 23:35
>>> Если в Edit1 записывается текст руками, то все сохраняется нормально, но если перед этим было: Edit1.Text := OpenDialog1.FileName;

Известная проблема, неоднократно обсуждавшаяся. При выборе файла в TOpenDialog меняется текущий каталог программы. При этом все относительные пути слетают, т.к. отсчитываются уже не от нужного каталога, а от нового текущего...
Решение:
1. Чтобы при выборе файла в TOpenDialog каталог не менялся, установите в инспекторе объектов для OpenDialog1 в Options ofNoChangeDir или добавьте в код строчку:

  OpenDialog1.Options := OpenDialog1.Options + [ofNoChangeDir];

2. Используйте всегда только полные пути:

  iniFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'params.ini');


Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Кто съел Красную шапочку?
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.
Тип сообщения:
Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве

    Страница избранных вопросов Круглого стола.
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования