Logo Hardware.com.br
agata sayuri
agata sayuri Novo Membro Registrado
8 Mensagens 0 Curtidas

Delphi

#1 Por agata sayuri 28/09/2008 - 14:41
Por favor, algum expert em programação em Delphi me ajude:

Estou desenvolvendo um programa... Nele esta contido um edit, um memo, e um botão. No evento onclique do botão inseri o seguinte código:

if
(edit1.text=edit1.text + ' ola') then
begin
memo1.text:= ' funcionou' ;
end;

Não preciso explicar muita coisa quem meche ja sabe o quer dizer o código. O problema é que, quando aperto o botão, não aparece nada, sendo que o óbvio seria aparecer qualquer coisa que fosse digitada no edit1+ a palavra ola.

A minha duvida é porque não deu certo?
E qual seria a forma certa?

Por favor gente preciso disso o mais rápido possivel. Bjs

se tiver algum programador ai que queira me add, meu deus vai ser muito bom [email]agatasayuri@hotmail.com[/email]
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#3 Por tpcvasco
28/09/2008 - 22:37
Nada disso, vc não está fazendo oq imagina, sua lógica está incorreta.
Leia novamente o seu código:
if (edit1.text=edit1.text + ' ola') then .....
Ou seja
se o texto de edit1 for igual ao texto de edit1 + 'ola', então faça alguma coisa.

Quando o botão é clicado ele testa se o texto é igual à ele mesmo mais alguma coisa. Como isso nunca acontece, nada é feito. Nesse código, em nenhum momento vc escreveu 'ola' no edit1.
Acho q o código q vc quer é:
edit1.text := edit1.text + 'ola';
(ou algo assim, não lembro mto bem da sintaxe do Delphi).
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
agata sayuri
agata sayuri Novo Membro Registrado
8 Mensagens 0 Curtidas
#4 Por agata sayuri
29/09/2008 - 01:44
rindo_ate_agora.pngBrigada lindinho, mas essa expressão eu ja usei:
edit1.text := edit1.text + 'ola';
oque vai acontecer aqui é que , toda a vez que clicar no botão, aparecerá ""olá"" dentro do edit.

nao_sei.gifnao_sei.gifnao_sei.gif
Bom, tentei usar uma condição (IF) e obrigada por me explicar o que eu não percebi. MAS lindinho eu queRo fazer o seguinte, tudo que eu digitar na edit, irá seguir de um código chave, que será ""olá"", então, independente de qualquer coisa que seja digitada no edit, se a ultima palavra for ""olá"", aparecerá no memo FUNCIONOU.

Eu quero qualquer coisa digitada, e somente quando a palavra for carescentada por ultimo, dentro desse edit, apareça no memo FUNCIONOU.

Me ajudaaa.. Brigadafiquei_triste.png
Desbravador_
Desbravador_ Membro Senior Registrado
164 Mensagens 5 Curtidas
#5 Por Desbravador_
29/09/2008 - 09:50
A expressão que você fez, sempre será falsa.

edit1.text sempre será diferente de edit1.text+'ola'

str1=edit1.text;
a=length(str1);//Tamanho da string
if (copy(str1,a-2,3)='ola') then ...

você tembém pode usar str1=lowercase(str1);
para colocar todas as letras minúsculas para facilitar a comparação e StringReplace para retirar todos os espaços em branco
agata sayuri
agata sayuri Novo Membro Registrado
8 Mensagens 0 Curtidas
#6 Por agata sayuri
29/09/2008 - 11:41
Desbravador_ disse:


rindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.png
Desbravador VC É UM GÊNIO!!

Muito obrigada, realmente funcionou. Era isso que eu queria.

Agora por favor, me explique todo o código. Tenho algumas duvidas sobre ele, pois, há funções ai que não conheço ainda, sou iniciante em linguagem de programação.

if (copy(str1,a-2,3)='ola') // porque "a-1,3"?
a=length(str1);//"length faz oque?

e me dê um exemplo no mesmo código com "lowercase" e "StringReplace" (que ainda não conheço), e me explique por favor.

Pois, parece que o código respeita apenas 3 palavras ""ola"". E se por acaso quiser acrescentar mais palavras? Porque ele não funciona? Oque seria preciso?

