Delphi - [решено] Загрузка данных из ini

Ответить
Аватара пользователя
novashdima

Delphi - [решено] Загрузка данных из ini

Сообщение novashdima »

Загружаю данные таким образом:



Код:

Код: Выделить всё

procedure TIniOptions.LoadSettings(Ini: TIniFile);
var chk, i: integer;
begin
  if Ini  nil then
  begin
    if not Ini.SectionExists('TsSpinEdit')
    then chk := MessageDlg('Неверные данные!', mtError, [mbOk] , 0)
    else
      begin
        with MainForm do
        for I := 0 to ComponentCount - 1 do
          begin
            if Components[i] is TsSpinEdit
            then TsSpinEdit(Components[i]).Value := Ini.ReadInteger('TsSpinEdit', TsSpinEdit(Components[i]).Name, 0);
            if Components[i] is TsCheckBox
            then TsCheckBox(Components[i]).Checked := Ini.ReadBool('TsCheckBox', TsCheckBox(Components[i]).Name, False);
            if Components[i] is TsComboBox
            then TsComboBox(Components[i]).ItemIndex := Ini.ReadInteger('TsComboBox', TsComboBox(Components[i]).Name, 0);
          end;
      end;
  end;
end;

И все бы хорошо, да один компонент присваивает неправильное значение, при повторной загрузке данных из файла все норм.

Процедура обработки при изменении данных одна на все, поэтому такой баг должен был быть везде.

П.С. После загрузки данных на этом самом компоненте значение становится равным максимально возможному, причем такое возможно только если при вводе данных ввели значение больше максимального, тогда присваивается максимальному значению, но все равно странно...



Еще интересно, какое использовать диалоговое окно типа MessageDlg (с указанием типа сообщений и кнопок), но без возвращаемой кнопки (ShowMessage не подходит). Только мучаться с MessageBox что ли?
Аватара пользователя
Любезный

Re: Delphi - [решено] Загрузка данных из ini

Сообщение Любезный »

Сначала посмотри в отладчике или через ShowMessage, какое значение попадает в компонент из ини по факту. Ну а потом можно будет грешить либо на компонент, либо на ини.
Аватара пользователя
novashdima

Re: Delphi - [решено] Загрузка данных из ini

Сообщение novashdima »

Цитата Любезный:



Сначала посмотри в отладчике или через ShowMessage, какое значение попадает в компонент из ини по факту. Ну а потом можно будет грешить либо на компонент, либо на ини.
Delphi - [решено] Загрузка данных из ini




Посмотрел, данные правильные, вносятся те, что надо, но!!! при изменении каких-либо начальных данных у меня идет пересчет всех данных. Вот пришлось пересмотреть весь код, глаз зацепился за одну процедуру, подумал, что-то не так, посмотрел и увидел, что когда копипастил часть процедуры забыл видимо изменить кое-что и вот результат(



Но еще одна странность, после загрузки настроек Caption у главной формы пустой.
Аватара пользователя
Любезный

Re: Delphi - [решено] Загрузка данных из ini

Сообщение Любезный »

Отладчик в руки - и вперёд пошаговым прогоном.
Аватара пользователя
opel431

Re: Delphi - [решено] Загрузка данных из ini

Сообщение opel431 »

Цитата novashdima:



Но еще одна странность, после загрузки настроек Caption у главной формы пустой.
Delphi - [решено] Загрузка данных из ini




Не знаю....мне кажется, мало знать, что нужно выбрать "яйца" (is), нужно знать и какие (as).



if Components is TsSpinEdit then

(Components as TsSpinEdit).Value :=...



да и With следует применять, дабы не повторятся в префиксах - Ini.ReadInteger....
Аватара пользователя
novashdima

Re: Delphi - [решено] Загрузка данных из ini

Сообщение novashdima »

Цитата opel431:



if Components is TsSpinEdit then

(Components as TsSpinEdit).Value :=...
Delphi - [решено] Загрузка данных из ini




(Component as TsSpinEdit).Value = TsSpinEdit(Components).Value




Цитата opel431:



да и With следует применять, дабы не повторятся в префиксах - Ini.ReadInteger....
Delphi - [решено] Загрузка данных из ini




я уже использую with для MainForm, поэтому со вторым траблы вроде бы будут
Аватара пользователя
opel431

Re: Delphi - [решено] Загрузка данных из ini

Сообщение opel431 »

Цитата novashdima:



я уже использую with для MainForm, поэтому со вторым траблы вроде бы будут
Delphi - [решено] Загрузка данных из ini




Это где вы вычитали?
Ответить

Вернуться в «Программирование и базы данных»