Desdobrar por datas, cfe. período de data lançados?

Delphi

23/03/2008

Pessoal, tenho um form de baixa que esta com a tabela assim:
ID_matricula varchar (10) Associado varchar (60) mesrefini date mesreffim date valor numeric 15,2 juros numeric 15,2 multa numeric 15,2 refmesini date refmesfim date


Bom neste form eu digito a ID_Matricula para chamar o associado referente esta ID, ai nos campos mesrefini e mesreffim digito as datas da baixa, no caso 01/2008 a 03/2008 (Neste caso tenho uma função que n ão precisa digitar os dias do mes apenas o mes/ano) ai digito o valor R$, e opcional multas/juros e nos campos refmesini e refmesfim apareçe automaticamente assim 01/01/2008 a 31/03/2008

Bom tudo certo ai, ou seja se eu digitar 01/2008 a 01/2008 aparece 01/01/2008 a 31/01/2008 se eu digitar 02/2008 a 03/2008 aparece 01/02/2008 a 31/03/2008, ou seja sempre vai mostrar a primeira e ultima data dos campos mesrefini e mesreffim que eu digitar.

Bom agora o que eu estou precisando é fazer uma tabeal com o desdobramento por mes destes valor lançados com os seguintes campos

{Os tipos são o mesmo da tabela acima}
ID_Matricula (FK) Associado RefMesIini RefMesFim Status Char (1)

Ai vamos supor que eu digitei no form baixa assim

[b:5b5f4773b4]001 - adriano - 01/2008 a 03/2008 - 150,00 - 01/01/2008 a 31/03/2008[/b:5b5f4773b4]

e nesta outra tabela ter alguma função que jogue assim
[b:5b5f4773b4]001-adriano-01/01/2008-31/01/2008-B
001-adriano-01/02/2008-29/02/2008-B
001-adriano-01/03/2008-31/03/2008-B[/b:5b5f4773b4]
Bom os exceptions pode deixar que eu sei criar caso repita algum destes valores gerar uma unique. Apenas não sei como fazer uma função para desdobrar estas datas.

Depois se eu tiver que dar uma nova baixa deste ID ele dar continuidade.

Bom espero ter explicado certo o que eu preciso.

Valeu pessoal


Adriano_servitec

Adriano_servitec

Curtidas 0

Respostas

Adriano_servitec

Adriano_servitec

23/03/2008

sobe


GOSTEI 0
José Henrique

José Henrique

23/03/2008

Adriano,
Voce deve fazer, dentro de um loop pelos mesrefini e mesreffim:
1 - calcular o último dia do mês atual (que no início do loop é mesrefini);
2 - gravar na tabela desdobramento;
3 - comparar com mesreffim se igual, fim loop;
4 - caso contrário, incrementar de 1 (neste caso teremos dia 1º do próximo mês). Voltar ao passo 1, ie, next.


GOSTEI 0
Adriano_servitec

Adriano_servitec

23/03/2008

[quote:c3d01c45ca=´José Henrique´]Adriano,
Voce deve fazer, dentro de um loop pelos mesrefini e mesreffim:
1 - calcular o último dia do mês atual (que no início do loop é mesrefini);
2 - gravar na tabela desdobramento;
3 - comparar com mesreffim se igual, fim loop;
4 - caso contrário, incrementar de 1 (neste caso teremos dia 1º do próximo mês). Voltar ao passo 1, ie, next.[/quote:c3d01c45ca]

Olá José Henrique, bom já é um começo, mais vc poderia me ajudar? Como é que eu faria isso? Não tenho idéia de como seja.

Obrigado
Adriano


GOSTEI 0
José Henrique

José Henrique

23/03/2008

Adriano,
ficaria assim:
procedure TForm1.Button1Click(Sender: TObject);
var
  dtMesRefFim : TDateTime;
  dtMesIni, dtMesFim : TDateTime;
  strRes : string;
begin
  dtMesIni := StrToDate(´01/01/2008´);
  dtMesRefFim := StrToDate(´31/12/2008´);
  repeat
     dtMesFim := FDM(dtMesIni);

   //aqui grava na tabela
     strRes := strRes + ´I: ´ + DateToStr(dtMesIni) + ´ - F: ´ + DateToStr(dtMesFim) + chr(10) + chr(13);
     dtMesIni := dtMesFim + 1;
  until (dtMesIni > dtMesRefFim);
  ShowMessage(strRes);
end;

