Объединенный Открытый Проект - Сайт для Настоящих Компьютерщиков

Объединенный Открытый Проект

Сайт для Настоящих Компьютерщиков

; Логин:
  Пароль:
Обычный
Безопасный
Запомнить пользователя



Зарегистрироваться
Забыли пароль?
 
 
 
Объединенный Открытый Проект »   Программирование »   Pascal/Delphi »   Сохранение содержимого формы в файл
RSS

Сохранение содержимого формы в файл

Как автоматизировать этот процесс

Текущий рейтинг темы: Нет

<<Назад  Вперед>>Модераторы: Winnowing_Raven, wsxПечать
 
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Есть ли в Delphi какие-либо средства, которые бы позволяли сохранять содержимое сразу всех компонентов формы в файл (желательно, Ini или XML), а потом загружать бы их обратно из этого файла?

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
wsx
Модератор раздела
Юниксойд, сетевик
wsx
Откуда: Казань
Всего сообщений: 1074
Рейтинг пользователя: 28

Репутация пользователя: 1




Дата регистрации на форуме:
14 янв. 2005
не знаю даже я обычно это делаю так:
Сильно, не бить. Код писал по памяти :)



...

uses  xmldom, XMLIntf, oxmldom, XMLDoc;

.......

var

New: IXMLNode;

Main:IXMLNode;

begin

XML_EXPO.XML.Clear;

XML_EXPO.XML.ADD('<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>');



XML_EXPO.XML.Add('<Organizations></Organizations>');

XML_EXPO.Active:=true;

New:= XML_EXPO.DocumentElement.AddChild('<$$$CHILD$$$>');



Main : = New.AddChild('name');

Main.Text:=TEDIT.TEXT;

,......

XML_EXPO.Close;

end;



4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
То ли ты не понял задачи, то ли я не понял твоего ответа. Поясню еще раз на конкретном примере. В ней есть два Editа, одно поле Memo, пара checkboxов и radiobutton. А теперь я хочу сохранить содержимое всего этого в файл, чтобы при следующей загрузке восстановить все как было. И вопрос был такой: можно ли сохранить все это дело сразу целико, а не перечисляя каждое поле поименно (поименно я и в обычный INI без проблем все сохраню).

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
wsx
Модератор раздела
Юниксойд, сетевик
wsx
Откуда: Казань
Всего сообщений: 1074
Рейтинг пользователя: 28

Репутация пользователя: 1




Дата регистрации на форуме:
14 янв. 2005
Ну вот я тоже не знаю. сохрняю всё поимённо... Теоретически наверное можно как то в цикле обходить...
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Выяснил, как это делается. У TComponent есть свойства Components и ComponentCount. Соответственно, получаем цикл:

for j:=0 to ComponentCount-1 do begin

  if (Form1.Components[j] is TEdit) then Ini.WriteString('Form1',(Form1.Components[j] as TEdit).text);

  .... // и так для всех типов компонентов, которые мы хотим сохранить

end;


Может быть, чуть позже выложу модуль, в котором это будет реализовано полностью.
Правда, пока не понятно, как поступать с полями Memo и DbGrid, похоже, их можно только в XML нормально сохранять... Или делать отдельную секцию в INI.

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
wsx
Модератор раздела
Юниксойд, сетевик
wsx
Откуда: Казань
Всего сообщений: 1074
Рейтинг пользователя: 28

Репутация пользователя: 1




Дата регистрации на форуме:
14 янв. 2005
Ага! тоже только сегодня до этого додумался! Просто не успел выложить.. Об этом можно почитать у меня в ЖЖ...
wsx
Модератор раздела
Юниксойд, сетевик
wsx
Откуда: Казань
Всего сообщений: 1074
Рейтинг пользователя: 28

Репутация пользователя: 1




Дата регистрации на форуме:
14 янв. 2005
И всё же я был прав! Я же говорил, что можно в цикле обходить :))
<<Назад  Вперед>>Модераторы: Winnowing_Raven, wsxПечать
Объединенный Открытый Проект »   Программирование »   Pascal/Delphi »   Сохранение содержимого формы в файл
RSS
Быстрый переход в раздел:


Время выполнения скрипта: 0.0624. Количество выполненных запросов: 18, время выполнения запросов 0.0168