| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > ошибка с function(Components[i]) as TsomeControl) |
| Автор: Bose 10.8.2006, 15:16 | ||||||
есть ф-ция:
и аналогичная
вызваю её вот так вот:
и получаю ошибку: There is no overloaded version of 'PrepareCombobox' that can be called with these arguments. и в то же время, если создать переменную типа TDBComboBoxEh. Присвоить ей Self.Components[i]) as TDBComboBoxEh и передать в виде параметра уже переменную, то всё происходит на ура. Но такой вариант меня не устраивает, потому что планируется по ходу работы добавлять перезагруженные варианты ф-ции для других типов контролов. п.с. Дельфи 6. |
| Автор: Bose 10.8.2006, 15:48 |
| п.с. только что выяснил, что подобное поведение появляется, только в случае, если используются перегруженные (overload) функции. |
| Автор: Snowy 10.8.2006, 15:58 |
| Поправь параметр на ComboBox : TCustomComboBox; Добавлено @ 16:02 Или сделай один вариант функции, принимающеё TWinControl, а уже в ней разбирайся, что за контрол пришёл. Добавлено @ 16:02 И var убери |
| Автор: Bose 10.8.2006, 16:07 | ||
Убрал и всё заработало. Спасибо, Snowy! добавлено:
там не получилось бы. у этих контролов почему-то нет общего предка, обладающего нужными мне свойствами. А менять код готовых чужих компонентов - ой как не хочется. |
| Автор: Snowy 10.8.2006, 16:25 |
| Просто варом можно передавать только переменные. Приведённая переменная уже таковой не считается. Всегда пожалуйста. Добавлено @ 16:27 ЗЫ. Передавать объекты варом - нет смысла - они и так указатели. Если только ты не хочешь создать новый объект, вместо переданного. |