Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Fecha con condiciones (https://www.clubdelphi.com/foros/showthread.php?t=67227)

rufo 06-04-2010 17:56:13

Fecha con condiciones
 
Hola amigos buenos dias, les comento mi problemilla resulta que estoy haciendo un programa en el cual llamo la fcha del sistema de mi pc pero ahora nose como hacer que cuando se cumpla una fecha especifica me mande un mensaje de alerta o un aviso de que la fecha que estableci se afectuado casi como un recordatorio, bueno les anexo parte del codigo y de ahi nose que hacer :confused:

Código:

procedure TBORRAR.FormActivate(Sender: TObject);
begin
label1.Caption:=FormatDateTime('dd/mm/yyyy ',Date);
end;

end.

Gracias de antemano y mas informacion, estoy usando delphi 2007

Neftali [Germán.Estévez] 06-04-2010 18:54:57

Lo lógico es que utilices un componente TTimer, que cada x tiempo revise la hora del sistema y la compare con la que tú deseas.

Para mostrar el mensaje puedes utilizar los MessageBox o Dialogs.

rufo 06-04-2010 19:01:09

Gracias, pero es ahi donde estoy atorado ya que pongo el timer pero no se como poner el codigo.

Código:

if timer1  then
....

Es ahi donde me quedo atorado.Si me puedes echar la mano te lo agradeceria

Caral 06-04-2010 19:13:50

Hola
Pero es la fecha o la hora?.
Saludos

rufo 06-04-2010 19:17:20

Es la fecha que tome mi programa de mi pc y al momento de llegar esa fecha que me realice una funcion ya sea en mostrar un mensaje u otra accion, mira les pongo algo de codigo que ya estuve haciendo pero me marca error espero lo cheque y me ayuden.

Código:

procedure TBORRAR.FormActivate(Sender: TObject);
begin
label1.Caption:=FormatDateTime('dd/mm/yyyy ',Date);
fecha:=StrToDate['06/04/2010'];
if (Date = fecha) and (Time = EncodeTime(12,08,00,00)) then
Begin
 application.Terminate;
End;
end;

Aqui ya especifico hasta la hora en que debe cerrar la ventana, pero me marcar error al compilar, StrToDate, que estoy haciendo mal. Gracias de antemano.

Neftali [Germán.Estévez] 06-04-2010 19:20:53

El código que estás poniendo en el Activate, colócalo en el OnTimer.
El error es posible que te esté dando por usar corchetes en lugar de los paréntesis (que se utilizan para las funciones en Delphi).

Caral 06-04-2010 19:35:13

Hola
Código Delphi [-]
var
fecha: string;
begin
  ShortDateFormat := 'dd/mm/yyyy';
  label1.Caption:=FormatDateTime('dd/mm/yyyy ',Date);
  fecha:= '06/04/2010';
  if Date = StrToDate(fecha) then
  Begin
  showmessage('es la fecha');
  end;
end;
Saludos

Caral 06-04-2010 19:37:34

Hola
O
Código Delphi [-]
var
fecha: string;
begin
  ShortDateFormat := 'dd/mm/yyyy';
  label1.Caption:= DateToStr(Date);
  fecha:= '06/04/2010';
  if Date = StrToDate(fecha) then
  Begin
  showmessage('es la fecha');
  end;
end;
Saludos

rufo 06-04-2010 19:43:11

Gracias amigo pero ya lo puse como me indicaste y no pasa nada mira te anexo el codigo que hasta ahorita tengo

Código:

procedure TBORRAR.Timer1Timer(Sender: TObject);
begin
 label1.Caption:=FormatDateTime('dd/mm/yyyy ',Date);
 Label2.Caption := FormatDateTime('h:mm ampm',Now);
 fecha:=StrToDate('06/04/2010');
if (Date = fecha) and (Time = EncodeTime(12,39,00,00)) then
Begin
 application.Terminate;
End;
end;

end.

Espero que me eches una mano y gracias por responder.

Caral 06-04-2010 19:45:14

Hola
:confused: :rolleyes: :)
Saludos

rufo 06-04-2010 20:01:28

Hola Caral

Caral 06-04-2010 20:02:58

Hola
Me pregunto:
Viste el codigo que puse?.
Te sirvio?
Es lo que buscabas?
Te lo saltaste?.
Saludos

rufo 06-04-2010 20:18:05

Gracias amigo Caral no me mostraba tus mensajes que pusiste tuve que refrescar la ventana y ya quedo muchas gracias a todos. Saludos:)

AzidRain 06-04-2010 21:55:24

Y que pasas si cierras el pograma....adios fecha y todo...
como te orientaron funciona Si y solo Si, el programa no se cierra. Mencionas que quieres una fecha no una hora determinada por lo que infiero que el programa:

1.- Estará siempre abierto
2.- Aunque se cierre debe poder "recordar" la fecha (y hora) que le habías indicado.

Ambos casos requieren soluciones distintas..indícanos cual necesitas.

rufo 06-04-2010 23:13:21

Ok amigo mira te voy a dejar el codigo hasta donde quedo ya solucionado mis dudas cabe mencionar que todavia falta hacerle algunos detalles y posteriormente lo subire al club, te dejo el codigo.

Código:

procedure TBORRAR.Timer1Timer(Sender: TObject);
var
fecha: string;
//FileOpInfo: TShFileOpStruct;
begin
  ShortDateFormat := 'dd/mm/yyyy';
  label1.Caption:= DateToStr(Date);
  fecha:= '06/04/2010';
  if Date = StrToDate(fecha) then
  Begin
    if messagedlg('El software de prueba ya caduco,¿desea comprar la version total? ',mtconfirmation,[mbok],0)=mrok then
    application.Terminate;

Echale un ojo y me dices si te sirve.Saludos

Caral 07-04-2010 00:29:55

Hola
Esto:
Código Delphi [-]
if Date = StrToDate(fecha) then
  Begin
    if messagedlg('El software de prueba ya caduco,¿desea comprar la version total? ',mtconfirmation,[mbok],0)=mrok then
     application.Terminate;
No es eficiente, alguien con un poco de conocimiento y malicia se salta la fecha a placer y sigue usando el programa.
Es tan simple como modificar la fecha del ordenador.
Creo que para esto que buscas no va a funcionar ninguno de estos códigos.
Saludos

Caral 07-04-2010 00:41:02

Hola
Lo que yo haría si fuera programador.
Haria un archivo .Bat.
En este colocaria la fecha al iniciar la primera vez que se usa el programa.
Una vez que se guarda la fecha, iria sumándole y guardándole a esta 1 cada vez que se use el programa hasta llegar a una fecha que se desee, por ejemplo 30 dias.
Haria una comprobación con otro archivo libre y si se modifica enviaría el programa completo a la papelera y la vaciaría.
Pero claro, no soy programador.:)
Saludos

rufo 07-04-2010 00:44:51

Gracias amigo Caral por tus comentarios aun no esta terminado lo que estoy haciendo y es cierto lo que dices un mañoso que sepa algo se vuela la fecha y listo pero es ahi donde esta el meollo del asunto este seria algo para despistar o tener mas seguridad ya que en si estoy trabajando con el archivo BAT que mencionas entre otras especificaciones de seguridad de software de todos modos cuando termine lo subo al club para que vean y me den opiniones.:)


La franja horaria es GMT +2. Ahora son las 01:46:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi