Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-10-2012
borlandpablo borlandpablo is offline
Miembro
NULL
 
Registrado: oct 2012
Posts: 37
Poder: 0
borlandpablo Va por buen camino
Crear calendario con StringGrid

Buenas a todos, estoy un poco (por no decir bastante) perdido para crear con un StringGrid un calendario. El diseño en el que lo quiero hacer es que salga en el titulo de las columnas: 01/10/2012, 02/10/2012, 03/10/2012, 04/10/2012, etc. Pero que en la primera columna aparezca la fecha actual.

Por otro lado también me gustaría que me facilitarais, como es un calendario personalizado y voy a trabajar con un base de datos, quiero que me salga todos los nombres en cada fila, es decir, si tengo 20 registros que aparezcan 20 filas (21 contando con la del titulo de fecha) en cada fila el nombre.

Tengo hecho esto, pero no me sale todos los nombres y la fecha no sé como ponerlo.
Código:
   for(int i=1; i<=31; i++)
   {
      StringGrid1->ColCount = i;
      StringGrid1->Cells[i][0]= i;

      StringGrid1->RowCount = XDatos->QCatalogos->RecordCount + 1;
      for(int j=0; j<=XDatos->QCatalogos->RecordCount; j++)
      {
         while(!XDatos->QCatalogos->Eof)
         {
            //ShowMessage(XDatos->QCatalogosTitulo->Value);
            StringGrid1->Cells[0][j+1] = XDatos->QCatalogosTitulo->Value;
            XDatos->QCatalogos->Next();
         }
      }
   }
Responder Con Cita
  #2  
Antiguo 25-10-2012
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
No te recomiendo para nada un StringGrid, para mí son obsoletos y nada prácticos.

si usas las nuevas versiones de Delphi tienes el TFlowPanel (creo recordar) es un panel que acepta controles dentro. En tiempo de ejecución puedes crear 30 paneles y hacer lo que quieras con ellos.

Lo suyo, es tener un solo panel y ahora pintar líneas y texto encima (es lo más rápido, eficiente y aconsejado), pero la desventaja es que puede ser muy tedioso para tí, por lo que usar 31 paneles puede ser más cómodo, rápido y fácil de tunear.

Yo partiría creando un Frame (File -> new > frame), donde pondría un label con la fuente que quisiera, la alineación, etc... Después puedes crear 31 instancias de ese frame y situarlo en pantalla.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 25-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola borlandpablo.
Cita:
Buenas a todos, estoy un poco (por no decir bastante) perdido para crear con un StringGrid un calendario. El diseño en el que lo quiero hacer es que salga en el titulo de las columnas: 01/10/2012, 02/10/2012, 03/10/2012, 04/10/2012, etc. Pero que en la primera columna aparezca la fecha actual.
Usando un StringGrid:
Código:
...
#include <DateUtils.hpp>
...
void DoTitle(TStringGrid *Grd, TDate aDate) {
  int tDays = DaysInAMonth(YearOf(aDate), MonthOf(aDate));
  int dHoy = DayOf(aDate);
  /* tantas columnas como días tenga el mes */
  Grd->ColCount = tDays;
  /* poner fechas en título */
  TDate Fecha = aDate;
  Fecha = IncDay(Fecha,-DayOf(aDate));
  int cc = 1;
  for(int i=1; i <= tDays; i++) {
    Fecha = IncDay(Fecha);
    if (i == dHoy) /* si fecha actual a 1er columna */
      Grd->Cells[0][0] = FormatDateTime("dd/mm/yyyy", aDate);
    else
      Grd->Cells[cc++][0] = FormatDateTime("dd/mm/yyyy",Fecha);
  }
}
Llamada ejemplo:
Código:
   DoTitle(StringGrid1, StrToDate("21/04/2012"));
Por supuesto que si dispones del componente que menciona Lepe, con toda seguridad sea más sencillo de realizar lo que estas buscando.

Y por favor recuerda que el punto 8 de la guía de estilo, deja en claro que sólo se debe realizar una pregunta por hilo.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear un calendario alopete Varios 9 03-04-2017 10:48:12
Crear Calendario con SQL gcaffe SQL 8 14-12-2012 08:38:22
Crear tablas con calendario Vlady Conexión con bases de datos 6 17-11-2011 02:51:35
crear un calendario sin usar el Date del sistema pablopessoa Varios 0 13-02-2009 19:09:44
Como crear calendario y reloj Mario1980 Varios 4 15-10-2004 16:20:45


La franja horaria es GMT +2. Ahora son las 12:28:34.


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
Copyright 1996-2007 Club Delphi