cads 0 Denunciar post Postado Julho 6, 2009 Bom galera quem puder me ajuda agradeço estou desenvolvendo um sistema e preciso calcular o numero de semana do ano, pois bem criei uma função que faz esse calculo mais quando vou recuperar o valor dessa função ela me da o seguinte erro. [Error] uMain.pas(193): Not enough actual parameters [Fatal Error] SIP001.dpr(9): Could not compile used unit 'uMain.pas' Desde já Agradeço. Cads. Compartilhar este post Link para o post Compartilhar em outros sites
Avatar 0 Denunciar post Postado Julho 6, 2009 Ahm, tem como publicar o teu código? Compartilhar este post Link para o post Compartilhar em outros sites
cads 0 Denunciar post Postado Julho 6, 2009 Bom galera quem puder me ajuda agradeço estou desenvolvendo um sistema e preciso calcular o numero de semana do ano, pois bem criei uma função que faz esse calculo mais quando vou recuperar o valor dessa função ela me da o seguinte erro. [Error] uMain.pas(193): Not enough actual parameters [Fatal Error] SIP001.dpr(9): Could not compile used unit 'uMain.pas' Desde já Agradeço. Cads. function ContaFimSemana(const TDT:TDateTime) : Word; var Y,M,D:Word; dtTmp:TDateTime; begin DecodeDate(TDT,Y,M,D); dtTmp := EnCodeDate(Y,1,1); Result := (Trunc(TDT-dtTmp)+(DayOfWeek(dtTmp)-1)) DIV 7; if Result = 0 then begin Result := 51 end else begin Result := Result-1; end; End; Compartilhar este post Link para o post Compartilhar em outros sites
Avatar 0 Denunciar post Postado Julho 7, 2009 Que estranho, eu testei o teu código aqui e está funcionando. Não sei se a saída está certa, mas pelo menos erro não está havendo. Tem certeza que ao chamar a função você tá passando um tipo DateTime? A mensagem de erro aponta erro na linha 193 do teu código, dá um ALT+G >> 193 e cola o código que tem nessa linha, per favore... Compartilhar este post Link para o post Compartilhar em outros sites
cads 0 Denunciar post Postado Julho 7, 2009 Que estranho, eu testei o teu código aqui e está funcionando. Não sei se a saída está certa, mas pelo menos erro não está havendo. Tem certeza que ao chamar a função você tá passando um tipo DateTime? A mensagem de erro aponta erro na linha 193 do teu código, dá um ALT+G >> 193 e cola o código que tem nessa linha, per favore... Estou recuperando errado?? LblFunContSemana.Caption := DateTimeToStr(WeekNum); Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Julho 8, 2009 Fiz o teste abaixo e mudei só a parte do DateTimeToStr(WeekNum) para IntToStr(WeekNum), considerando que o WeekNum seja do tipo World. Veja se é este seu problema: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function ContaFimSemana(const TDT:TDateTime) : Word; var Y,M,D:Word; dtTmp:TDateTime; begin DecodeDate(TDT,Y,M,D); dtTmp := EnCodeDate(Y,1,1); Result := (Trunc(TDT-dtTmp)+(DayOfWeek(dtTmp)-1)) DIV 7; if Result = 0 then begin Result := 51 end else begin Result := Result-1; end; End; procedure TForm1.Button1Click(Sender: TObject); var WeekNum : Word; begin WeekNum := ContaFimSemana(Now); Label1.Caption := IntToStr(WeekNum); end; end. []'s Compartilhar este post Link para o post Compartilhar em outros sites
cads 0 Denunciar post Postado Julho 8, 2009 Fiz o teste abaixo e mudei só a parte do DateTimeToStr(WeekNum) para IntToStr(WeekNum), considerando que o WeekNum seja do tipo World. Veja se é este seu problema: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function ContaFimSemana(const TDT:TDateTime) : Word; var Y,M,D:Word; dtTmp:TDateTime; begin DecodeDate(TDT,Y,M,D); dtTmp := EnCodeDate(Y,1,1); Result := (Trunc(TDT-dtTmp)+(DayOfWeek(dtTmp)-1)) DIV 7; if Result = 0 then begin Result := 51 end else begin Result := Result-1; end; End; procedure TForm1.Button1Click(Sender: TObject); var WeekNum : Word; begin WeekNum := ContaFimSemana(Now); Label1.Caption := IntToStr(WeekNum); end; end. []'s Valeu era isso mesmo desculpa naum ter postado antes mais tinha conseguido arrumar mais mesmo assim muito obrigado a função está trazendo duas semanas antes caso alguem for usar me fale que passo o codigo correto, desde já agradeço a todos pela a juda. Abraço Amigos. ATT. Cads Compartilhar este post Link para o post Compartilhar em outros sites
Raficcha 1 Denunciar post Postado Julho 8, 2009 Cara, você ta usando essa função dentro de um forma.. Se sim, de uma olhada na declaraçãod da função (protótipo), talvel la esteja pendindo uma parametro a mais.. e você esta passando os parametros certinho para a função, talvel o problema não seja na função e sim na chamada da função. Poste o trecho de código aonde você chama a função Compartilhar este post Link para o post Compartilhar em outros sites