Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou tentando fazer uma variável receber um tipo de texto de acordo com as checkbox selecionadas.
então fiz 2 variáveis 1 chamada "add" e outra chamada "armazem" as 2 coloquei string
então coloquei isso aqui
if checkbox2.checked then add:=armazem+', Jardim de inverno' else
if checkbox3.checked then add:=armazem+', Lareira' else
if checkbox4.checked then add:=armazem+', Churrasqueira' else
if checkbox5.checked then add:=armazem+', Piscina';
isso seria tipo um opcional e quero que apareça coisas do tipo "Jardim de Inverno, Lareira" ou Lareira, Piscina.
E só está aparecendo uma das opções quando coloco para aparecer em uma edit.
Vlw pela ajuda adiantado =p.
>
Cicno, Tudo bem?!
Então, o que você fez de errado aqui é colocar um check dependente do outro. Não utiliza os ELSE. Eles são independentes. O codigo deve ficar assim:
armazem := '';
if checkbox2.checked then
armazem:=armazem+', Jardim de inverno';
if checkbox3.checked then
armazem:=armazem+', Lareira';
if checkbox4.checked then
armazem:=armazem+', Churrasqueira';
if checkbox5.checked then
armazem:=armazem+', Piscina';
armazem := copy(armazem, 3, length(armazem) -2);
Pelo que entendi é isso que você precisa!
Espero ter ajudado! Até mais!
Deu certo vlw pela ajuda... sem querer abusar mais se oq isso aqui quer dizer?
armazem := copy(armazem, 3, length(armazem) -2)
rs, nao eh abuso nao, relaxa
A função COPY serve para cortar as palavras. Ela retorna pra mim uma string que é parte da string passada como parametro. A variavel armazem passará por varios checks mas ficará com o conteudo inicial ", ". Com o copy estou cortando ela. Exemplo:
Conteudo da armazem = ', Lareira, Piscina'
Esse conteudo inicial não é interessante pra gente, por isso vamos descartá-lo com o copy
Imagine os caracteres numerados
| , | | L | a | r | e | i | r | a | , | | P | i | s | c | i | n | a |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| 12| 13| 14| 15| 16| 17| 18|
O que me interessa é o caracter 3 para frente. A funcão LENGTH retorna a quantidade de caracteres da string. Eu estou descartando as duas primeiras, entao preciso da "terceira letra até a quantidade - 2)
copy(armazem, 3, length(armazem) -2)
Consegui ser clara? tenho dificuldades de explicar..rs Se ainda fico confuso me fla q eu tento denovo!
>
rs, nao eh abuso nao, relaxa
A função COPY serve para cortar as palavras. Ela retorna pra mim uma string que é parte da string passada como parametro. A variavel armazem passará por varios checks mas ficará com o conteudo inicial ", ". Com o copy estou cortando ela. Exemplo:
Conteudo da armazem = ', Lareira, Piscina'
Esse conteudo inicial não é interessante pra gente, por isso vamos descartá-lo com o copy
Imagine os caracteres numerados
| , | | L | a | r | e | i | r | a | , | | P | i | s | c | i | n | a |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| 12| 13| 14| 15| 16| 17| 18|
O que me interessa é o caracter 3 para frente. A funcão LENGTH retorna a quantidade de caracteres da string. Eu estou descartando as duas primeiras, entao preciso da "terceira letra até a quantidade - 2)
copy(armazem, 3, length(armazem) -2)
Consegui ser clara? tenho dificuldades de explicar..rs Se ainda fico confuso me fla q eu tento denovo!
Conseguiu sim, não sabia desse comando vai me ajudar bastante.
Brigadão
Cicno, Tudo bem?!
Então, o que você fez de errado aqui é colocar um check dependente do outro. Não utiliza os ELSE. Eles são independentes. O codigo deve ficar assim:
armazem := '';
if checkbox2.checked then
armazem:=armazem+', Jardim de inverno';
if checkbox3.checked then
armazem:=armazem+', Lareira';
if checkbox4.checked then
armazem:=armazem+', Churrasqueira';
if checkbox5.checked then
Pelo que entendi é isso que você precisa!
Espero ter ajudado! Até mais!