Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   mostrar la hora y fecha actual del sistema (https://www.clubdelphi.com/foros/showthread.php?t=58781)

airam 31-07-2008 18:52:53

mostrar la hora y fecha actual del sistema
 
hola que tal!!!
Bueno, nuevamente estoyaqui, se que tal vez insista mucho, pero apenas estoy comenzando, quisiera saber como puedo mostrar la fecha y la hora del sistema o de la maquina en un formulario de c++ builder, q lo he intentado pero no me sale, por ejemplo tengo un label y lo relaciono con el monthcalendar para la fecha, pero me muestra la fecha q seleeciono...lo q quiero es q al ejecutar mi aplicacion aparezca la fecha en un label con la misma fecha del sistema o de la maquina... espero me entienda, y si alguien puede ayudarem pues de antemano muchas graciass!!!:)

TOPX 31-07-2008 19:41:01

Hola,

Código:

Label1->Caption = FormatDateTime("dd/mm/yyyy hh:nn:ss", Now());
Y si quiere que se 'actualice' cada cierto tiempo, pone ese código en el evento OnTimer de un TTimer (pestaña System).

zidfrid 31-07-2008 21:03:22

hola en tu otro hilo puse una opcion que te puede servir.
saludos y suerte. :)

M@R!N@ 31-07-2008 22:05:22

Suerte!
 
Hola! Bueno, veo que muchos ya han posteado una muy buena respuesta, pero permíteme ayudarte también.

De hecho en el hilo anterior, la opción que te dió sisgeorge es buena, solo que para jalar la hora o fecha actual del sistema... debes poner esto:

Now().CurrentDate(); //Para la fecha actual, ejemplo: 31/07/2008 <--Formato con el que aparece.

Now().CurrentTime(); //Para la hora actual, ejemplo: 15:59:10

Now().CurrentDateTime(); //Para hora y fecha: 31/07/2008 15:59:10

Ahora, para lo que quieres hacer con un Label, en el evento OnCreate de tu forma solo tienes que poner:

Label->Caption=Now().CurrentDate();

Y te mostrará la fecha actual del sistema, lo puedes comprobar cambiando la fecha del sistema y corriendo de nuevo el programa, así verás que la fecha de tu label siempre va a ser la que tenga el sistema.

Para la hora, pues de igual manera como te dicen los demás, coloca un Timer en tu forma, que su propiedad Interval sea igual a 1000 y dentro de su evento OnTimer colocas:

Label2->Caption=Now().CurrentTime();

Espero que te sirva, pruébalo y nos dices si te funciona, suerte!

airam 01-08-2008 03:49:12

hola amigos, si ya me di cuenta del error que tenia, de hecho todas las ayudan iban a lo mismo, solo q pues comprenderan aun no doy bien con esto, ya me salio la fecha y la hora, es la misma logica en builder, gracias a todos por su gran ayuda, mil gracias.

Bueno aprovechando esto, otra duda que tengo, como puedo pintar una fila del DBgrid en builder, por ejemplo tengo mi dbgrid conectada a un datasourse, y mi tabla es sobre peliculas, recorro la tabla y comparo que peliculas son del mismo genero, y quiero pintar todas las lineas de un color que su genero sean iguales, aun no se como y agradeceria mucho la ayuda, y pues gracias por su comprension y su valiosa ayuda. agradezco a todos los que me han ayudado, y de antemano agradesco la ayuda de esta duda.

M@R!N@ 01-08-2008 05:38:27

Hola de nuevo ^_^
 
Bueno, a ver si te puede ayudar esto un poco:

Para poder pintar las filas del DBGrid, lo tienes que hacer por medio del evento OnDrawDataCell y con el Canvas.

Yo estuve experimentado un poco por aqui, igual es la primera vez que lo intento, pero bueno rústicamente lo que hice fue esto:

Dentro del evento OnDrawDataCell...

Código:

genero=Table1->FieldValues["Genero"];  //"genero" es un String, lo usé para poder compararlo con palabras... ^_^¡
if(genero=="Romance")
  {
  DBGrid1->Canvas->Brush->Color=clRed;        //Lo coloreo de rojo si es romance
  }