function FDM (Data : TDateTime) : TDateTime;
//Devolve o último dia do mês
var
  Ano, Mes, Dia : word;
begin
   DecodeDate(Data, Ano, Mes, Dia);
   if Mes = 12 then
     Result := EncodeDate(Ano, 12, 31)
   else
     Result := EncodeDate(Ano, Mes+1, 1)-1;
end;


Cole e teste.


GOSTEI 0
Adriano_servitec

Adriano_servitec

23/03/2008

[quote:d2df10b8a0=´José Henrique´]Adriano,
ficaria assim:
procedure TForm1.Button1Click(Sender: TObject);
var
  dtMesRefFim : TDateTime;
  dtMesIni, dtMesFim : TDateTime;
  strRes : string;
begin
  dtMesIni := StrToDate(´01/01/2008´);
  dtMesRefFim := StrToDate(´31/12/2008´);
  repeat
     dtMesFim := FDM(dtMesIni);

   //aqui grava na tabela
     strRes := strRes + ´I: ´ + DateToStr(dtMesIni) + ´ - F: ´ + DateToStr(dtMesFim) + chr(10) + chr(13);
     dtMesIni := dtMesFim + 1;
  until (dtMesIni > dtMesRefFim);
  ShowMessage(strRes);
end;

function FDM (Data : TDateTime) : TDateTime;
//Devolve o último dia do mês
var
  Ano, Mes, Dia : word;
begin
   DecodeDate(Data, Ano, Mes, Dia);
   if Mes = 12 then
     Result := EncodeDate(Ano, 12, 31)
   else
     Result := EncodeDate(Ano, Mes+1, 1)-1;
end;


Cole e teste.[/quote:d2df10b8a0]Obrigado amigão, assim que eu testar retorno o resultado, mais acho que deve ser isso mesmo, valeu José Henrique, muito obrigado.


GOSTEI 0
Adriano_servitec

Adriano_servitec

23/03/2008

Não consegui ainda, qualquer dica é bem vinda.

Preciso apenas saber como fazer aparecer num listbox, memo, richedit, ou qualquer outro componente assim

Vamos supor que tenho dois maskeditsedits e digito neles campos tipo data

Mask1-01/01/2008
Mask2-31/03/2008

Então no listbox ou outro componente apareça desta forma

01/01/2008 - 31/01/2008
01/02/2008 - 29/02/2008
01/03/2008 - 31/03/2008

Apenas isso já esta de bom tamanho, pra eu começar

Pegar a primeira e a ultima data de cada ms eu sei, mais não estou sabendo como fazer num intervalo entre datas

Acho que precisa ser criado um FOR, mais como é que vou sabe entre estes intervalos de mes????

No aguardo
Adriano.


GOSTEI 0
Martins

Martins

23/03/2008

Não consegui ainda, qualquer dica é bem vinda. Preciso apenas saber como fazer aparecer num listbox, memo, richedit, ou qualquer outro componente assim Vamos supor que tenho dois maskeditsedits e digito neles campos tipo data Mask1-01/01/2008 Mask2-31/03/2008 Então no listbox ou outro componente apareça desta forma 01/01/2008 - 31/01/2008 01/02/2008 - 29/02/2008 01/03/2008 - 31/03/2008 Apenas isso já esta de bom tamanho, pra eu começar Pegar a primeira e a ultima data de cada ms eu sei, mais não estou sabendo como fazer num intervalo entre datas Acho que precisa ser criado um FOR, mais como é que vou sabe entre estes intervalos de mes???? No aguardo Adriano.


[b:afee90234f]Adriano[/b:afee90234f], tente usando um laço [b:afee90234f]FOR.. TO .. DO[/b:afee90234f]

Algo mais ou menos assim.

var
 i, a, b: integer;
begin
//Supondo que nos Edit´s vc informe apenas o mês e ano ex: 01/2008  04/2008 
 a:= StrToInt(Copy(Edit1.Text,1 ,2));
 b:= StrToInt(Copy(Edit2.Text,1 ,2));
 for i := a to b do
 begin
 {  if i = 1 then
   begin
     Memo1.Lines.Add(´01/01/2008 - 31/01/2008 - B´);
   end;
   if i = 2 then
   begin
     Memo1.Lines.Add(´01/02/2008 - 29/02/2008 - B´);
   end;
   if i = 3 then
   begin
     Memo1.Lines.Add(´01/03/2008 - 31/03/2008 - B´);
   end;}
{Substitua o bloco comentado por sua função que traz o primeiro e o último dia de cada mês, pois essas linhas com memo foram meramente ilustrativas e só serviram como base para teste} 
 end;
