|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.07.2014, 16:28 | #1 |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
Форма как свойство и объект действий у компонента
Всем привет. Пытаюсь раздумать кое-какой компонент.
Есть компонент. Он небольшой, но немного труден в написание. У компонента, форма, написанная в режиме проектирования или динамически, может использоваться как свойство. Форма может быть создана(создана её переменная), изменены могут её свойства или компонентов на ней, так же возможно пользователь захочет изменить какой-либо компонент и наконец она может быть уничтожена. Задачи компонента: Функцией показать форму. Отследить, какие свойства у компонентов были изменены и на что(имя компонента и название свойств задают в виде строки, такого вида: [имя компонента][имя свойства][индификатор]). Результат функции, строковой вид всех изменений такого вида: [индификатор][значение свойства после закрытия формы, если оно было изменено]. Все формы для компонента хранятся в массиве из TMessageForm. TMessageForm-это тип, прямой наследник класса TForm. Вопросы: Как мне добавить в этот массив форму созданную в режиме проектирования? Как мне добавлять туда формы динамически, если компоненты на этих формах могут быть разного типа и их может быть разное количество?
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. |
28.07.2014, 17:24 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Т.е. другими словами ты хочешь сделать мониторинг свойств объектов в твоем проекте? Любое изменение любого свойства любого объекта должно фиксироваться твоим компонентом - я правильно понял?
I'm learning to live...
|
28.07.2014, 17:56 | #3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Неправлино поставили задачу.
Есть не визуальный компонент-квадратик с картинкой. В нем есть список, где регистрируются компоненты с формы X вида: Компонент.Свойство. Компонент где-то хранит исходные значения компонент, т.е. предыдущее сохранение, при созранении данных, компонент перебирает зарегестрированные компоненты, их свойства и сравнивает с исходнымы(ищет изменения), изменения перезаписывает в файл. Все. Ваша идея выполнима на уровне disign-time используя средства IDE, в run-time можно использовать RTTI, но опять же он не для всех классов генерируется. |
28.07.2014, 18:18 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Кстати кажется среди пакета JEDI есть уже такой компонент.
I'm learning to live...
|
28.07.2014, 18:57 | #5 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
|
|
28.07.2014, 20:38 | #6 | |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
Цитата:
1. Компонент показывает форму и компоненты на ней. 2. Компонент автоматом изменяет свойства компонентов, на те которые задали в параметрах функции вызова. Параметр представляет собой массив строк такого типа: [имя компонента][имя свойства][значение]. ... [имя компонента N][имя свойства N][значение N]. 3. Дальше вступает в игру пользователь. Ему выведется форма с уже установленными свойствами. 4. Пользователь что-то делает делает с компонентами(в основном полями ввода) и нажимает на кнопку или просто на крестик(если, конечно, он там есть). Не зависимо какую кнопку нажал пользователь, форма закроется, но перед этим зафиксирует, то что он нажал, а так же проверит изменились ли мониторинговые свойства. Ну и если они изменились, то создает такой список: [индефикатор(Integer)][имя компонента][имя свойство][новое значение]. в конце списка будет стоять название кнопки(не caption!), которую нажал пользователь. Всё это является результатом функции вызова. Проблема в том, что если я попытаюсь так сделать, то у меня не фига не получится и думаю как всё это оформить по другому.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. Последний раз редактировалось саша40; 28.07.2014 в 20:45. |
|
28.07.2014, 21:39 | #7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
http://delphiworld.narod.ru/base/the...tice_rtti.html http://www.kansoftware.ru/?tid=2145 Однако как-то нужно их мониторить. Таймер? Доппоток? ...не знаю. Мое мнение - ничего у тебя не выйдет...
I'm learning to live...
|
||
29.07.2014, 10:57 | #8 | |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
Цитата:
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Изменение размера форма и выполнение действий | Andersen1313 | C++ Builder | 2 | 12.10.2013 12:48 |
Свойство Text компонента ComboBox | Aleksey1989 | Помощь студентам | 3 | 25.11.2010 14:17 |
создать свойство компонента | дядя | Компоненты Delphi | 2 | 11.05.2008 23:23 |
Свойство DocumentSource компонента XML | posdnyaa | Компоненты Delphi | 0 | 21.02.2008 16:19 |
Свойство Params компонента TQuery | Washington | БД в Delphi | 3 | 07.02.2007 12:04 |