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

Вниз

Столкнулся с проблемой при приминении паттерна стратегия   Найти похожие ветки 

 
basken   (2004-04-09 15:57) [0]

Столкнулся  с такой проблемой при приминении паттерна стратегия в создании компонента.

Есть абстрактный класс TStrategy и конкретные реализации стратегии TCreateStringStrategy, TDBCreateStringStrategy которые реализуют(каждая реализация по своему) интерфейс класса TStrategy и имеют свои обработчики событий. Так вот вопрос  – каким  образом можно отобразить в TCreatorStrategyAction обработчики событий конкретной реализации TStrategy, возможно ли это? Со свойствами конкретных реализаций класса TStrategy всё впорядке – отображаються, а вот обработчики событий не видно – можно ли их отобразить(очень надо)? За ранее огромное спасибо.

TCreatorStrategyAction = class(TCustomAction)
 private
   FStrategyParams: TStrategy;
   function GetStrategyType: String;
   procedure SetStrategyParams(Value: TStrategy);
   procedure SetStrategyType(const Value: String);
 public
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
   procedure ExecuteTarget(Target: TObject); override;
   procedure UpdateTarget(Target: TObject); override;
 published
   property StrategyType: String read GetStrategyType write SetStrategyType;
   property StrategyParams: TStrategy read FStrategyParams write SetStrategyParams;
 end;


 
WebErr ©   (2004-04-09 16:12) [1]


> За ранее

"Заранее" пишется вместе
Что-то я и событий-то не вижу!!!


 
Fay ©   (2004-04-09 16:14) [2]

2WebErr
Он и говорит - "обработчики событий не видно"!
8))


 
WebErr ©   (2004-04-09 16:19) [3]

Ээй! Там, в лодке!
...
private
 FOnSobytie: TSobytie;
...
published:
 property OnSobytie: TSobytie read FOnSobytie write FOnSobytie;
...
end;


 
WebErr ©   (2004-04-09 16:20) [4]

Ой, забыл ":))))" в конце :))))


 
basken   (2004-04-09 17:02) [5]

События находяться в конкретных реализациях класаа TStrategy

TCreateStringStrategy = class(TStrategy)
 ....
 published
   property CreateString: TCreateString read FCreateString write FCreateString;
   property OnCreateObject: TCreateObjectEvent read FOnCreateObject
     write FOnCreateObject;
   property OnGetCreateString: TGetCreateString read FOnGetCreateString
     write FOnGetCreateString;
   property OnGetParamValue: TGetParamValueEvent read FOnGetParamValue
     write FOnGetParamValue;
 end;


 
basken   (2004-04-09 17:03) [6]

События находяться в конкретных реализациях(у каждой свои) класса TStrategy

TCreateStringStrategy = class(TStrategy)
 ....
 published
   property CreateString: TCreateString read FCreateString write FCreateString;
   property OnCreateObject: TCreateObjectEvent read FOnCreateObject
     write FOnCreateObject;
   property OnGetCreateString: TGetCreateString read FOnGetCreateString
     write FOnGetCreateString;
   property OnGetParamValue: TGetParamValueEvent read FOnGetParamValue
     write FOnGetParamValue;
 end;


 
WebErr ©   (2004-04-09 17:18) [7]

Дык пропиши их в наследниках!!!
property OnSobytie: TSobytie;
без read-write директив!!!


 
Игорь Шевченко ©   (2004-04-09 17:25) [8]

А где надо отобразить ?


 
basken   (2004-04-09 17:28) [9]

TCreateStringStrategy - єто и есть наследники TStrategy ;-). А нужно что бы в классе TCreatorStrategyAction отображались события конкретной реализации.


 
WebErr ©   (2004-04-09 17:39) [10]

Я тебя понял, а вот ты меня - нет! :))))


 
basken   (2004-04-09 18:06) [11]

Дык пропиши их в наследниках!!!
       property OnSobytie: TSobytie;
       без read-write директив!!!

Круто - от этого они наверное станут более видимые!  ;-)



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
3-1080637658
alex123
2004-03-30 13:07
2004.04.25
DBGridEH.SumList.VirtualRecords


3-1080291198
LAndreyV
2004-03-26 11:53
2004.04.25
Размер БД растет не подням, а по часам !


3-1080558744
JibSkeart_
2004-03-29 15:12
2004.04.25
А что за фишка с ExecuteOtions -> eoAsyncExecute = true ?


1-1081705250
Klopan
2004-04-11 21:40
2004.04.25
Как в MessageBox вставить свою иконку ?


3-1080391582
Karlson
2004-03-27 15:46
2004.04.25
ВЫзов метода DBGrid1CellClick из любого места программы