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

Вниз

Один метод для разных типов передаваемых в него параметров   Найти похожие ветки 

 
alextov   (2004-04-20 14:21) [0]

Написал класс. Он выполняет определенные действия надDBGrid. Есть там свойство ActiveGrid :TDBGrid, которое собственно и определяет над каким DBGrid выполняются операции. C этим свойством работает с десяток методов.
Но я хочу чтоб также можно было работать при помощи этого класса не только с TDBGrid, но и с TDBGridEh. Большинство свойств у них одинаковые, но предки разные.
Можно было бы обьявить свойсто ActiveGrid как TCustomGrid (ближайший общий предок), но у него нет свойств columns, fieldname и тд, с которыми я работаю.
А переписывать каждый метод по два раза(код получается полностью идентичен), но с разным типом ActiveGrid - как-то некрасиво получается. Или перегружаемые методы использоватьили проверять (типа if ActiveGrid is TDBGrid then ... else...)  - тоже 2 раза один и тот же код переписывать.
Может многоуважаемый All подскажет что-то интересное...?


 
Anatoly Podgoretsky ©   (2004-04-20 14:28) [1]

Приведение типов.


 
Goida ©   (2004-04-20 14:30) [2]

Забей. Пиши два раза... Легче потом будет и тебе разбираться и тем, кто будет твой код разбирать.


 
Goida ©   (2004-04-20 14:32) [3]

Тебе в любом случае придется что-то проверять: или то, что ты сказал, или какой другой признак. А потом приводить, как сказал АП... Другого пути нет.


 
alextov   (2004-04-20 14:48) [4]

2 AP
Но мы же не можем привести TDBGrid к TDBGridEh и наоборот.
обьявляем
  ActiveGrid: TCustomGrid;
тогда
begin
   (ActiveGrid as TDBGrid).Columns....
//но если в ActiveGrid присвоили TDBGridEh - он же не приведется и будет ошибка.
Придется писать
   if ActiveGrid is TDBGrid then (ActiveGrid as TDBGrid).Columns....
   if ActiveGrid is TDBGridEh then (ActiveGrid as TDBGridEh).Columns....

И опять по два раза переписывать один итот же код.
Или я что то не так понял?

2 Goida
Заманчиво, заманчиво..., но душа хочет экибаны :))



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

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

Наверх




Память: 0.47 MB
Время: 0.094 c
4-1075899409
graY
2004-02-04 15:56
2004.04.11
Как програмно щелкнуть на кнопке типа TToolButoon ведь у ...


14-1082120862
Wiz@rd
2004-04-16 17:07
2004.04.11
IdPortMapper на WinAPI


1-1080151683
Роман
2004-03-24 21:08
2004.04.11
BMP -> массив


3-1081770754
Урмат
2004-04-12 15:52
2004.04.11
связь между таблицами


11-1068123025
Ал
2003-11-06 15:50
2004.04.11
Не могу в D6 в KOL проект добавить информацию о версии