Array
(
)

Lista de valores

sistemald
   - 24 fev 2005

Queria ter uma variavel com um lista de valores.
ex.:
lista:= [´CLIENTE´,´VENDEDOR´,´FUNCIONARIO´,´FORNCEDOR´];
Todos os valores seriam do tipo string.
Para que depois eu faça
[tagcod]if tabela.tipo.asstring in lista then
begin
....

Massuda
   - 24 fev 2005

Você poderia usar um TStringList para isso.
Adicione as strings usando o método Add.
Para saber se uma determinada string está na lista, use o método IndexOf.
Se sua lista puder ser ordenada alfabeticamente (você não precisa preservar a ordem de inserção, por exemplo), faça a propriedade Sorted = True antes de incluir as strings. Isso diminuirá o tempo gasto pelo método IndexOf.

Marcelo Saviski
   - 24 fev 2005

Bem assim, bem assim como vc quer não dá (com conjuntos)
poderia usar uma StringList
var
StringList: TStringList;

No OnCreate
#Código

  StringList := TStringList.Create;


No OnDestroy
#Código
  Stringlist.Free;

Adicionana os clientes
#Código
  Stringlist.Add(´CLIENTE´);
Stringlist.Add(´VENDEDOR´);
Stringlist.Add(´FUNCIONARIO´);
Stringlist.Add(´FORNCEDOR´);

e o [i]tabela.tipo.asstring in lista [/color][/i] ficaria como:
#Código
if StringList.IndexOf(Tabela.Tipo.AsString) <> -1 then
begin
...

se os tipos não fossem strings, fossem numeros poderia usar conjuntos

sistemald
   - 24 fev 2005

valeu galera, este recurso ja conhecia, mas se podesse trabalhor como se fosse números seria mais facil.
Valeu pela atenção, vou usar Stringlist.

sistemald
   - 24 fev 2005

valeu galera, este recurso ja conhecia, mas se podesse trabalhor como se fosse números seria mais facil.
Valeu pela atenção, vou usar Stringlist.

salsa
   - 24 fev 2005

como assim trabalhar com numeros? vc tah dizendo a posiçao? ueh ... qndo vc vai inserindo vc pode pegar a posiçao dela na lista ou sei la...
ou colocar ex ... Add(1#teste);
e depois usar copy pra pegar oq vc quer.... :P
falowz :P

salsa
   - 24 fev 2005

como assim trabalhar com numeros? vc tah dizendo a posiçao? ueh ... qndo vc vai inserindo vc pode pegar a posiçao dela na lista ou sei la...
ou colocar ex ... Add(1#teste);
e depois usar copy pra pegar oq vc quer.... :P
falowz :P

andremuller
   - 24 fev 2005

você poderia ser um pouco mais específico na sua necessidade?