Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: CL | DM;

Вниз

Делал ли кто подобный компонент или просто класс   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.039 c
15-1163355784
razor
2006-11-12 21:23
2006.12.03
Футболка с надписью, логотипом ACM


15-1163522933
изучающий дот нет
2006-11-14 19:48
2006.12.03
перспективы .NET на 4-5 лет


15-1163094529
yuraspb
2006-11-09 20:48
2006.12.03
У кого есть исходники по кластерному анализу


15-1163086909
Ламот
2006-11-09 18:41
2006.12.03
Вопрос по 1С (и, похоже, даже не по программированию)


15-1163429075
oldman
2006-11-13 17:44
2006.12.03
Российская хоккейная сборная выиграла второй кубок Евротура.