0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 45
1

как правильно обратится к унаследованному свойству объекта в массиве объектов в качестве параметра функции

12.05.2016, 19:27. Показов 1371. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
всем привет подскажите решение такой ситуации
попробую описать проблему:допустим есть класс

Delphi
1
TCustomAAA=class()
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2016, 19:27
Ответы с готовыми решениями:

Как обратится к свойству объекта
Интересует следующий вопрос! В справочнике Номенклатура выбираем любой элемент, у этого...

Как передать функции в качестве параметра имя объекта jQuery?
Имеется функция, которая работает с объектом например: $('.photos img'). Имя селектора CSS И...

Как правильно использовать массив в качестве параметра функции ?
Здравствуйте ! Подскажите, пожалуйста правильный синтаксис описания функции, в качестве параметра...

Как правильно обратится к свойству RowCount чтобы изменить его значение?
StringGrid1->RowCount ?

5
AxBxC=X
152 / 132 / 58
Регистрация: 27.04.2016
Сообщений: 540
12.05.2016, 19:28 2
Цитата Сообщение от Tromani Посмотреть сообщение
всем привет подскажите решение такой ситуации
попробую описать проблему:допустим есть класс
Начало интригующее!
0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 45
12.05.2016, 19:40  [ТС] 3
всем привет подскажите решение такой ситуации
попробую описать проблему:допустим есть класс

Delphi
1
2
3
4
5
6
7
8
TCustom_MyClassParent=class(TObject)
protected
  Fparam:integer;
  procedure DoSomething;virtual;
public 
  constructor Create;
  property param:integer read Fparam write Fparam;
end;
и есть десяток его наследников, ну неважно отличающихся переписанной процедурой DoSomething, например
Delphi
1
2
3
4
5
6
7
8
9
10
11
TmyClass_AAA=class(TCustom_MyClassParent)
protected
  procedure DoSomething;override;
public 
end;
 
TmyClass_BBB=class(TCustom_MyClassParent)
protected
  procedure DoSomething;override;
public 
end;
и так далее

Добавлено через 6 минут
ну и в конце концов мы имеем

Delphi
1
2
3
var
  AAA:array of TmyClass_AAA;
  BBB:array of TmyClass_BBB;
так вот теперь собственно в чем проблема

есть некоторое действие которое хотелось бы засунуть в процедуру
например изменение значения param у всех элементов массива независимо от ААА оно ВВВ или CCC

как?
Delphi
1
2
3
4
5
6
7
8
procedure MassParamChanger(myClassArray:array of ?);
var
  i:integer;
begin
  if Length(myClassArray)>0 then
  for i:=0 to High(myClassArray) do
    myClassArray[i].param:=0;
end;
вот как сделать чтоб процедурка принимала в качестве параметра и ААА и ВВВ и ССС и т.д.
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
12.05.2016, 19:45 4
Лучший ответ Сообщение было отмечено Tromani как решение

Решение

array of TCustom_MyClassParent

Добавлено через 1 минуту
а эти массивы
array of TmyClass_AAA;
array of TmyClass_BBB;

вообще не нужны - array of TCustom_MyClassParent может хранить объекты любого класса-наследника
1
AxBxC=X
152 / 132 / 58
Регистрация: 27.04.2016
Сообщений: 540
12.05.2016, 19:46 5
как правильно обратится к унаследованному свойству объекта в массиве объектов в качестве параметра функции
Это?
Delphi
1
2
3
4
5
6
7
8
var
  arr_obj : array of TCustom_MyClassParent;
---
  SetLength(arr_obj,5);
----
  arr_obj[4] :=  TmyClass_BBB.Create;
---
 my_func( arr_obj[4].Param );  // <--- вот оно!
0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 45
12.05.2016, 20:02  [ТС] 6
хм... ща попробую...

Добавлено через 6 минут
да все ок, спасибо
0
12.05.2016, 20:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2016, 20:02
Помогаю со студенческими работами здесь

Как обратиться к свойству объекта в массиве?
у меня есть массив объектов object obj = new object; product audi = new product(45000, &quot;Audi...

Сортировка массива объектов по свойству объекта
Задача: отсортировать массив объектов по свойству объекта const PostApi = { posts: } ...

Сортировка массива объектов класса по свойству объекта
есть класс Order в нём есть свойство string Client есть массив Order orders как отсортировать...

Сортировка массива объектов класса по свойству объекта
public class SortByName : IComparer&lt;Order&gt; { public int Compare(Order o1, Order o2) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru