Fórum Como saber se existe registro em TValueListEditor? #317772
29/03/2006
0
Antes de iniciar, quero dizer a todos que este componente não tem items.count não, portanto, um [b:734d2770ae]for i ...[/b:734d2770ae] não tem como fazer :(
Eu queria saber se existe algum dado dentro deste componente, se não existir, quero desabilitar o botão1, caso contrário quero habilitar o botão1
------------------
Bom, para inserir um dado eu fiz assim:
procedure ...
begin
__ValueListEditor1.InsertRow(´texto da primeira coluna´,´texto da segunda coluna´,True);
end;
Aguardo a ajuda de vocês, estou precisando muito dessa ajuda!
Falowww

Onjahyr
Curtir tópico
+ 0Posts
29/03/2006
Vinicius2k
Dois exemplos de como ´encontrar´ chaves e valores de chaves no TValueListEditor:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | { ... } var Linha: Integer; begin if ValueListEditor1.FindRow(´SuaChave1´, Linha) then ShowMessage(´A chave "SuaChave" está presente na linha ´ + IntToStr(Linha)) else ShowMessage(´A chave "SuaChave" não existe.´); end; { ... } var Valor: string; begin Valor := ValueListEditor1.Values[´SuaChave´]; if Valor <> ´´ then ShowMessage(´O valor de "SuaChave" é ´ + Valor) else ShowMessage(´"SuaChave" não possui valor.´) end; |
T+
Gostei + 0
30/03/2006
Rilder
Desta maneira que você colocou realmente funciona, porém, o programador tem que informar o nome de uma das chaves. Se você não sabe qual a chave que se encontra lá?
POR EXEMPLO:
Segundo o companheiro que colocou a dúvida, ele quer saber se existe um registro lá! para depois habilitar ou não um determinado botão.
Digamos que o componente em questão não tem nenhum dado, com um botão eu incluo um registro conforme o código que ele citou que insere. Aí, ele tem outro botão que apaga os dados de dentro, e quando não encontrar nenhum registro lá dentro ele deseja desabilitar este botão, então, como saber se ainda tem registro dentro????
Essa também é minha dúvida!
Obrigado.
Gostei + 0
30/03/2006
Vinicius2k
Se a necessidade é apenas saber se existe ou não algum dado, bastaria ler a propriedade [b:a897e99f7d]RowCount[/b:a897e99f7d] (subtraindo 1 se as colunas possuirem título).
Gostei + 0
31/03/2006
Onjahyr
Parece que este componente fica com um registro nulo, toda vez quando faço o laço [b:4be045dc6e]for[/b:4be045dc6e], ele diz que existe um registro lá, mas não tem nada!
Se tem 3 registros, ele diz que tem 3, se 2, tem 2, se 1, tem 1, se 0, diz que tem 1. Sempre tem um!!!!!!
Existe outra função?
Eu tô colocando assim:
Alias, já fiz de várias formas e não surtiu efeito:
[b:4be045dc6e]procedure[/b:4be045dc6e] Tfrm_CreateUser.Button1Click(Sender: TObject);
[b:4be045dc6e]var[/b:4be045dc6e]
__i : integer;
[b:4be045dc6e]begin
__for[/b:4be045dc6e] i := ValueListEditor1.RowCount -1 [b:4be045dc6e]downto[/b:4be045dc6e] 0 [b:4be045dc6e]do
____begin
______if[/b:4be045dc6e] i <= 0 [b:4be045dc6e]then[/b:4be045dc6e]
________ShowMessage(IntToStr(i))
_______[b:4be045dc6e]else[/b:4be045dc6e]
________ShowMessage(´Oi´);
____[b:4be045dc6e]end;
end;[/b:4be045dc6e]
coloquei:
[b:4be045dc6e]for[/b:4be045dc6e] i := 0 [b:4be045dc6e]to[/b:4be045dc6e] ValueListEditor1.RowCount -1 [b:4be045dc6e]do[/b:4be045dc6e]
...
Aguardo.... Agradecido pela colaboração.
Gostei + 0
31/03/2006
Vinicius2k
Como eu disse, se a as colunas contiverem títulos, sempre haverá uma linha: a linha do título.
Para ter a contagem correta, precisa-se subtrair 1.
Gostei + 0
31/03/2006
Onjahyr
[b:031e2ac4e1]procedure[/b:031e2ac4e1] Tfrm_CreateUser.Button1Click(Sender: TObject);
[b:031e2ac4e1]var[/b:031e2ac4e1]
__i : integer;
__S,S2 : [b:031e2ac4e1]String;
begin
__for[/b:031e2ac4e1] i:= 1 [b:031e2ac4e1]to[/b:031e2ac4e1] Pred(ValueListEditor1.RowCount) [b:031e2ac4e1]do
___begin[/b:031e2ac4e1]
_____S2:= ValueListEditor1.Keys[i];
_____S := ValueListEditor1.Values[S2];
_____[b:031e2ac4e1]if[/b:031e2ac4e1] S = ´´ [b:031e2ac4e1]then[/b:031e2ac4e1]
______btRemover1.Enabled:=False; // Visto que não pode haver valores null
___[b:031e2ac4e1]end;
end;[/b:031e2ac4e1]
Gostei + 0
31/03/2006
Onjahyr
Falowww
Robson
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)