end;


Boa sorte e bons códigos.


GOSTEI 0
Martins

Martins

23/03/2008

Trocando os IF´s por sua função deve funcionar, qualquer coisa é só retornar aqui no fórum.
procedure TForm1.Button1Click(Sender: TObject);
var
 i, a, b: integer;
begin
 a:= StrToInt(Copy(Edit1.Text,1 ,2));
 b:= StrToInt(Copy(Edit2.Text,1 ,2));
 for i := a to b do
 begin
   if i = 1 then
     Memo1.Lines.Add(´01/01/2008 - 31/01/2008 - B´);
   if i = 2 then
     Memo1.Lines.Add(´01/02/2008 - 29/02/2008 - B´);
   if i = 3 then
     Memo1.Lines.Add(´01/03/2008 - 31/03/2008 - B´);
   if i = 4 then
     Memo1.Lines.Add(´01/04/2008 - 30/04/2008 - B´);
 end;
end;



GOSTEI 0
Adriano_servitec

Adriano_servitec

23/03/2008

Olá Martins, entendi, vou testar e depois falo o resultado, pois preciso vur num cyber para postar ...hehehehe

Abraços
T+


GOSTEI 0
Martins

Martins

23/03/2008

Olá Martins, entendi, vou testar e depois falo o resultado, pois preciso vur num cyber para postar ...hehehehe Abraços T+


Tranquilo [b:c62a9704b4]Adriano[/b:c62a9704b4], qualquer coisa, é só postar ok!


GOSTEI 0
Adriano_servitec

Adriano_servitec

23/03/2008

[quote:0e945e526f=´Adriano_Servitec´]Olá Martins, entendi, vou testar e depois falo o resultado, pois preciso vur num cyber para postar ...hehehehe Abraços T+


Tranquilo [b:0e945e526f]Adriano[/b:0e945e526f], qualquer coisa, é só postar ok![/quote:0e945e526f]

Olá [b:0e945e526f]Martins[/b:0e945e526f], bom tá quase lá, o problema agora é se tiver datas entre anos diferentes tipo

01/2008 a 03/2009

Não estou sabendo como fazer

Olhe a procedure meio gambiarra que eu fiz

procedure TForm1.Button3Click(Sender: TObject);
var
  f, i, dataini, datafin, anoini : integer;
  vjan, vfev, vmar, vabr, vmai, vjun,
  vjul, vago, vset, vout, vnov, vdez : String;
begin
  {:Limpa as variaveis antes de começar novamente}
  dataini := StrToInt(Copy(MaskEdit1.Text, 1, 2));
  datafin := StrToInt(Copy(MaskEdit2.Text, 1, 2));
  anoini := StrToInt(Copy(MaskEdit1.Text, 4, 7));
  {:tem que limpar o memo fora do lacço FOR}
  memo1.Clear;
  {:Primeiro um laço num FOR dos meses}
  for f := dataini to datafin do
  begin
  if f = 1 then
     vjan := ´01/01/´+inttostr(anoini);
  if f = 2 then
     vfev := ´01/02/´+inttostr(anoini);
  if f = 3 then
     vmar := ´01/03/´+inttostr(anoini);
  if f = 4 then
     vabr := ´01/04/´+inttostr(anoini);
  if f = 5 then
     vmai := ´01/05/´+inttostr(anoini);
  if f = 6 then
     vjun := ´01/06/´+inttostr(anoini);
  if f = 7 then
     vjul := ´01/07/´+inttostr(anoini);
  if f = 8 then
     vago := ´01/08/´+inttostr(anoini);
  if f = 9 then
     vset := ´01/09/´+inttostr(anoini);
  if f = 10 then
     vout := ´01/10/´+inttostr(anoini);
  if f = 11 then
     vnov := ´01/11/´+inttostr(anoini);
  if f = 12 then
     vdez := ´01/12/´+inttostr(anoini);
  end;

  {:Depois um laço no FOR do resultado do maskedits}
  for i := dataini to datafin do
  begin
  if i = 1 then
     memo1.lines.add(vjan+´-´+DateToStr(EndOfTheMonth(strtodate(vJan)))+´ - B´);
  if i = 2 then
     memo1.Lines.add(vfev+´-´+DateToStr(EndOfTheMonth(strtodate(vFev)))+´ - B´);
  if i = 3 then
     memo1.lines.add(vmar+´-´+DateToStr(EndOfTheMonth(strtodate(vMar)))+´ - B´);
  if i = 4 then
     memo1.lines.add(vabr+´-´+DateToStr(EndOfTheMonth(strtodate(vabr)))+´ - B´);
  if i = 5 then
     memo1.Lines.add(vmai+´-´+DateToStr(EndOfTheMonth(strtodate(vmai)))+´ - B´);
  if i = 6 then
     memo1.lines.add(vjun+´-´+DateToStr(EndOfTheMonth(strtodate(vjun)))+´ - B´);
  if i = 7 then
     memo1.lines.add(vjul+´-´+DateToStr(EndOfTheMonth(strtodate(vJul)))+´ - B´);
  if i = 8 then
     memo1.Lines.add(vago+´-´+DateToStr(EndOfTheMonth(strtodate(vago)))+´ - B´);
  if i = 9 then
     memo1.lines.add(vset+´-´+DateToStr(EndOfTheMonth(strtodate(vset)))+´ - B´);
  if i = 10 then
     memo1.lines.add(vout+´-´+DateToStr(EndOfTheMonth(strtodate(vout)))+´ - B´);
  if i = 11 then
     memo1.Lines.add(vnov+´-´+DateToStr(EndOfTheMonth(strtodate(vnov)))+´ - B´);
  if i = 12 then
     memo1.lines.add(vdez+´-´+DateToStr(EndOfTheMonth(strtodate(vdez)))+´ - B´);
  end;

