Valor monetario em uma stringgrid

Delphi

31/08/2011

Tenho uma stringgrid para cadastrar produtos em um pedido e ao usar os dados de valor unitario ele nao esta em formato monetario o codigo que estou usando é este:
 
StringGridProduto.Cells[StringGridProduto.Col,StringGridProduto.Row] := DataModule_Dados.TblProdutos.FieldByName('PRODUTO').AsString;
      StringGridproduto.Cells[1,StringGridProduto.RowCount -5] := DataModule_dados.TblProdutos.FieldByName('UNIDADE').AsString;
      StringGridproduto.Cells[2,StringGridProduto.RowCount -5] := DataModule_dados.TblProdutos.FieldByName('VALORUNITARIO').AsString;
      valor := StrtoFloat(StringGridproduto.Cells[2,StringGridProduto.RowCount -5]);//A variavel valor recebe dados da 3° coluna da string grid
      StringGridProduto.Cells[2,StringGridProduto.RowCount -5] := FormatFloat('##,###,##0.00', valor);//A variavel valor é mostrada no formato monetario
      StringGridProduto.RowCount:= StringGridProduto.RowCount + 1;
      StringGridProduto.Col := 3;
      StringGridProduto.Row := Linha1;
      Setfocus;
Meu campo é do tipo monetario, porem ele da o seguinte erro:
'is not a valid floating point value'.
Daniel

Daniel

Curtidas 0

Respostas

Paulo Andrade

Paulo Andrade

31/08/2011

Tenho uma stringgrid para cadastrar produtos em um pedido e ao usar os dados de valor unitario ele nao esta em formato monetario o codigo que estou usando é este:
 
StringGridProduto.Cells[StringGridProduto.Col,StringGridProduto.Row] := DataModule_Dados.TblProdutos.FieldByName('PRODUTO').AsString;
      StringGridproduto.Cells[1,StringGridProduto.RowCount -5] := DataModule_dados.TblProdutos.FieldByName('UNIDADE').AsString; 
      StringGridproduto.Cells[2,StringGridProduto.RowCount -5] := DataModule_dados.TblProdutos.FieldByName('VALORUNITARIO').AsString;
      valor := StrtoFloat(StringGridproduto.Cells[2,StringGridProduto.RowCount -5]);//A variavel valor recebe dados da 3° coluna da string grid
      StringGridProduto.Cells[2,StringGridProduto.RowCount -5] := FormatFloat('##,###,##0.00', valor);//A variavel valor é mostrada no formato monetario
      StringGridProduto.RowCount:= StringGridProduto.RowCount + 1;
      StringGridProduto.Col := 3;
      StringGridProduto.Row := Linha1;
      Setfocus;
Meu campo é do tipo monetario, porem ele da o seguinte erro:
'is not a valid floating point value'.
Errado: StringGridproduto.Cells[2,StringGridProduto.RowCount -5] := DataModule_dados.TblProdutos.FieldByName('VALORUNITARIO').AsString;   Correto: StringGridproduto.Cells[2,StringGridProduto.RowCount -5] := DataModule_dados.TblProdutos.FieldByName('VALORUNITARIO').AsCurrency;
GOSTEI 0
Paulo Andrade

Paulo Andrade

31/08/2011

Tenho uma stringgrid para cadastrar produtos em um pedido e ao usar os dados de valor unitario ele nao esta em formato monetario o codigo que estou usando é este:
 
StringGridProduto.Cells[StringGridProduto.Col,StringGridProduto.Row] := DataModule_Dados.TblProdutos.FieldByName('PRODUTO').AsString;
      StringGridproduto.Cells[1,StringGridProduto.RowCount -5] := DataModule_dados.TblProdutos.FieldByName('UNIDADE').AsString; 
      StringGridproduto.Cells[2,StringGridProduto.RowCount -5] := DataModule_dados.TblProdutos.FieldByName('VALORUNITARIO').AsString;
      valor := StrtoFloat(StringGridproduto.Cells[2,StringGridProduto.RowCount -5]);//A variavel valor recebe dados da 3° coluna da string grid
      StringGridProduto.Cells[2,StringGridProduto.RowCount -5] := FormatFloat('##,###,##0.00', valor);//A variavel valor é mostrada no formato monetario
      StringGridProduto.RowCount:= StringGridProduto.RowCount + 1;
      StringGridProduto.Col := 3;
      StringGridProduto.Row := Linha1;
      Setfocus;
Meu campo é do tipo monetario, porem ele da o seguinte erro:
'is not a valid floating point value'.
  Ou tente o seguinte:   Correto -----:  valor := StrtoCurrency(StringGridproduto.Cells[2,StringGridProduto.RowCount -5]);//A variavel valor recebe dados da 3° coluna da string grid
StringGridProduto.Cells[2,StringGridProduto.RowCount -5] := Format('##,###,##0.00', valor);//A variavel valor é mostrada no formato monetario
GOSTEI 0
POSTAR