Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.029 c
1-1080350247
Хэтч
2004-03-27 04:17
2004.04.11
Хочу чтобы при считывание из файла текст был разного стиля...


14-1082358913
Ega23
2004-04-19 11:15
2004.04.11
Редактор inf-файлов


3-1081927997
Вячеслав
2004-04-14 11:33
2004.04.11
Как получить выделенный текст в DBGrid


1-1082824363
Я Ламер
2004-04-24 20:32
2004.04.11
Классы и TObject


1-1082553061
NumLock
2004-04-21 17:11
2004.04.11
Непонятка с TThread.




   Наверх