end;


Mais não esta ainda 100¬

Valeu amigo


GOSTEI 0
José Henrique

José Henrique

23/03/2008

Adriano,
Vamos de novo
txtDtIni e txtDtFim são maskedits que recebem o mês e o ano.

procedure TForm1.Button1Click(Sender: TObject);
var
  dtMesRefFim, dtMesIni, dtMesFim : TDateTime;
  strRes : string;
begin
  dtMesIni := StrToDate(´01/´ + txtDtIni.EditText);
  dtMesRefFim := EndOfTheMonth(StrToDate(´01/´ + txtDtFim.EditText));
  Memo1.Clear;
  repeat
     dtMesFim := EndOfTheMonth(dtMesIni);
     Memo1.Lines.Add(DateToStr(dtMesIni) + ´ - ´ + DateToStr(dtMesFim) + ´ - B´);
     dtMesIni := dtMesFim + 1;
  until (dtMesIni > dtMesRefFim);
end;



GOSTEI 0
Emerson Nascimento

Emerson Nascimento

23/03/2008

o José Herique matou a pau!!!

eu só trocaria o DateToStr por FormatDateTime:
procedure TForm1.Button1Click(Sender: TObject);
var
  dtMesRefFim, dtMesIni, dtMesFim : TDateTime;
  strRes : string;
begin
  dtMesIni := StartOfTheMonth(StrToDate(MaskEdit1.Text));
  dtMesRefFim := EndOfTheMonth(StrToDate(MaskEdit2.Text));
  Memo1.Clear;
  repeat
     dtMesFim := EndOfTheMonth(dtMesIni);
     Memo1.Lines.Add(
       FormatDateTime(´dd/mm/yyyy´,dtMesIni) + ´ - ´ +
       FormatDateTime(´dd/mm/yyyy´,dtMesFim) + ´ - B´
     );
     dtMesIni := dtMesFim + 1;
  until (dtMesIni > dtMesRefFim);
end;



GOSTEI 0
Martins

Martins

23/03/2008

o José Herique matou a pau!!! eu só trocaria o DateToStr por FormatDateTime:
procedure TForm1.Button1Click(Sender: TObject);
var
  dtMesRefFim, dtMesIni, dtMesFim : TDateTime;
  strRes : string;
begin
  dtMesIni := StartOfTheMonth(StrToDate(MaskEdit1.Text));
  dtMesRefFim := EndOfTheMonth(StrToDate(MaskEdit2.Text));
  Memo1.Clear;
  repeat
     dtMesFim := EndOfTheMonth(dtMesIni);
     Memo1.Lines.Add(
       FormatDateTime(´dd/mm/yyyy´,dtMesIni) + ´ - ´ +
       FormatDateTime(´dd/mm/yyyy´,dtMesFim) + ´ - B´
     );
     dtMesIni := dtMesFim + 1;
  until (dtMesIni > dtMesRefFim);
end;


