Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-05-2018
Avatar de GerTorresM
GerTorresM GerTorresM is offline
Miembro
 
Registrado: nov 2005
Ubicación: Tunja - Boyacá
Posts: 210
Poder: 19
GerTorresM Va por buen camino
Cool Crear DateTimePickerd en TStringGrid

Hola a tod@s

El tema que me ocupa hoy es el siguiente, quiero meter algunos de los datos de una consluta en el stringGrid, asì mismo en una columna del mismo necesito imprementar un TDateTimePicker y en la siguiente en check list, a partir de los valores del TimeDatePickerd desarrollar una nueva actividad


Agradezco de antemano el tiempo
Responder Con Cita
  #2  
Antiguo 28-05-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Recuerdo haber hecho algo parecido.
La idea general es tener el componente creado y con la propiedad Visible = False.
Al moverte por las celdas vas poniendo la propiedad top, left y width, según corresponda para que quepa en la celda.
Si la celda pertenece a una columna que contiene fechas, haces visible el componente, inicializándolo con la fecha de la celda.
En el OnChange del componente actualizas la fecha de la celda.

Recuerdo que lo saqué de una web, pero no he podido encontrarla... hay ejemplos con TCheckbox...

Para que puedas empezar:
https://www.tek-tips.com/viewthread.cfm?qid=945593

Última edición por duilioisola fecha: 28-05-2018 a las 00:55:10.
Responder Con Cita
  #3  
Antiguo 28-05-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Aquí en el foros tienes algún hilo hablando del mismo problema (en este que te adjunto más adelante, en concreto con un TEdit), pero posiblemente el procedimiento a implementar sea el mismo si cambias el tipo de control.


https://www.clubdelphi.com/foros/showthread.php?t=13862
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 28-05-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Este es un ejemplo:
  • Tengo un StringGrid con varias filas y columnas (5x5 en mi ejemplo).
  • La columna 3 contiene fechas
  • Si entro en la columna 3 muestro un DateTimePicker para pedir la fecha de esa celda.
  • Al modificar el DateTimePicker se modifica el valor de la celda

Código Delphi [-]
type
  TFMPruebas = class(TForm)
[...]
     sgPrueba: TStringGrid;
     dtpPrueba: TDateTimePicker;
[...]
     procedure sgPruebaSelectCell(Sender: TObject; ACol, ARow: integer; var CanSelect: boolean);
     procedure dtpPruebaChange(Sender: TObject);
  private
     { Private declarations }
     // En la clase declaro estas variables en la parte privada
     ColumnaSeleccionada : integer;
     FilaSeleccionada : integer;
[...]
end;

procedure TFMPruebas.FormCreate(Sender: TObject);
begin
  inherited;
  // Inicialmente el componente debe estar invisible
  dtpPrueba.Visible := False;
[...]
end;

procedure TFMPruebas.sgPruebaSelectCell(Sender: TObject; ACol, ARow: integer; var CanSelect: boolean);
var
  r : TRect;
begin
  // Posicion de la columna seleccionada en el StringGrid
  r := sgPrueba.CellRect(ACol, ARow);

  with dtpPrueba do
  begin
     // Guardo la fila-columna en la que estoy
     FilaSeleccionada := ARow;
     ColumnaSeleccionada := ACol;

     // Si estoy en la columna que contiene fechas, hago visible el DateTimePicker
     if (ACol = 3) then
     begin
        Left := sgPrueba.Left + sgPrueba.CellRect(ACol, ARow).Left + 2;
        Top := sgPrueba.Top + r.Top + 2;
        Width := r.Right - r.Left - 2;
        Height := r.Bottom - r.Top;

        Visible := True;
        // Trato de convertir el texto de la celda en fecha. Si no puedo, utilizo la fecha de hoy
        try
           Date := StrToDate(sgPrueba.Cells[ACol, ARow])
        except
           Date := Today;
        end;
     end
     else
        Visible := False;
  end;
end;

procedure TFMPruebas.dtpPruebaChange(Sender: TObject);
begin
  // Modifico el valor de la celda, con el texto de la fecha
  sgPrueba.Cells[ColumnaSeleccionada, FilaSeleccionada] := DateToStr(dtpPrueba.Date);
end;
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
Clipboard to tstringgrid Cristhor1982 Varios 2 24-05-2013 17:37:45
TStringGrid Delete Row luigi_cr OOP 2 17-03-2008 20:21:56
TStringGrid + TAB mjjj Varios 1 15-02-2008 15:19:23
Refresco en un TStringGrid jorge_mosquera Varios 2 12-04-2007 00:25:21
TStringGrid jorge_mosquera Varios 1 10-02-2005 17:08:45


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


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