Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > доступ к элементу массива класса из


Автор: SANCHO123 16.4.2009, 19:08
Здравствуйте!

Есть классы TElement и TShema 


Код

TElement=class
private
  FSlaveElements: TList;

  function GetElements(index: integer): TElement; 
  procedure SetElements(index: integer; const Value: TElement); 
  ...
public
  property SlaveElements[index: integer]: TElement read GetElements write SetElements;
  procedure AddSlaveElement(value: TElement);
end;

TShema=class
private
  FElements= array of TElement;
  function GetElements(Index: integer): TElement;
  ...
public 
  property Elements[Index: integer]: TElement read GetElements;
  Create(AElementCount: integer);
end;



Например:

S:=TShema.Create;
......
S.Elements[1].AddSlaveElement(S.Elements[2]);
S.Elements[1].SlaveElements[0] -- и это как бы ссылка на 2 элемент

что нужно писать в function GetElements и procedure SetElements в классе TElement ??????
можно ли в FSlaveElements хранить указатели на S.Elements[i] ???

Автор: RomanEEP 17.4.2009, 14:31
Код

function GetElements(index: integer): TElement; 
begin
  Result := TElement(FSlaveElements[Index]);
end;

procedure SetElements(index: integer; const Value: TElement); 
begin
   FSlaveElements[Index] := Value;
end;


Цитата(SANCHO123 @  16.4.2009,  19:08 Найти цитируемый пост)
можно ли в FSlaveElements хранить указатели на S.Elements[i] ???

указатели можно хранить где угодно и в любом количестве, втч на один и тот же объект
главное, чтобы объекты удалялись ТОЛЬКО В ОДНОМ месте. В твоем случае это лучше сделать внутри TShema.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)