Muito obrigada gatinho. Vc é um gênio, nossa me ajudou d++ mesmo!
rindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.pngrindo_ate_agora.png
Seu_Madruga
Seu_Madruga Veterano Registrado
1.9K Mensagens 4 Curtidas
#7 Por Seu_Madruga
30/09/2008 - 09:22
Função Copy funciona assim:

Copy(String a ser copiada, Número do caracter inicial, Qauntidade a ser copiada);
EX: Copy('SEU_MADRUGA', 1, 3); Result := 'SEU'

Função length:

Restorna o número de Caracteres de uma String.

EX: length('SEU_MADRUGA'); Result := 11;

Espero ter ajudado
trabalho_duro.gif Amigo não é aquele que separa a briga mas sim aquele que chega na voadora! super.gif
agata sayuri
agata sayuri Novo Membro Registrado
8 Mensagens 0 Curtidas
#8 Por agata sayuri
30/09/2008 - 22:47
Seu_Madruga disse:


nao_sei.gif
Obrigada Lindinho, mas não me esclareceu muito. Pois tentei incluir isso, mas não deu certo porque?

procedure TForm1.Button1Click(Sender: TObject);
var
a:string;
b:integer;
begin

a:=(edit1.Text);
b:=length(a);
if
(copy(a,3,12)='eu estou bem') then
begin
memo1.Text:='funcionou';
end;

Porque isso não deu certo? Queria colocar a quantidade que eu quizesse. Ainda não dominei o código.

bjrindo_ate_agora.png
Seu_Madruga
Seu_Madruga Veterano Registrado
1.9K Mensagens 4 Curtidas
#9 Por Seu_Madruga
01/10/2008 - 11:29
Bom, tudo depende do que vc quer fazer:

Do jeito que está essa função Copy, se vc escrever 'eu estou bem' no edit, ela retornatá ' estou bem'.

Note que vc colocou na função Copy:

Copie o conteúdo de 'a', começe na posição 3 e copie 12 campos.

então o resultado da função ficará ' estou bem' e como vc está comparando ' estou bem' com 'eu estou bem', a comparação é falsa, então ele não entra no if para alimentar o memo com 'funcionou'

O que vc pretende fazer, explique de novo que eu monto um exemplo ok.
trabalho_duro.gif Amigo não é aquele que separa a briga mas sim aquele que chega na voadora! super.gif
agata sayuri
agata sayuri Novo Membro Registrado
8 Mensagens 0 Curtidas
#10 Por agata sayuri
01/10/2008 - 18:05
Seu_Madruga disse:


rindo_ate_agora.pngfiquei_triste.pngfiquei_triste.png

Olprocedure TForm1.Button1Click(Sender: TObject);
var
a:string;
b:integer;
begin
a:=(edit1.Text);
b:=length(a);
if
(copy(a,1,13)='ola como esta') then
begin
memo1.Text:='funcionou';
end;

Mas tem um problema. Só funciona se eu digitar no edit, "ola como esta". E se escrever algo mais antes dessa paavra não funciona.
Eu quero fazer o seguinte. Idependente do que eu escreva no edit, se for digitada a palavra chave, que no caso seria "ola como esta", então apareceria o que quiser escrevendo no memo, no casso, "funcionou".

Por exemplo, escrevo dentro do edit:

ssss dsdsd sdbsbdsbdbsdsdb ... ola como esta.

E no memo apareça, "funcionou". eu quero digitar qualquwer coisa, e no final se digitar essa palavra "ola como esta", apareça, "funcionou" no memo, se eu não digitar tal palavra não aparce nada. ésó isso.

Obrigada.rindo_ate_agora.png
agata sayuri
agata sayuri Novo Membro Registrado
8 Mensagens 0 Curtidas
#11 Por agata sayuri
07/10/2008 - 10:18
ALGUEM POR FAVOR PODE ME RESPONDER COMO FAZER ISSO AI EM BAIXO, EXPLICANDO DIREITINHO?

procedure TForm1.Button1Click(Sender: TObject);
var
a:string;
b:integer;
begin
a:=(edit1.Text);
b:=length(a);
if
(copy(a,1,13)='ola como esta') then
begin
memo1.Text:='funcionou';
end;

