Array indexada por string. É possivél?

Delphi

23/07/2007

Olá,

no delphi existe alguma forma de criar um array indexada por string?

ou teria que criar uma classe do tipo TObjectList e fazer as implementações?


grato :)


Otto

Otto

Curtidas 0

Respostas

Jáder Medeiros

Jáder Medeiros

23/07/2007

Tem sim. A fantástica classe TStringList.


GOSTEI 0
Otto

Otto

23/07/2007

com a stringlista eu ja usava, mas, de forma implementada... nela não posso colocar meus objetos...

terei de fazer com tobjectlist mesmo =/

valeu


GOSTEI 0
Jáder Medeiros

Jáder Medeiros

23/07/2007

Pode colocar os objetos também.

function TStringList.AddObject(const S: string; AObject: TObject): Integer;

Onde você passa sua chave (String) no parâmetro S e seu objeto no parâmetro AObject e a classe ainda te rotorna o índice no qual seu objeto foi colocado.

Esta classe é demais!


GOSTEI 0
Beppe

Beppe

23/07/2007

O oTTo Mostaert ainda programa? Achava que tu já era VP de uma multinacional situada em Olinda. kkkkkkkkkk

Qq hora eu chego no café

Flw


GOSTEI 0
Otto

Otto

23/07/2007

O oTTo Mostaert ainda programa? Achava que tu já era VP de uma multinacional situada em Olinda. kkkkkkkkkk Qq hora eu chego no café Flw



Vp eueuuue longe disso rapaz... to resolvendo umas broncas por aqui mesmo


jader, obrigado pela dica :D


abraço


GOSTEI 0
Jax

Jax

23/07/2007

Eu fiz o seguinte:

Criei a seguinte sequencia de classes:

type
  TIntegerList = class(TStringList)
  ...
    function Add(const I : Integer) : Integer;
    function AddObject(const I : Integer; AObject : TObject) : Integer;
  ...
  end;

  TObjectList = class(TIntegerList)
  ...
    function Add(const O : Object) : Integer;
    function AddObject(const O : TObject; AObject : TObject) : Integer;
  ...
  end;


No TIntegerList nas implementações de Add, AddObject, IndexOf e assim por diante não esqueça de usar como no seguinte exemplo:

  Result := inherited IndexOf(FormatFloat(´0000000000´, I));


E no constructor use o codigo abaixo para poder ordenar corretamente:

  CaseSensitive := False;



GOSTEI 0
POSTAR