Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
FlintFD
1 / 1 / 0
Регистрация: 26.01.2013
Сообщений: 20
1

Непонятное сохранение значений компонентов формы в файл

15.11.2014, 17:55. Просмотров 363. Ответов 0
Метки нет (Все метки)

В проекте динамически создаются формы (из одной, шаблона), на форме есть куча Эдитов, Комбобоксов и др. Задача, все значения редактируемых компонентов на каждой из созданных форм сохранить в ИниФайл.
Код сохранения:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
procedure SavFile (const FileName: TFileName);
  var i,j:Byte;
begin
 
  FIni :=TIniFile.Create(FileName);
 
  FIni.WriteString('Version', 'Версия', Form_Main.Version.Caption);
  FIni.WriteString('Section', 'Секций', Form_Main.ComboBox_N_section.Text);
 
   for i := 0 to application.ComponentCount-1 do
   if Application.Components[i] is TForm then begin
   Fini.EraseSection((Application.Components[i] as TForm).Name);
   IF (Application.Components[i] as TForm).Name <> ('Form_section') then
      IF (Application.Components[i] as TForm).Name <> ('Form_calc') then begin
     for j:=0 to  Application.Components[i].ComponentCount-1 do begin
          //TEdit
       if Application.Components[i].Components[j] is TEdit then
          FIni.WriteString((Application.Components[i] as TForm).Name,
          (Application.Components[i].Components[j] as TEdit).Name+'.Text',
          (Application.Components[i].Components[j] as TEdit).Text);
           //TComboBox
        if Application.Components[i].Components[j] is TComboBox then
          FIni.WriteString((Application.Components[i] as TForm).Name,
          (Application.Components[i].Components[j] as TComboBox).Name+'.Text',
          (Application.Components[i].Components[j] as TComboBox).Text);
           //TCheckBox
        if Application.Components[i].Components[j] is TCheckBox then
          FIni.WriteBool((Application.Components[i] as TForm).Name,
          (Application.Components[i].Components[j] as TCheckBox).Name+'.Checked',
          (Application.Components[i].Components[j] as TCheckBox).Checked);
         //TRadioGroup
         if Application.Components[i].Components[j] is TRadioGroup then
          FIni.WriteInteger((Application.Components[i] as TForm).Name,
          (Application.Components[i].Components[j] as TRadioGroup).Name+'.ItemIndex',
          (Application.Components[i].Components[j] as TRadioGroup).ItemIndex);
        end;
      end;
   end;
  FIni.Free;
end;
Всё нормально вроде, сохраняет все формы по созданному количеству, но вот с компонентами непонятка, все редактируемые компоненты сгруппированы в панели, и вот из этих панелей компоненты берутся не все, на одной панели есть два Эдита например, один эдит пишется, второй нет. Параметры одинаковые за исключением естественно имени. И так со всеми компонентами, как то выборочно сохраняет, причём в инспекторе объектов это могут быть соседние компоненты... Ничего не понимаю, почему такое избранное сохранение, ведь перебираю все нужные мне компоненты на форме. Куда копать?

Добавлено через 13 минут
Вопрос вроде закрыт... поменял тип переменной с Byte на Integer, вроде всё записало. День убил на поиск решения, а всё как обычно просто оказалось, не хватало диапазона всё просчитать... такая мелочь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2014, 17:55
Ответы с готовыми решениями:

Сохранение значений из TLabel и TEdit в файл
Здравствуйте! Необходима помощь! на форме имеется несколько пар lbl и edt,...

Сохранение информации с формы в word-файл
Здравствуйте, помогите, пожалуйста. Есть ли возможность с Формы delphi ...

Сохранение данных из формы в файл PDF
Добрый день уважаемые форумчане. подскажите, пожалуйста, как правильно...

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

Сохранение текста всех TEdit формы в файл
Доброго времени суток. Столкнулся с проблемой написания универсальной процедуры...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2014, 17:55

Создание у формы события, основанного на событиях компонентов формы
Всем доброго времени суток. Прошу подсказать решение проблемы: Необходимо у...

Непонятное явление с заголовком формы
Привет всем, делал прогу, всё супер, закончил, и вот остался один штрих-...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru