Ir ao conteúdo

como verifico o index de uma edit?DELPHI 6


Visitante: sub_zero

Posts recomendados

Visitante: sub_zero
 
Postado

Tá eu sei, não existe a propriedade "index" no Delphi. E esse é o meu problema, eu preciso verificar 50 edits com "IF", verificar se existe ou não algo escrito nelas... Por ser 50 edits o if iria ficar trigigantesticamente enorme imagine - " IF (trim(edit1.text) = ' ') or/and (trim(edit2... (trim(edit50.text) = ' ') THEN

Então eu tava vendo uma maneira de fazer o if dentro de um for que fosse do 1 até o 50... só que o meu problema está na hora de "falar" pro DELPHI o indice das benditas edits, no DELPHI por padrão as edits vem nomeadas edit1, edit2, edit3 em diante, então eu queria fazer mais ou menos assim:

Var x: integer

Var campo: array[1..50] of boolean //definirá se a edit foi ou não preenchida

begin

for x:= 1 to 10 do

begin

if trim(edit[- xx -].text) = ' ' then // indice que iria mudar junto com o a variavel x

begin

campo[x]:= false;

end

else

campo[x]:= true;

Acho que é com TComponent que iria funcionar, mas, não sei usar essa variavel, não sei MESMO! Já olhei na ajuda do Delphi, ja olhei em um monte de site... Enfim.

Se alguém na face da terra puder me ajudar com isso, obrigado! :lol:

  • Membro VIP
Postado

Olá! Seja bem vindo ao forum..

Você precisa (como ja sabes) fazer um loop e acessar cada edit através do controlador do loop. E para isso usamos sim o ComponentCount e o Components[index]..

Funciona da seguinte forma:

Para comecar, ComponentCount retorna o numero de componentes, por exemplo 2 (se tivermos 2 TEdits).

Mas o Componentes[index] começa a partir do 0, portanto devemos fazer no loop:

for i := 0 to ComponentsCount-1

se eu tinha 2 components no ComponentsCount, vão retornar 0 (1-1) e 1 (2-1), ou seja, 2!

Mas isso eu imagino q você ja saiba.. só estou explicando caso não saiba.. se não souber e quiser que explique melhor, por favor avise.

Sendo assim, eu bolei o codigo completo aqui que acho que é o suficiente pra você terminar de entender..

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i := 0 to ComponentCount-1 do
begin
if Components[i] is TEdit then
TEdit(Components[i]).Text = '' then
{{{ Nao tem nada na edit!!! }}}
end;
end;

Qualquer coisa poste!

Editado:

pra variar Eu esqueci de falar o seguinte:

Você checa se as TEdits são iguais a ' ', mas ' ' não é um valor vazio! Tem um espaço aí!

Valor vazio em strings é ''

Abraços!

Visitante: sub_zero
 
Postado

N-O-S-S-A! Cara, é muito fácil, e eu me matando aqui xD.

Entendi o -1 no final do for, demorei um tempinho, mas na hora de adaptar para o programa aqui eu acabei entendendo. Eu tinha uma noção mais ou menos de como fazer, mas eu nunca ia chegar na solução ComponentCount, não mesmo. Eu to acostumado com VB que ja vem com uma propriedade Index nos componentes o que facilita um poucos as coisas. Ah sim, em relação ao espaço vazio nas Tedits eu ja tinha me deparado com esse problema. Resolvi com "trim" mas acabei fazendo a besteira do checamento com ' ' logo em seguida, o que não ajudou muito xD. Bom, enfim, arrumei né.

Obrigado, um abração e feliz natal!

  • Membro VIP
Postado
N-O-S-S-A! Cara, é muito fácil, e eu me matando aqui xD.

Entendi o -1 no final do for, demorei um tempinho, mas na hora de adaptar para o programa aqui eu acabei entendendo. Eu tinha uma noção mais ou menos de como fazer, mas eu nunca ia chegar na solução ComponentCount, não mesmo. Eu to acostumado com VB que ja vem com uma propriedade Index nos componentes o que facilita um poucos as coisas. Ah sim, em relação ao espaço vazio nas Tedits eu ja tinha me deparado com esse problema. Resolvi com "trim" mas acabei fazendo a besteira do checamento com ' ' logo em seguida, o que não ajudou muito xD. Bom, enfim, arrumei né.

Obrigado, um abração e feliz natal!

Disponha, feliz natal para você e sua familia também ;)

Aproposito, o ComponentCount e o Components se referem ao Application..

Existem coisas legais la.. utilize o code insight para explorar..

Digite em algum evento no codigo Application. (aperte o "." e espere aparecer o code insight)..

Abraços!

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!