Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 28-05-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
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
 



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 16:37:45
TStringGrid Delete Row luigi_cr OOP 2 17-03-2008 19:21:56
TStringGrid + TAB mjjj Varios 1 15-02-2008 14:19:23
Refresco en un TStringGrid jorge_mosquera Varios 2 11-04-2007 23:25:21
TStringGrid jorge_mosquera Varios 1 10-02-2005 16:08:45


La franja horaria es GMT +2. Ahora son las 22:00:07.


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