Esse código aqui não compilei ainda mas me parece muito funcional, valew [b:7a60bce8d7]Emerson.en[/b:7a60bce8d7], [b:7a60bce8d7]José Henrique[/b:7a60bce8d7] seu código tb ficou muito bom.

Ops! lembrando que vc vai ter q declarar a unit [b:7a60bce8d7]DateUtils[/b:7a60bce8d7] caso não esteja declarada, pq acredito q as funções [b:7a60bce8d7]StartOfTheMonth[/b:7a60bce8d7] e [b:7a60bce8d7]EndOfTheMonth[/b:7a60bce8d7] pertençam a ela.

Boa sorte e bons códigos.


GOSTEI 0
Adriano_servitec

Adriano_servitec

23/03/2008

Olá pessoal, obrigado por responder, vou testar estes códigos ai tambem, pq tentei com o MonthsBetween, mais não deu certo para o que eu preciso, olhem.

procedure TForm1.Button4Click(Sender: TObject);
var 
  i,
  meses : Integer;
  mesAnoIni,
  mesAnoFim: String; // variáveis que conterão o mês e ano por ex. ´01/2008´
  dias : Word; // apenas para descobrir quantos dias tem no mês
  data,
  dataInicial, dataFinal : TDateTime;
  anos : integer;
  anoini, anofin : TDateTime;
begin
  mesAnoIni := maskedit1.text;
  mesanofim := maskedit2.text;
  dataInicial := StrToDate( ´01/´ + mesAnoIni );
  dataFinal := StrToDate( ´01/´ + mesAnoFim );
  meses := MonthsBetween( dataInicial, dataFinal ) +1;
  {anoini := StrToDate( ´01/´ + mesAnoIni );
  anoFin := StrToDate( ´01/´ + mesAnoFim );
  anos := YearsBetween(anoini, anofin);
  meses := StrToInt(Copy(MaskEdit2.Text, 1, 2)) - StrToInt(Copy(MaskEdit1.Text, 1, 2)) + 1;
  anos := YearsBetween(anoini, anofin);}
  label3.caption := IntToStr(meses);
  {:tem que limpar o memo fora do laço FOR}
  memo1.Clear;
  for i := 1 to meses do
  begin
    memo1.Lines.Add( DateToStr( dataInicial ) + ´-´ + DateToStr( EndOfTheMonth( dataInicial )) + ´-B´ );
    dias := DaysInMonth( dataInicial );
    dataInicial :=  IncDay( dataInicial, dias );
  end;
end;


E o help do MontsBetween
MonthsBetween Routine Returns the approximate number of months between two specified TDateTime values. Unit DateUtils Syntax [Delphi] function MonthsBetween(const ANow: TDateTime; const AThen: TDateTime): Integer; Description Call MonthsBetween to obtain the difference, in months, between two TDateTime values. Because months are not all the same length, MonthsBetween returns an approximation based on an assumption of 30.4375 days per month. Fractional months are not counted. Thus, for example, MonthsBetween reports the difference between Feb 1 and Mar 1 as 0.


Bom vou testar os códigos postados pra ver o resultado. Depois informo se funcionou.

Valeu pessoal, mais uma vez obrigado pela ajuda.


GOSTEI 0
Adriano_servitec

Adriano_servitec

23/03/2008

Perfeito o código, mais pra ficar 100¬ gostaria de saber se tem como eu contar a quantidade que vem no listbox

Exemplo

se no maskedit colocar 01/2008 a 04/2008

vai mostrar assim no listbox
01/01/2008 - 31/01/2008 - B
01/02/2008 - 29/02/2008 - B
01/03/2008 - 31/03/2008 - B
01/04/2008 - 30/04/2008 - B

Então gostaria de saber como faço para contar o total destes 4 meses e jogar num edit por exemplo

edttotal.text := inttostr(vartotal);

vartotal seria uma variavel

É só um exemplo
no caso se tiver desdobrado 23 meses por exemplo queria que aparecesse no edit 23.

Bom é + ou - isso que eu preciso.
Valeu pessoal


GOSTEI 0
Adriano_servitec

Adriano_servitec

23/03/2008

Há, sobre este post podem esquecer, ficou certinho do modo que vcs postaram aqui.

Olá pessoal, obrigado por responder, vou testar estes códigos ai tambem, pq tentei com o MonthsBetween, mais não deu certo para o que eu preciso, olhem.
procedure TForm1.Button4Click(Sender: TObject);
var 
  i,
  meses : Integer;
  mesAnoIni,
  mesAnoFim: String; // variáveis que conterão o mês e ano por ex. ´01/2008´
  dias : Word; // apenas para descobrir quantos dias tem no mês
  data,
  dataInicial, dataFinal : TDateTime;
  anos : integer;
  anoini, anofin : TDateTime;
