Comparação de sentenças
Oi pessoal, é uma dúvida boba, mas não estou conseguindo acertar aqui..eu criei um sistema que recebe valores num DBGrid , e a partir desses valores gera um gráfico, mas esse gráfico não pode conter valores <0 .
A minha idéia é a seguinte: na hr de mostrar o gráfico , aparece a msg que o gráfico não pode ser feito pois têm valores negativos.
Basta entrar com 1 va,or positivo que ele faz o gráfico, mas se tiver pelo menos 1 valor <0 o gráfico não deveria ser feito !
A parte do código é essa:
begin
Chart1.series[0].Clear;
Chart1.series[0].AddXY(0,0);
for c:=1 to Form1.SpEtapa.Value do
begin
s:=Form1.DadosGrid.Cells[2,c]; //conteúdo da coluna 2: s(m) // recebe valores do DBGrid
q:=Form1.DadosGrid.Cells[3,c]; //conteúdo da coluna 3: Q(m3/h)
//A partir daqui dá o erro !
if StrToFloat(s)<0 then
begin
Showmessage (´Não é possível construir o gráfico ´Curva do poço´ com valores de ND(m) menores que os valores de Ne(m)´);
close;
end
else
Chart1.series[0].AddXY(StrToFloat(q),StrToFloat(s));
end;
end;
Agradeço se algm puder ajudar !
A minha idéia é a seguinte: na hr de mostrar o gráfico , aparece a msg que o gráfico não pode ser feito pois têm valores negativos.
Basta entrar com 1 va,or positivo que ele faz o gráfico, mas se tiver pelo menos 1 valor <0 o gráfico não deveria ser feito !
A parte do código é essa:
begin
Chart1.series[0].Clear;
Chart1.series[0].AddXY(0,0);
for c:=1 to Form1.SpEtapa.Value do
begin
s:=Form1.DadosGrid.Cells[2,c]; //conteúdo da coluna 2: s(m) // recebe valores do DBGrid
q:=Form1.DadosGrid.Cells[3,c]; //conteúdo da coluna 3: Q(m3/h)
//A partir daqui dá o erro !
if StrToFloat(s)<0 then
begin
Showmessage (´Não é possível construir o gráfico ´Curva do poço´ com valores de ND(m) menores que os valores de Ne(m)´);
close;
end
else
Chart1.series[0].AddXY(StrToFloat(q),StrToFloat(s));
end;
end;
Agradeço se algm puder ajudar !
Iza
Curtidas 0
Respostas
Iza
24/07/2009
esqueci de posta mais essa parte, que é o motivo do nome para a meu tópico!
Se eu escrever a sentença:
if StrToFloat(s)<0 and if StrToFloat(s)>0
Não dá certo...como eu poderia escrever, para assim que um valor negativo teha sido digitado, ele não faça mais o gráfico.
Se eu escrever a sentença:
if StrToFloat(s)<0 and if StrToFloat(s)>0
Não dá certo...como eu poderia escrever, para assim que um valor negativo teha sido digitado, ele não faça mais o gráfico.
GOSTEI 0
Danielrsanches
24/07/2009
a forma de fazer 2 comparações seria esta:
if (StrToFloat(s)<0) and (StrToFloat(s)>0) then comandos...
porém, esse if é irreal, pois, um valor nunca será <0 e ao mesmo tempo >0 ....
post aki o que pretende com esse if, caso ainda tenha restado dúvidas ...
abraços !!!
if (StrToFloat(s)<0) and (StrToFloat(s)>0) then comandos...
porém, esse if é irreal, pois, um valor nunca será <0 e ao mesmo tempo >0 ....
post aki o que pretende com esse if, caso ainda tenha restado dúvidas ...
abraços !!!
GOSTEI 0
Iza
24/07/2009
entao...eu tentei isso, mas logo vi q é meio impossível essa sentença né !!rsrsr
eu quero fazer o seguinte:
if StrToFloat(s)<0 then // e aqui entraria a sentença ´if StrToFloat(s)<0 and if StrToFloat(s)>0
begin
Showmessage (´Não é possível construir o gráfico ´Curva do poço´ com valores de ND(m) menores que os valores de Ne(m)´);
close;
end
else
Chart1.series[0].AddXY(StrToFloat(q),StrToFloat(s));
Não consegui acertar ainda...pq entre tds os valores digitados, se PELO MENOS 1 for negativo, o gráfico não pode mais ser gerado !
eu quero fazer o seguinte:
if StrToFloat(s)<0 then // e aqui entraria a sentença ´if StrToFloat(s)<0 and if StrToFloat(s)>0
begin
Showmessage (´Não é possível construir o gráfico ´Curva do poço´ com valores de ND(m) menores que os valores de Ne(m)´);
close;
end
else
Chart1.series[0].AddXY(StrToFloat(q),StrToFloat(s));
Não consegui acertar ainda...pq entre tds os valores digitados, se PELO MENOS 1 for negativo, o gráfico não pode mais ser gerado !
GOSTEI 0
Osocram
24/07/2009
Não entendi qual o erro.
Pq não da certo?
o certo seria ( if StrToFloat(s)<0 )
Mas qual o erro q da qdo vc faz assim?
Pq não da certo?
o certo seria ( if StrToFloat(s)<0 )
Mas qual o erro q da qdo vc faz assim?
esqueci de posta mais essa parte, que é o motivo do nome para a meu tópico!
Se eu escrever a sentença:
if StrToFloat(s)<0 and if StrToFloat(s)>0
Não dá certo...como eu poderia escrever, para assim que um valor negativo teha sido digitado, ele não faça mais o gráfico.
GOSTEI 0
Iza
24/07/2009
entao ´osocram´ é o seguinte :
Se eu escrever só com esse IF não dá certo, porque o gráfico continua sendo gerado ! ele não coloca no gráfico o ponto negativo, mas continua fazendo com o positivo...e não devia fazer..
Não sei se tá dando pra entender..mas agradeço a ajuda !
Se eu escrever só com esse IF não dá certo, porque o gráfico continua sendo gerado ! ele não coloca no gráfico o ponto negativo, mas continua fazendo com o positivo...e não devia fazer..
Não sei se tá dando pra entender..mas agradeço a ajuda !
GOSTEI 0
Osocram
24/07/2009
faz 2x o for
uma primeira vez apenas p validar se tem valor negativo
var
TemValorNegativo :boolean;
TemValorNegativo := false;
for c:=1 to Form1.SpEtapa.Value do
begin
s:=Form1.DadosGrid.Cells[2,c]; //conteúdo da coluna 2: s(m) // recebe valores do DBGrid
q:=Form1.DadosGrid.Cells[3,c]; //conteúdo da coluna 3: Q(m3/h)
if StrToFloat(s)<0 then begin
TemValorNegativo := true;
Break;
end;
end;
if TemValorNegativo then
Exit;
For..... <- aqui o for q vc postou p agente.
acho q isso resolve.
uma primeira vez apenas p validar se tem valor negativo
var
TemValorNegativo :boolean;
TemValorNegativo := false;
for c:=1 to Form1.SpEtapa.Value do
begin
s:=Form1.DadosGrid.Cells[2,c]; //conteúdo da coluna 2: s(m) // recebe valores do DBGrid
q:=Form1.DadosGrid.Cells[3,c]; //conteúdo da coluna 3: Q(m3/h)
if StrToFloat(s)<0 then begin
TemValorNegativo := true;
Break;
end;
end;
if TemValorNegativo then
Exit;
For..... <- aqui o for q vc postou p agente.
acho q isso resolve.
entao ´osocram´ é o seguinte :
Se eu escrever só com esse IF não dá certo, porque o gráfico continua sendo gerado ! ele não coloca no gráfico o ponto negativo, mas continua fazendo com o positivo...e não devia fazer..
Não sei se tá dando pra entender..mas agradeço a ajuda !
GOSTEI 0
Iza
24/07/2009
Olá Osocram !! mto obrigada pela ajuda...agora deu certo !!! está funcionando direitinho !! =)
GOSTEI 0