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
  #5  
Antiguo 25-10-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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 jocaro.

No sé que RDBMS estas usando, pero creo que existen soluciones mas sólidas (y simples) desde la misma base de datos.

Ahora respondiendo a tu pregunta, igual que ElDioni, considero que el TDateTimePicker da solución a los puntos primero, segundo y cuarto de tu consulta.

En cuanto al tercer punto, una opción es usar los eventos OnGetText y OnSetText del campo en cuestión y que también podes asignar en tiempo de diseño creando el campo persistente, ahorrándote así la asignación por código:
Código Delphi [-]
...
procedure TForm1.FormCreate(Sender: TObject);
begin
  Campo.ReadOnly := True;
  DataSet.FieldByName('CAMPO').OnGetText := CampoGetText;
  DataSet.FieldByName('CAMPO').OnSetText := CampoSetText;
end;

procedure TForm1.DateTimePicker1Change(Sender: TObject);
var
  f : string;
begin
  f := DateToStr(DateTimePicker1.Date);
  f := Copy(f, 7, 4) + '/' + Copy(f, 4, 2) + '/' + Copy(f, 1, 2);
  with DataSet do
  begin
    FieldByName('CAMPO').ReadOnly := False;
    Edit;
    FieldByName('CAMPO').AsString := f;
    FieldByName('CAMPO').ReadOnly := True;
  end;
end;

procedure TForm1.CampoGetText(Sender: TField; var Text: string; DisplayText: Boolean);
var
  f: string;
begin
  f := Sender.AsString;
  if f > '' then
    Text := Copy(f, 9, 2) + '/' + Copy(f, 6, 2) + '/' + Copy(f, 1, 4);
end;

procedure TForm1.CampoSetText(Sender: TField; const Text: string);
var
  f: string;
begin
  f := Text;
  if f > '' then
   Sender.AsString := Copy(f, 7, 4) + '/' + Copy(f, 4, 2)+ '/'+ Copy(f, 1, 2);
end;
...

procedure TForm1.FormDestroy(Sender: TObject);
begin
  DataSet.FieldByName('CAMPO').OnGetText := nil;
  DataSet.FieldByName('CAMPO').OnSetText := nil;
end;
De ese modo, mantendrá invertida la fecha en la tabla, pero la mostrará normal en todos los controles de datos sin más.

Notarás que por protección, el campo llamado "CAMPO" (así soy de ocurrente ), se mantiene en la condición ReadOnly y solo sale de ella por un momento en el evento OnChange del TDateTimePicker, ya que no existe implementado ningún mecanismo de validación sobre la fecha ingresada en otros controles.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Edición campo Fecha-hora fjcg02 Conexión con bases de datos 3 16-05-2008 14:40:08
Esto guarda imagene en tu tabla paradox HW-AND-SW Varios 12 02-11-2007 00:26:40
Problema con edicion de tabla JULIPO MySQL 1 21-08-2007 17:08:30
Guarda un menu en una tabla pborges36 Varios 0 30-05-2005 21:16:14
no guarda los datos en la tabla Giniromero Conexión con bases de datos 10 01-06-2004 16:13:31


La franja horaria es GMT +2. Ahora son las 09:22:08.


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