else if(genero=="Suspenso")
  {
  DBGrid1->Canvas->Brush->Color=clGreen;  //Si es Suspenso, entonces verde
  }
else if(genero=="Comedia")
  {
  DBGrid1->Canvas->Brush->Color=clYellow;  //Si es Comedia, amarillo
  }
else
  {
  DBGrid1->Canvas->Brush->Color=clWhite;  //Y digamos que los demás de blanco, claro tu puede poner el color que quieras a los géneros que quieras
  }
  DBGrid1->Canvas->FillRect(Rect);          //Una vez elegido el color, lo pinto, Rect es digamos un parámetro que te devuelve este evento, no se declara, ahi está siempre...
  DBGrid1->Canvas->TextOut(Rect.left,Rect.top,Table1->FieldValues[Field->DisplayName]);  //Para que se vea el texto


Si tienes alguna duda, o no le entiendes a esto, dímelo... y con gusto te ayudaré ^_^ suerte!

airam 01-08-2008 19:37:50

hola amigo marin , bueno checare la opcion que me das, aun no he probado eso, pero ya me distes la logica, bueno te aviso si me sale o no, gracias por tu valiosa ayuda, Saludos.

airam 03-08-2008 18:46:41

hola qur tal, oyes intente hacer lo que me dijistes con lo del DBgrid, pero no lo hace, recorro la tabla y comparo, pero no pinta la fila, hay veces q nada mas apunta a la fila, , pero no lo pinta, aun no se que sea, la otra opcion q deseo es que por medio de un boton pulse, y me pinte las filas, pero tampoco tengo idea, si podrias ayudarme por favor???,mira comparo la tabla, hago una condicion,si cumple la condicion lo q quiero es pintar la fila q lo cumple, pero no lo realiza.
Bueno si alguien podria ayurme se lo agradeceria mucho.Saludos.

M@R!N@ 03-08-2008 23:24:50

Bueno, es que en el ejemplo que te dí no es necesario recorrer la tabla, el mismo evento te colorea todos los registros de la tabla del color correspondiente al correr el programa, mira te voy a mostrar como lo hice para ver si asi te puede iluminar un poco...

Yo hice una tabla con dos campos, Nombre de la Película y Género.

-------------------------------
Película -------------- Género
-------------------------------
Silent Hill ------------ Suspenso
Titanic -------------- Romance
El Aro --------------- Suspenso
American Pie ---------Comedia
Scary Movie --------- Comedia
Pretty Woman --------Romance
-------------------------------- //Como ejemplos...

Y de acuerdo a eso, valga la redundancia, no tienes que recorre la tabla ni nada, solo tienes que meter en el evento OnDrawDataCell el código anterior que te dí, y te colorea todas las celdas del color correspondiente, chécalo haciendo esa tabla a ver si esta vez si lo hace, sino pues seguiremos intentándolo... :) suerte!

airam 05-08-2008 02:17:57

ok, amigo... checare esta idea, lo pruebo con mi aplicacion y ya te dire si lo pude hacer o de plano no doy con otra jajajaja, bueno gracias por tu ayuda y saludos.

borlandpablo 26-10-2012 10:04:21

Buenas, haciendo referencia a este hilo, para poder sacar el dia, mes y año de la funcion Date() o Now().CurrentDate() en variables tipo int, como se hace?

Un saludo.

ecfisa 26-10-2012 20:27:06

Hola borlandpablo.

Un ejemplo con dos modos de hacerlo:
Código:

#include <DateUtils.hpp>

void __fastcall TForm1::Button1Click(TObject *Sender) {
  SYSTEMTIME sTime;
  int d = DayOf(Date()),  // día
      m = MonthOf(Now()); // mes
  int a;                  // año
  GetSystemTime(&sTime);
  a = sTime.wYear;
  ShowMessage(Format("%d/%d/%d",ARRAYOFCONST(((int)d, (int)m, (int)a))));
}

Saludos. :)


La franja horaria es GMT +2. Ahora son las 04:58:30.

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