Ver Mensaje Individual
  #9  
Antiguo 31-10-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Reputación: 22
José Luis Garcí Va camino a la fama
Cita:
Empezado por feliz-58 Ver Mensaje
Tengo la versión 7

pero no he podido sacar a flote el asunto, dicen que esa funcion no esta para disponible en delphi 7.

y ademas delphi me dice lo siguiente:

[Hint] Unit1.pas(60): Variable 'Hour' is declared but never used in 'Cambiafecha'
[Hint] Unit1.pas(60): Variable 'Min' is declared but never used in 'Cambiafecha'
[Hint] Unit1.pas(60): Variable 'Sec' is declared but never used in 'Cambiafecha'
[Hint] Unit1.pas(60): Variable 'MSec' is declared but never used in 'Cambiafecha'
[Hint] Unit1.pas(99): Value assigned to 'Contador' never used
[Error] Unit1.pas(136): Undeclared identifier: 'EndofaMonth'
[Error] Unit1.pas(140): Undeclared identifier: 'EndOfTheMonth'
[Error] Unit1.pas(153): Undeclared identifier: 'StartOfTheMonth'
[Error] Unit1.pas(170): '.' expected but ';' found
[Fatal Error] Project2.dpr(6): Could not compile used unit 'Unit1.pas'

Vamos por parte, las variables Hour, min, Sec y msec, no son marcadas como error, sino que han sido declaradas y no han sido usadas, por lo que pasa tal cual, te pongo el código de dicha función, para que veas y lo entiendas.

Antes del begin ... end, declaramos las variables, pero fíjate que que, las que te esta marcando como [hint], no son usadas en el bloque de la función

Código Delphi [-]
function Cambiafecha(ffecha:tDateTime):string;
var
    fec2:string;
    Present: TDateTime;
    Year, Month, Day, Hour, Min, Sec, MSec: Word;
begin
        Present:= ffecha;
        DecodeDate(Present, Year, Month, Day);
        fec2:=inttostr(month)+'/'+inttostr(day)+'/'+inttostr(year);
        result:=fec2;
end;


Asi como el valor de contador, que es declarado en el programa y no tiene uso, esto es debido a las pruebas que fui haciendo con el código.

En cuanto a 'EndofaMonth' no tengo ni idea, revisa el código y mira a ver de donde viene, o si te has equivocado al escribirlo, no seria EndOfTheMonth.

Por último 'EndOfTheMonth' y 'StartOfTheMonth', como ya te comentaba están en la unidad DataUtils que tienes que llamara en el uses despues de interface, pero por si no están en el Delphi 7, búscando en internet, di con este procedure en la página http://www.planetadelphi.com.br/dica...imo-dia-do-mes

Código Delphi [-]
Procedure PrmeiroEUltimoDiaDoMes(mes,ano:String; var dataIni,dataFin:string);
var
 MesAux,AnoAux:Integer;
Begin

  {Procedimento recebe um mes e um ano como parametro.
  E retorna nas variaveis DataIni e DataFin o primeiro e
  o ultimo dia daquele mes. Bem simples e eficiente}

  //primeiro dia
  dataIni:='01/'+FormatCurr('00',StrToInt(mes))+'/'+ano;

  //ultimo dia
  MesAux:=StrToInt(mes);
  AnoAux:=StrToInt(ano);

  //se ja estivesse em dezembro
  MesAux:=MesAux+1;
  if MesAux = 13 then
  begin
    MesAux:=1;
    AnoAux:=AnoAux+1;
  end;//if MesAux = 13 then

  dataFin:='01/'+IntToStr(MesAux)+'/'+IntToStr(AnoAux);
  dataFin:=DateToStr(StrToDate(dataFin)-1);

End;//procedure

Ten en cuenta que tanto los datos que te pide como los datos que devuelve son dataIni,dataFin, son String, por los que tendrás que convertirlos a TDate.

los errores

Cita:
[Error] Unit1.pas(170): '.' expected but ';' found
[Fatal Error] Project2.dpr(6): Could not compile used unit 'Unit1.pas'
Se refiere a que tienes un problema con un (.) y un ( en la linea 170, supongo que no has terminado la linea o simplemente te falta poner un ( al final y la última es que no ha podido compilar el proyecto, simplemente, cuando te da errores el compilador, siempre da este último, por lo que del número de errores tienes que descontar 1.

Si me permites darte un consejo, es mejor que la próxima vez, estés un par de días intentando solucionar las cosas y busques en la red, normalmente en el club se da consejos y algo de código, para ayudar a encontrar la solución, pero si te acostumbras a que te den la mayor parte echa, no terminaras por aprender. Se que es complicado entender muchas veces el código de otros compañeros, sobre todo al principio y de hecho es complicado muchas veces, pero debes tomarlo como una referencia y procurar seguir los consejos que te dan.

Te digo esto ya que en mi post anterior en este tema ya te decía

Cita:
ola feliz-88, te respondo a tus dudas

1.- El dsPrincipal esta conectado a la tabla que tienes en el unit2 (Form2)
2.- StartOfTheMonth y EndOfTheMonth // Unit DateUtils esta tiene que ponerla en el uses que viene despues de interface, que versión de Delphi tienes, por lo que puede ser un problema de la versión de delphi que tienes, si este es el caso, busca en internet, que hay funciones para decirte el último día del mes y la sustituyes
y por lo que he visto, pienso que ni te has molestado en buscar en internet.

Espero no te tomes a mal mi comentario.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"

Última edición por José Luis Garcí fecha: 31-10-2013 a las 10:10:04.
Responder Con Cita