DevMedia

Lista de valores

0
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
....


Respostas (7)

0
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.


0
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 tabela.tipo.asstring in lista 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


0
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.


0
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.


0
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


0
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


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