Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Сохранение параметров объектов на C# в xml-файл


Автор: garfna 28.3.2009, 22:45
Как сохранить параметры(свойства и методы) динамически создаваемых объектов(кнопок и т.д.) на форме в xml-файл без сериализации объектов?

Автор: Partizan 29.3.2009, 00:28
garfna, а методы зачем сохранять? smile Состояние объекта характеризуется значениями его переменных....
сохранить в XML можно используя XML-сериализацию...гуглите XmlSerializer

Автор: garfna 29.3.2009, 00:56
Вообщем мне нужно создать подобие конструктора форм визуал студио, только когда пользователь запустит мою программу, набросает кнопок и других объектов, он должен кроме их свойств в PropertyGrid, установить ещё и определённые методы, которые бы сразу срабатывали.

Автор: -Mikle- 29.3.2009, 09:56
Цитата(garfna @  29.3.2009,  01:45 Найти цитируемый пост)
в xml-файл без сериализации объектов

А почему сериализация не подходит вам? Не вижу ограничений для такой задачи.

Если не хотите автоматом, то делайте ручками: XmlWriter/XmlReader/XmlDocument

Если мы Вас не поняли, то давайте больше сведений.

Автор: Partizan 29.3.2009, 10:38
garfna, что значит "установить определённые методы"? Выбрать из предопределённых? или сам должен код обработчиков написать?

Автор: garfna 29.3.2009, 12:30
Давайте я покажу на примере)
Например, для кнопки в методах, пользователь должен выбрать "Запустить таймер", связать эту кнопку с TextBox,где должен задать время. При нажатии данной кнопки должен пойти отсчёт времени в TextBox.

Автор: -Mikle- 29.3.2009, 18:59
Цитата(garfna @  29.3.2009,  15:30 Найти цитируемый пост)
пользователь должен выбрать "Запустить таймер", связать эту кнопку с TextBox,где должен задать время. При нажатии данной кнопки должен пойти отсчёт времени в TextBox

Думаю что это, уже совсем другой вопрос в отличии от
Цитата(garfna @  29.3.2009,  01:45 Найти цитируемый пост)
Как сохранить параметры(свойства и методы) динамически создаваемых объектов(кнопок и т.д.) на форме в xml-файл без сериализации объектов?


Если речь идет о простых задачах для кнопок, то можно сделать предустановленные классы-команды и назначать их кнопкам пользователя.
Если задачи для кнопок заранее не известны, то надо пердоставить пользователю редактор сценариев или окно для написания пользовательского кода, пусть он пишет там любые сценарии, какие захочет на том же C#...

Все варианты очень легко реализуются, без особых заморочек...

Автор: garfna 29.3.2009, 19:07
Моя программа должна быть рассчитана на пользователя, не знающего программирования.
Я хотела, чтобы пользователь мог через PropertyGrid устанавливать свойства для кнопок и других объектов, а через некоторые свойства можно было бы определить методы. Тогда бы и сериализацию можно было б сделать)

Автор: -Mikle- 29.3.2009, 19:36
Цитата(garfna @  29.3.2009,  22:07 Найти цитируемый пост)
было бы определить методы

Диапазон функционала методов каков? Фиксирован? То есть, например, у пользователя есть список из 100 заранее предустановленных методов? Или у пользователя есть свобода для творчества...

Я все виду к тому, что вы неверно размышляете... Если набор методов у вас предустановлен, то не нужно (как вы говорите) сериализовывать методы, нужно просто запомнить какой метод на какое событие и какого элемента назначен.

Для оказания более полноценной помощи, вам придется подробнее расписать, что вы делаете, что будут делать созданные пользователем формы, какого они плана вобще, что может пользователь назначать на события кнопок и других элементов управления. Описание задачи (для вас самой), является важным шагом на пути к реализации задачи...

Автор: garfna 29.3.2009, 20:02
Задача заключается в следующем:
Существует плата знакогенерации, позволяющая сформировать титры для спортивных трансляций. Необходимо придумать пользовательский интерфейс, позволяющий управлять этой платой. Интерфейс должен быть расчитан на пользователя не имеющего специальных знаний и навыков в области разработки ПО. Поэтому диапазон функционала методов фиксирован))
Для любого вида спорта пользователь может создать специальный шаблон, куда расположит кнопки, текстбоксы и многое другое для управления страницами в плате, настроит кнопки под определённые функции, свяжет их с нужными объектами и т.д.
Созданные шаблоны должны сохраняться в хмл-файл, ну считываться из хмл-файла, создавая форму с объектами.
Т.е. задача пользователей заключается только в настройке объектов формы и всё...

Автор: diadiavova 29.3.2009, 20:51
Предложу простую реализацию. Создаётся кнопка с перечисляемым свойством Command. В зависимости от того, какое значение выберет пользователь для этого свойства, будет выполнятся та или иная команда.

Автор: garfna 30.3.2009, 00:30
Спасибо!  smile 

Автор: -Mikle- 30.3.2009, 21:45
Осмелюсь предложить еще один вариант. Он чуточку сложнее, но зато предоставляет, чуть больше возможностей. Имя свойства у кнопки называется Action.
Основан на том, что команда - это объект, который может иметь сколько угодно свойств.
Также в примере реализован простой Design-time редактор свойства Action.
На этом шаблоне можно легко организовать любые виды команд, в том числе команды-группы команд (сценарии).
В примере продемонстрировано три команды: Показать сообщение, Выполнить команду по таймеру, Сценарий (группа комманд)...

Будут вопросы, не стесняйся пиши...

Автор: garfna 30.3.2009, 22:08
Большое спасибо!  smile 

Автор: ADVOKAT2 22.10.2012, 15:25
Здравствуйте уважаемые знатоки! У меня к вам вопрос, скажите пожалуйста, каким образом можно из Xml загрузить динамические данные. Т.е я пытаюсь сделать игру но суть в том, что в моем проекте должен присутствовать динамически вызов компонента. Допустим: Пользователь нажал определенную кнопку и передвинул ее, соответственно сменились Location.X Location.Y, далее я сохраняю все эту петрушку в Xml Файл
Код

Element1>
<Button name=button1 Text="Имя кнопки" X.Location="100" Y.Location="50">
</Button>
</Element1>  
 Код XML

Теперь =), пожалуйста подскажите, если пользователь вышел из программы, то при следующим запуске программы, каким образом можно загрузить динамические объекты на свои места которые были записаны в файл Xlm. Спасибо заранее...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)