|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.02.2010, 10:12 | #1 |
Новичок
Джуниор
Регистрация: 05.02.2010
Сообщений: 2
|
Как передать в функцию параметр разных типов
Есть 2 разных объекта с похожими методами, например, O1:Type1 и O2:Type2 (напр., SqlDataset из вкладки DbExpress и Dbf)
Код:
Код:
Код:
PS Извините, если вопрос поднимался, но что-то после многочасового копания в Гугле так и не нашел. Вероятно, руки кривые :-) У нас принято оформлять код специальным тэгом - при помощи кнопочки "#". Только... И не значком #. И не РНР-кодом. И не значком цитаты. И не собственными "ручками". Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе... Модератор Исправился. Но вообще-то у меня не код. Скорее псевдокод для иллюстрации Последний раз редактировалось borispnz; 06.02.2010 в 08:33. |
05.02.2010, 11:14 | #2 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
Если у классов объектов, с которыми тебе нужно работать, имеется общий предок, то объявляй функцию, указывая этого общего предка в качестве типа параметра. То есть, наример, TStringList имеет предком класс TStrings и какой-нибудь TListBoxStrings тоже имеет предком TStrings. И для работы с объектами обоих типов мы объявляем такую процедуру:
Код:
|
05.02.2010, 11:25 | #3 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Open array parameters
Это работает медленнее, чем вызов перегруженной функции, так что злоупотреблять такими выкрутасами не стоит.
пыщь
|
05.02.2010, 20:58 | #4 |
Заблокирован
Регистрация: 11.12.2009
Сообщений: 133
|
использовать тип variant
|
05.02.2010, 21:08 | #5 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Код:
Код:
|
06.02.2010, 08:37 | #6 | |
Новичок
Джуниор
Регистрация: 05.02.2010
Сообщений: 2
|
Цитата:
Для объектов моего класса (напр.,SqlExpr) неприменим. Variant используется только для простых типов. (Совет: прежде чем подсказать, попробуй сам на живом Delphi; многие советы отпадут автоматически) Можно подробнее? Ничего не понял Последний раз редактировалось borispnz; 06.02.2010 в 08:43. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как передать параметру записи, что в нем параметр это статический массив с данными? | SkAndrew | Общие вопросы Delphi | 6 | 26.06.2009 02:02 |
Как передать параметр в другое(модальное) окно? | kiber0net0 | Общие вопросы Delphi | 3 | 21.09.2008 13:03 |
Как передать параметр? | Иллидан | Общие вопросы Delphi | 8 | 12.07.2008 12:57 |
как связать поля разных типов | doncova1 | Microsoft Office Access | 5 | 11.03.2008 00:15 |