begin
  mesAnoIni := maskedit1.text;
  mesanofim := maskedit2.text;
  dataInicial := StrToDate( ´01/´ + mesAnoIni );
  dataFinal := StrToDate( ´01/´ + mesAnoFim );
  meses := MonthsBetween( dataInicial, dataFinal ) +1;
  {anoini := StrToDate( ´01/´ + mesAnoIni );
  anoFin := StrToDate( ´01/´ + mesAnoFim );
  anos := YearsBetween(anoini, anofin);
  meses := StrToInt(Copy(MaskEdit2.Text, 1, 2)) - StrToInt(Copy(MaskEdit1.Text, 1, 2)) + 1;
  anos := YearsBetween(anoini, anofin);}
  label3.caption := IntToStr(meses);
  {:tem que limpar o memo fora do laço FOR}
  memo1.Clear;
  for i := 1 to meses do
  begin
    memo1.Lines.Add( DateToStr( dataInicial ) + ´-´ + DateToStr( EndOfTheMonth( dataInicial )) + ´-B´ );
    dias := DaysInMonth( dataInicial );
    dataInicial :=  IncDay( dataInicial, dias );
  end;
end;
E o help do MontsBetween [quote:1a9db5ab2a]MonthsBetween Routine Returns the approximate number of months between two specified TDateTime values. Unit DateUtils Syntax [Delphi] function MonthsBetween(const ANow: TDateTime; const AThen: TDateTime): Integer; Description Call MonthsBetween to obtain the difference, in months, between two TDateTime values. Because months are not all the same length, MonthsBetween returns an approximation based on an assumption of 30.4375 days per month. Fractional months are not counted. Thus, for example, MonthsBetween reports the difference between Feb 1 and Mar 1 as 0.


Bom vou testar os códigos postados pra ver o resultado. Depois informo se funcionou.

Valeu pessoal, mais uma vez obrigado pela ajuda.[/quote:1a9db5ab2a]


GOSTEI 0
Martins

Martins

23/03/2008

Perfeito o código, mais pra ficar 100¬ gostaria de saber se tem como eu contar a quantidade que vem no listbox Exemplo se no maskedit colocar 01/2008 a 04/2008 vai mostrar assim no listbox 01/01/2008 - 31/01/2008 - B 01/02/2008 - 29/02/2008 - B 01/03/2008 - 31/03/2008 - B 01/04/2008 - 30/04/2008 - B Então gostaria de saber como faço para contar o total destes 4 meses e jogar num edit por exemplo edttotal.text := inttostr(vartotal); vartotal seria uma variavel É só um exemplo no caso se tiver desdobrado 23 meses por exemplo queria que aparecesse no edit 23. Bom é + ou - isso que eu preciso. Valeu pessoal


Tenta isso aqui.
var
vartotal :Integer;
begin
...
 vartotal := ListBox1.Items.Count;
 edttotal.text := IntToStr(vartotal);
...
end;


Boa sorte e bons códigos!


GOSTEI 0
Adriano_servitec

Adriano_servitec

23/03/2008

[quote:003df20245=´Adriano_Servitec´]Perfeito o código, mais pra ficar 100¬ gostaria de saber se tem como eu contar a quantidade que vem no listbox Exemplo se no maskedit colocar 01/2008 a 04/2008 vai mostrar assim no listbox 01/01/2008 - 31/01/2008 - B 01/02/2008 - 29/02/2008 - B 01/03/2008 - 31/03/2008 - B 01/04/2008 - 30/04/2008 - B Então gostaria de saber como faço para contar o total destes 4 meses e jogar num edit por exemplo edttotal.text := inttostr(vartotal); vartotal seria uma variavel É só um exemplo no caso se tiver desdobrado 23 meses por exemplo queria que aparecesse no edit 23. Bom é + ou - isso que eu preciso. Valeu pessoal


Tenta isso aqui.
var
vartotal :Integer;
begin
...
 vartotal := ListBox1.Items.Count;
 edttotal.text := IntToStr(vartotal);
...
end;


Boa sorte e bons códigos![/quote:003df20245]

Valeu Martins, muito obrigado perfeito.

Pessoal valeu pela ajuda neste post....Caso encerrado. :D


GOSTEI 0
POSTAR