Autor
Mensagem
Ola galera......to aprendendo a trabalhar com delphi. Tenho tanto 7 quanto o 2010. E me apareceu um probleminha num programinha que estou fazendo.
tenho uns 8 campos numéricos onde preciso colocar uma máscara de forma que se o número for positivo apresente o sinal + e se for negativo o sinal -. Ex: +1,25; +3,75.
Alguem pode me ajudar?
tenho uns 8 campos numéricos onde preciso colocar uma máscara de forma que se o número for positivo apresente o sinal + e se for negativo o sinal -. Ex: +1,25; +3,75.
Alguem pode me ajudar?
Colega vai uma função simples, que recebe um valor double verifica se é maior que 0 ou menor que 0, então retorna uma string formatada com sinal:
function FormataValor(valor: Double): string;
begin
if valor > 0 then
Result := FormatFloat(+0.00, valor)
else
Result := FormatFloat(0.00, valor);
end;
OBS.: Note que quando for negativo não precisa adicionar o sinal -.
#Código
function FormataValor(valor: Double): string;
begin
if valor > 0 then
Result := FormatFloat(+0.00, valor)
else
Result := FormatFloat(0.00, valor);
end;
OBS.: Note que quando for negativo não precisa adicionar o sinal -.
Não colega !!! Essa função é externa fica fora da procedure, quando for usá-la vc chama function, exemplo:
function Tfrm_servprint.FormataValor(valor: Double): string;
begin
if valor > 0 then
Result := FormatFloat(+0.00, valor) //Não vai Ponto e vírgula
else
Result := FormatFloat(0.00, valor);
end;
//Dentro da procedure que for necessária
QRBText36.text := FormataValor(<ak vai o valor para ser formatado>);
Nesse caso como os valores são de um dataset precisão ser formatados durante a criação do relatório.
#Código
function Tfrm_servprint.FormataValor(valor: Double): string;
begin
if valor > 0 then
Result := FormatFloat(+0.00, valor) //Não vai Ponto e vírgula
else
Result := FormatFloat(0.00, valor);
end;
//Dentro da procedure que for necessária
QRBText36.text := FormataValor(<ak vai o valor para ser formatado>);
Nesse caso como os valores são de um dataset precisão ser formatados durante a criação do relatório.
Caro colega.... desculpe minha burrice, mas como falei, sou iniciante e ainda tenho muito a aprender. Estou a quase dois meses aprendendo na raça sozinho, lendo, pesquisando, tentando e errando. Por isso que, você deu a direção e eu, tentando e errando, não consegui chamar o valor nessa parte:
#Código
qrdbtext36.text := FormataValor(essa parte onde estou errando);
Colega não esquenta ninguém nasce sabendo a programar, demora um certo tempo até pegar o jeito da coisa.
qrdbtext36.text := FormataValor(essa parte onde estou errando);
Você vai passar como parâmetro para Function FormataValor(), o valor que vc quer que seja formatado possivelmente deve ser um campo da sua tabela.
Poste qual o código inteiro ou campo que deseja formatar..
OBS.: Pretendo escrever um artigo sobre as principais diferenças como usar procedures e functions no delphi, vou postar ak no portal DevMedia.
#Código
qrdbtext36.text := FormataValor(essa parte onde estou errando);
Você vai passar como parâmetro para Function FormataValor(), o valor que vc quer que seja formatado possivelmente deve ser um campo da sua tabela.
Poste qual o código inteiro ou campo que deseja formatar..
OBS.: Pretendo escrever um artigo sobre as principais diferenças como usar procedures e functions no delphi, vou postar ak no portal DevMedia.
Carlos como o colega Bruno mencionou acima, utilize a propriedade Caption deste componente.
Foi uma falha minha demonstrar como exemplo a propriedade text desse componente, pois mesmo recebe valores diretamente do field atribuido para ele e consequentemente do dataset do relatório. Para atribuir um texto para esse tipo de componente somente usando a propriedade caption mesmo.
Por esse motivo deu erro....
Foi uma falha minha demonstrar como exemplo a propriedade text desse componente, pois mesmo recebe valores diretamente do field atribuido para ele e consequentemente do dataset do relatório. Para atribuir um texto para esse tipo de componente somente usando a propriedade caption mesmo.
Por esse motivo deu erro....
Colega tenta da seguinte maneira, no evento OnBeforePrint do band onde está QRDBText vc coloca esse código abaixo, esse código também pode ser usando com um componente do tipo label acho que deve ser QRLabel ou coisa parecida.
QRDBText36.text := FormataValor(tabela.FieldByName(´LODE´).AsFloat);
OBS.: Não atribua nenhum campo para esse QRDBText senão será concatenado ao valor do dataset.
#Código
QRDBText36.text := FormataValor(tabela.FieldByName(´LODE´).AsFloat);
OBS.: Não atribua nenhum campo para esse QRDBText senão será concatenado ao valor do dataset.








