PDA

Ver la Versión Completa : DataTimerPicker en Paradox


CarmaZone
09-03-2005, 14:04:49
Ola, uso delphi 6 y tablas paradox, tengo mi tabla con un campo fecha que relleno con un dbEdit asociado al campo fecha de la tabla y todo correcto, me gustaria saber si para rellenar ese campo fecha puedo usar un DataTimerPicker, y si se puede, como lo asocio a la tabla?porque no creo que se pueda asociar al no ser un componente para BDE.

Perdon si he dicho alguna barbaridad :p

Gracias & Salu2!!!


EDITO: Me respondo a mi mismo, en lugar de utilizar el DataTimerPicker, he editado la propiedad EditMask de mi campo fecha y asi no habrá confusión con lal / y - xDDDDD

Eske en estos foros hay de todo :D

marcoszorrilla
09-03-2005, 14:51:53
Puedes utilizar también un DateTimePicker, lo que pasa es que no es un control enlazada a datos, por lo que tendrás que tomar su valor y pasarlo a la tabla por ejemplo en el evento OnChange:

procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
Table1.Edit;
Table1Saledate.Value:=Trunc(DateTimePicker1.Date);
end;
//
DateTimePicker1.Date:=Trunc(Table1Saledate.Value);


Un Saludo.

CarmaZone
09-03-2005, 15:37:06
La funcion trunc no la conocia xDDD he probado tal y como has dicho sin la funcion trunc y tambien lo hace xDDD :p la verda esque así queda más bonito

Muchas Gracias!!!

marcoszorrilla
09-03-2005, 15:41:31
La única diferencia es que con Trunc te guarda solamente la fecha y no la fecha y la hora.

Un Saludo.

roman
09-03-2005, 15:59:41
La única diferencia es que con Trunc te guarda solamente la fecha y no la fecha y la hora.


Creo que esto no es necesario. El método SetDate (método de acceso de la propiedad Date) es:


ReplaceTime(TDateTime(Value), FDateTime);
if Value = 0.0 then CheckEmptyDate;
try
CheckValidDate(Trunc(Value));
SetDateTime(Value);
except
SetDateTime(FDateTime);
raise;
end;


ReplaceTime reemplaza la parte del tiempo en Value por la parte del tiempo que actualmente tenga la propiedad DateTime de manera que truncado o no el método de acceso hace caso omiso de dicha porción.

// Saludos

CarmaZone
09-03-2005, 16:01:34
AH, no lo sabia,pero como el campo fecha de mi tabla paradox es de tipo DATE po al parecer me coje solo la fecha xD con solo ponerlo asi funciona,aunke nose si es lo correcto xD

procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
Table1.Edit;
Table1FECHA.Value:=DateTimePicker1.Date;
end;

Gracias por aclarar mi duda

Salu2!!!

marcoszorrilla
09-03-2005, 17:06:00
Román, aunque es convincente tu argumento, mira acabo de hacer una prueba:


procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(FormatDateTime('dd/mm/yyyy hh:mm:ss',DatetimePicker1.Date));
end;


Tengo el DateTimePicker en el modo Date, y sin embargo me devuelve:
09/03/2005 19:10:20

Por lo que tengo mis dudas de que sin Trunc no cojamos la fecha también.



Un Saludo.

roman
09-03-2005, 17:44:05
Bueno, es que a fin de cuentas los tipos TDate, TTime y TDateTime son lo mismo, un Double. La diferencia está en que las funciones que manejan este tipo de datos consideran una parte, la otra o ambas.

Cuando usas FormatDateTime estás forzando a mostrar la porción horaria de algo que en principio sólo es una fecha, y dado que TDate sigue siendo un Double, pues algo ha de mostrar en la porción tiempo ¿no?

Por otro lado es lógico que el DateTimePicker reemplace el tiempo en la propiedad Date y la fecha en la propiedad Time ya que debe mantener sincronizadas las tres propiedades, Date, Time y DateTime. Si el control no se encargara de esta sincronización impidiendo que el usuario insertara una fecha-hora en la propiedad Date entonces no tendría caso publicar tres propiedades bastando sólo la de DateTime.

// Saludos