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

Вниз

Передача в процедуру параметра разных типов   Найти похожие ветки 

 
borispnz ©   (2010-02-05 09:59) [0]

При работе столкнулся с такой ситуацией. Есть 2 разных объекта с похожими методами, например, O1 и O2
O1.Add, O1.Value
O1.Add, O1.Value
Как передать в функцию заранее неизвестно что передаем?Примерно так

Funct(O: Type)
 O.Add()
 Result := O1.Value

x := Funct(O1)
x := Funct(O2)

Понятно, что можно использовать overload
Funct(O: Type1); overload
Funct(O: Type2); overload
Но это не выход - слишком много разнородных объектов по типам и количеству параметров может быть. Чувствую, что в направлении pointer. Но вот как? Заранее надеюсь на помощь

PS Извините, если вопрос поднимался, но что-то после многочасового копания в Гугле так и не нашел. Вероятно, руки кривые :-)


 
Сергей М. ©   (2010-02-05 10:07) [1]

Если overload не выход, то решений минимум 2:

1. параметр передается как Variant или OleVariant
2, параметр передается как IUnknown


 
icWasya ©   (2010-02-05 11:01) [2]

Насколько разные типы у O1 и O2?
Есть ли у этих типов общий предок?
Если O1  и О2 - наследники TControl, то можно посмотреть в сторону GetMethodAddress.


 
Игорь Шевченко ©   (2010-02-05 12:14) [3]


> Но это не выход - слишком много разнородных объектов по
> типам и количеству параметров может быть. Чувствую, что
> в направлении pointer. Но вот как?


передавать интерфейс, интерфейс реализовывать у каждого класса из передаваемых.


 
oxffff ©   (2010-02-05 12:50) [4]


> borispnz ©   (05.02.10 09:59)  


Читать про полиморфизм.



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

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

Наверх




Память: 0.47 MB
Время: 0.008 c
6-1240921108
Сергей
2009-04-28 16:18
2011.08.28
Как удалить динамически созданные ClientSocket при OnDisconnect?


15-1304994305
IPranker
2011-05-10 06:25
2011.08.28
Скачать видео со станицы.


1-1265075139
gecha
2010-02-02 04:45
2011.08.28
Автонаведение курсора на определенный объект


2-1305328162
TheEd
2011-05-14 03:09
2011.08.28
в разных DBF-файлах строки разного формата - как прочитать?


15-1304428882
Дмитрий С
2011-05-03 17:21
2011.08.28
Как вы относитесь к работе, которой сами руководите?