Форум: "Основная";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
ВнизДелал ли кто подобный компонент или просто класс Найти похожие ветки
← →
SlavaK (2006-10-24 15:19) [0]С чего все начинается: Есть система написанная на Delphi 3 с великим множеством интерфейсных форм, которую нужно сопровождать. Нужно упростить этот процесс а заодно и отрефакторить имеющийся код.
Поведение большинства компонентов весьма (собственно обработчики событий), схоже, хотя сами формы - различны.
В общем родилась идея написать классов по своей сути схожих с ConstraintBroker и содержащих в себе общую часть обработки.
Так, например имея такой класс/ы, который бы можно было связывать с компонентами конкретной формы (в дизайне или рантайме, неважно) можно было бы существенно уменьшить код, дописывая только исключения в обработке каждой конкретной формы. Кроме этого такой Broker был бы перенсим на любое другое приложение...
Делал ли кто нибудь подобное?
← →
Джо © (2006-10-24 15:30) [1]Не знаю, понял ли я вопрос, но не спасет ли репозитарий?
← →
SlavaK (2006-10-24 15:45) [2]Какой репозитарий? Пример, плиз!
← →
SlavaK (2006-10-24 16:03) [3]Если речь про репозитарий в самом Делфи то нет, не спасет.
Причин тому множество - неудобно переносить на разные рабочие места, сам репозитарий привязан к формам...
Идея как раз в том чтоб не привязываться к компонентам или формам, а сделать заготовку с поведением которой будет поставляться компонент...
← →
GrayFace © (2006-10-24 17:47) [4]Вызывает ассоциации с Action"ами.
← →
SlavaK (2006-10-24 17:56) [5]Да, нечто такое есть...
Имхо интерфейсная форма, а точнее контролы на ней это как гвозди на вешалке, на которые нужно вешать одни и те же вещи (методы/обработчики), удобно ведь - какие бы ни были вешалки (формы) и гвозди (контролы) мы просто навешиваем на них то что нам нужно...
← →
Игорь Шевченко © (2006-10-24 18:14) [6]
> написать классов по своей сути схожих с ConstraintBroker
Для невежественных можно поподробнее ?
← →
Наиль © (2006-10-24 18:17) [7][5] - это точное описание Action"ов.
Разница только в том, что ты хочешь использовать заранее предопределёные методы, чуть ли не во всех своих программах. А в action"ах приходиться писать каждый раз заново. Я правильно понял? Если так, то два пути:
1. Сделать потомка от TAction"а, чтобы события не перекрывались. Гланое тут - глубокое взаимодействие контролов и action"ов на основе private и protected методов. Т.е. своего такого ты не напишешь.
2. TDataModule + TActionList. Без комментариев.
Решать подобное мне приходилось, но на основе репозитария.
← →
StriderMan © (2006-10-24 18:18) [8]ИМХО лучше сделать базовый класс для таких форм и в него напихать "общих" обработчиков.
А если делать специальный класс для обработчиков, то какие проблемы?:TUniversalHandler = class(TComponent)
published
procedure OnDoSomething(Sender: TObject);
procedure OnDoSomethingElse(Sender: TObject);
....
end;
← →
Джо © (2006-10-24 18:29) [9]> [8] StriderMan © (24.10.06 18:18)
> ИМХО лучше сделать базовый класс для таких форм и в него
> напихать "общих" обработчиков.
Ну, дык, собственно, репозитарий в Делфи и предоставляет такую возможность.
← →
StriderMan © (2006-10-24 18:33) [10]
> Джо © (24.10.06 18:29) [9]
> Ну, дык, собственно, репозитарий в Делфи и предоставляет
> такую возможность
Единственная проблема в том, если проект УЖЕ сделан без базового класса, и в нем вагон формочек, то тут без авто-обработки кода и DFM не обойтись.
← →
SlavaK (2006-10-24 18:51) [11]Базовый клас для форм неудобно, ведь как ты заметил - проект уже сделан...
Гораздо удобнее этот UniversalHandler накидать/заюзать на формы, сцепить его с контролами, затем в основное меню добавить опцию "новая версия" -и если она активна то использовать обработчики из UniversalHandler если не активна - те что были...
А с формами как ты этого достигнешь?..
← →
SlavaK (2006-10-24 18:57) [12]Я ж почему спрашиваю, вопрос не в том чтоб написать с нуля...эт можно, но не хочется, так как тут еще придется повозиться. Я ищу пусть не точно такое, пусть подобное, но уже готовое...
← →
Наиль © (2006-10-24 19:43) [13]Готовое - это TAction.
Поэтому вопрос, чем тебя ActionList не устраевает?
← →
Leonid Troyanovsky © (2006-10-24 19:44) [14]
> SlavaK (24.10.06 18:51) [11]
> Гораздо удобнее этот UniversalHandler накидать/заюзать на
> формы, сцепить его с контролами, затем в основное меню добавить
Т.е., в D3 и накидать?
> Я ищу пусть не точно такое, пусть подобное, но
С перламутровыми пуговицами?
--
Regards, LVT.
← →
SlavaK (2006-10-26 11:12) [15]Да, господа, TAction, TActionList, TActionManager это именно то чем можно было бы воспользоваться, но в Delphi 3 их еще нет....
Впрочем, почти все в наших руках - попробую найти исходники для этих классов, может и получится ими воспользоваться.
Благодарю всех за внимание!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.041 c