Mas tem um problema. Só funciona se eu digitar no edit, "ola como esta". E se escrever algo mais antes dessa paavra não funciona.
Eu quero fazer o seguinte. Idependente do que eu escreva no edit, se for digitada a palavra chave, que no caso seria "ola como esta", então apareceria o que quiser escrevendo no memo, no casso, "funcionou".

Por exemplo, escrevo dentro do edit:

ssss dsdsd sdbsbdsbdbsdsdb ... ola como esta.

E no memo apareça, "funcionou". eu quero digitar qualquwer coisa, e no final se digitar essa palavra "ola como esta", apareça, "funcionou" no memo, se eu não digitar tal palavra não aparce nada. ésó isso.
vitu__
vitu__ Novo Membro Registrado
3 Mensagens 0 Curtidas
#12 Por vitu__
29/10/2008 - 13:02
olha eu fiz aki e ficou +0- assim


procedure TForm1.Button1Click(Sender: TObject);
VAR
texto_desejado, texto_edit:string;
begin
texto_edit:=Edit1.Text;
texto_desejado:='ola como esta';
IF (Pos(texto_desejado, texto_edit) <> 0) AND ((Pos(texto_desejado, texto_edit)) > (length(texto_edit)-13)) THEN
BEGIN
memo1.Lines[0]:='funcionou';
END;;
end;



se tiver funcionado corretamente publica ai do contrario esclareça melhor sua pergunta..
agata sayuri
agata sayuri Novo Membro Registrado
8 Mensagens 0 Curtidas
#13 Por agata sayuri
10/11/2008 - 11:03
olha eu fiz aki e ficou +0- assim


procedure TForm1.Button1Click(Sender: TObject);
VAR
texto_desejado, texto_edit:string;
begin
texto_edit:=Edit1.Text;
texto_desejado:='ola como esta';
IF (Pos(texto_desejado, texto_edit) <> 0) AND ((Pos(texto_desejado, texto_edit)) > (length(texto_edit)-13)) THEN
BEGIN
memo1.Lines[0]:='funcionou';
END;;
end;


Menino é isso MESMO QUE EU QUERIA!!
Obrigada, de todo meu coração, ai meu deus sou sua escrava!! Pena que não tenho como te recompensar por isso, se não seria um prazer. rs

Mas me explique o POS, eu não entendi.

Corrija-me:
Length retorna em numero de caracteres de uma string: length()
Então vamos entender o códugo, vc determinou duas strings, uma para o edit e outra ao texto que seria chave do funcionou. Determinou uma condição, mas não entendi e não sei o que é o POS, e com ele as duas strings segida de qualquer coisa digitada, e outro POS, seguido das duas strings sendo > que o retorno de caracteres, exatamente 13 da segunda string, mas relativando a primeira onde seria digitado oque precisariamos -13.

Explique-me com suas palavras o memso código por favor, e me exclaressa o POS.

Bjs gatinho.
agata sayuri
agata sayuri Novo Membro Registrado
8 Mensagens 0 Curtidas
#14 Por agata sayuri
10/11/2008 - 11:04
olha eu fiz aki e ficou +0- assim


procedure TForm1.Button1Click(Sender: TObject);
VAR
texto_desejado, texto_edit:string;
begin
texto_edit:=Edit1.Text;
texto_desejado:='ola como esta';
IF (Pos(texto_desejado, texto_edit) <> 0) AND ((Pos(texto_desejado, texto_edit)) > (length(texto_edit)-13)) THEN
BEGIN
memo1.Lines[0]:='funcionou';
END;;
end;


Menino é isso MESMO QUE EU QUERIA!!
Obrigada, de todo meu coração, ai meu deus sou sua escrava!! Pena que não tenho como te recompensar por isso, se não seria um prazer. rs

Mas me explique o POS, eu não entendi.

Corrija-me:
Length retorna em numero de caracteres de uma string: length()
Então vamos entender o códugo, vc determinou duas strings, uma para o edit e outra ao texto que seria chave do funcionou. Determinou uma condição, mas não entendi e não sei o que é o POS, e com ele as duas strings segida de qualquer coisa digitada, e outro POS, seguido das duas strings sendo > que o retorno de caracteres, exatamente 13 da segunda string, mas relativando a primeira onde seria digitado oque precisariamos -13.

Explique-me com suas palavras o memso código por favor, e me exclaressa o POS.

Bjs gatinho.
© 1999-2025 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal