PDA

Ver la Versión Completa : DateTimePicker mayor rango


compuin
29-04-2020, 19:19:49
Hola Foro

Me encuentro que el DateTimePicker no retrocede fechas mas alla de 1610.

Existe alguna forma de extender esto, por ejemplo, llegar al anio 1 BC o es un comportamiento del control?

En mi caso utilizo Delphi 7

Gracias de antemano

Casimiro Notevi
29-04-2020, 20:05:19
No recuerdo si delphi 7 tiene la propiedad mindate:


https://i.imgur.com/zcUNuNU.png

compuin
29-04-2020, 20:10:17
Hola

ya lo he intentado pero no funciona

compuin
29-04-2020, 20:18:26
https://i.ibb.co/qjpnGp5/0001.png (https://ibb.co/1QTnVT6)
open png image (https://imgbb.com/)

ecfisa
29-04-2020, 20:25:29
Hola.

Es un comportamiento de windows.

Windows does not support dates prior to 1601. See the FILETIME structure for details.

The control is based on the Gregorian calendar, which was introduced in 1753. It will not calculate dates that are consistent with the Julian calendar.

Extraido de: About Date and Time Picker Controls (https://docs.microsoft.com/en-us/windows/win32/controls/date-and-time-picker-controls)

Saludos :)

compuin
29-04-2020, 20:27:53
Muchas gracias a ambos

:cool:

ecfisa
29-04-2020, 20:31:40
Hola de nuevo.

De todos modos, si el rango de fechas es tán amplio, el TDateTimePicker no es cómodo para desplazarse por ellas.
Seguramente el usuario se sienta mas cómodo ingresando la fecha manualmente mediante un TMaskEdit, por ejemplo.

Saludos :)

compuin
29-04-2020, 20:33:42
He intentado MaskEdit pero no logro que me tome una fecha bajo este formato


01.01.2001

ecfisa
29-04-2020, 21:37:42
Hola.

Intenta esta máscara a ver si cumple con lo que necesitas:

procedure TForm.FormCreate(Sender: TObject);
begin
MaskEdit1.EditMask := '!09.09.0099;1;_';
...


Saludos :)

compuin
29-04-2020, 22:03:03
Excelente!!!

Muchas gracias

:)

compuin
29-04-2020, 22:49:21
Es posible hacer una mascara asi ?

Que pueda mostrar los simbolos de grados, minutos y segundos

https://i.ibb.co/2302Lpp/ZET-Datos.png (https://imgbb.com/)

ecfisa
29-04-2020, 23:35:18
Hola.

¿ Algo así ?

...
begin
MaskEdit1.Text := '';
MaskEdit1.EditMask := '!90°90''90";1;_'


Saludos :)

compuin
29-04-2020, 23:43:59
Al digitar los valores me borra los simbolos

ecfisa
30-04-2020, 01:04:05
Hola.

Que raro... será la versión de Delphi, en mi caso funciona correctamente:

https://i.postimg.cc/85N8Xv4x/maskEdt.gif

Saludos :)

compuin
14-05-2020, 02:32:52
Hola.

¿ Algo así ?

...
begin
MaskEdit1.Text := '';
MaskEdit1.EditMask := '!90°90''90";1;_'


Saludos :)

Hola,

A esta mascara como le puedo agregar para que me quede con una letra al final, de esta manera



10° 29' 45"N



Muchas gracias

ecfisa
14-05-2020, 15:11:02
Hola.

Solo agrega el caracter donde lo deseas, ej.:

'!90°90''90"N;1;_'


Saludos :)

compuin
14-05-2020, 15:16:32
Hola.

Solo agrega el caracter donde lo deseas, ej.:

'!90°90''90"N;1;_'


Saludos :)

Muchas gracias

Me funciona como me indicastes (N=Norte), pero en tiempo de ejecucion no me permite modificarlo si trato de colocar S(S=Sur)

ecfisa
14-05-2020, 20:38:49
Hola.


function GradeWidthDir(const Dir: Char): string;
begin
Result := '!90°90''90" ' + Dir + ';1;_';
end;


Uso:

MaskEdit1.Text := '';
MaskEdit1.EditMask := GradeWidthDir('E');


Saludos :)