Retirar Zeros a esquerda

Delphi

12/07/2005

Alguém sabe como fazer isso em tempo de execução em um dbgrid.
:( :( :(


Demetrius

Demetrius

Curtidas 0

Respostas

Demetrius

Demetrius

12/07/2005

Vou complementar,

tenho os seguintes valores em uma coluna do dbgrid: 00000000123, 00000012345 e preciso transforma-los em 123 e 12345.

Alguém sabe?


GOSTEI 0
Lynx

Lynx

12/07/2005

é só somar +0.

exemplo 000005 +0 = 5; 8)


GOSTEI 0
Lynx

Lynx

12/07/2005

faz no calcfield da query...


GOSTEI 0
Demetrius

Demetrius

12/07/2005

Você poderia me explicar melhor, é que eu sou meio ogro.

Eu uso SQLClientDataSet + DataSetProvider + ClienteDataSet + DataSource.

Valeu. :lol: :lol: :lol:


GOSTEI 0
Lynx

Lynx

12/07/2005

assim, eu utilizava o componente interbase.

A Propriedade CalcField da query, faz em tempo de execução tudo.
Você pode modificar qualquer registro que vai listar em seu grid, na propriedade CalcField.

Não tenho nenhum exemplo neste momento...
Mas posso lhe enviar mais tarde.

valeu :wink:


GOSTEI 0
Demetrius

Demetrius

12/07/2005

Ficarei agardando!!!

Obrigado pela atenção.

:D


GOSTEI 0
Kapak

Kapak

12/07/2005

Se for numérico vc pode colocar uma máscara em TNumericField.DisplayFormat; se for alfa vc pode formatar pelo Canvas no evento onDrawDataCell.


GOSTEI 0
Demetrius

Demetrius

12/07/2005

E como eu faço pelo canvas?
:lol: :lol:
Obrigado.


GOSTEI 0
Demetrius

Demetrius

12/07/2005

Alguém mais pode ajudar???????

:) :) :)


GOSTEI 0
Kapak

Kapak

12/07/2005

No evento onDrawDataCell:
var s:String;
begin
  if Field.DisplayLabel = ´Campo_Zeros´ then
  begin
    s := Retire_Zeros(Field.AsString); // escreva a função que retira 0s
    DBGrid1.Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+1, s);
  end;
end;



GOSTEI 0
Demetrius

Demetrius

12/07/2005

Não entendi!!

var s:String;
begin
if Field.DisplayLabel = [color=red:ce7e299ba7]´Campo_Zeros´ [/color:ce7e299ba7]then
begin
s := [color=red:ce7e299ba7]Retire_Zeros[/color:ce7e299ba7](Field.AsString); // escreva a função que retira 0s
DBGrid1.Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+1, s);
end;
end;

Eu sou meio Sherek!!!!
:shock: :shock:


GOSTEI 0
Kapak

Kapak

12/07/2005

1-Substitua ´Campo_Zeros´ pelo nome da coluna que aparece no DBGrid.
2-Escreva uma função que retorne uma string sem os zeros à esquerda.
3-Feito isso, o Canvas do DBGrid desenha a string na célula correspondente.


GOSTEI 0
POSTAR