Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Curiosidad Shortdateformat (https://www.clubdelphi.com/foros/showthread.php?t=5028)

Kafu 06-11-2003 11:51:40

Curiosidad Shortdateformat
 
No sé bien en qué foro situar esta consulta.

Ocurre una cosa curiosa cuando enciendo una impresora conectada a un puerto USB.
Si la aplicación está ejecutandose en ese momento, actualiza la variable shortdateformat al valor que esté configurado en Windows.
Imagino que en algún lugar dentro de la vcl se escucha el mensaje de windows que dice que una impresora se acaba de incorparar, y eso hace que se actualicen esta y otras variables.
Pero claro, esto es un problema porque asignar un formato fijo al shortdateformat ya no independiza a la aplicación de Windows en este sentido.
Las posibles soluciones son terribles e irían todas en el manual del usuario "Por favor reinicie la aplicación si va a enredar con la impresora" o "Tenga la impresora encendida antes y apáguela después", o claro, obligar al usuario a que tenga el formato que a mí me interesa en Windows, única opción decente.
Si a alguien se le ocurre alguna solución intermedia, sería de gran ayuda.
Un saludo,

F.T.G.

delphi.com.ar 06-11-2003 14:48:29

Extraído de la ayuda:
Cita:

..applications automatically update these formatting variables in response to WM_WININICHANGE...
El problema lo tienes con el driver de tu impresora que hace una locura como cambiar sin confirmación del usuario, la configuración regional. ¿No te parece que está bien que tu aplicación refleje el cambio de la configuración regional, si es que la has cambiado?

Solución:
Código:

Application.UpdateFormatSettings := False;
Saludos!

Kafu 06-11-2003 15:17:55

Cita:

El problema lo tienes con el driver de tu impresora que hace una locura como cambiar sin confirmación del usuario, la configuración regional. ¿No te parece que está bien que tu aplicación refleje el cambio de la configuración regional, si es que la has cambiado?
Gracias por la respuesta. El hecho es que la configuración regional no ha cambiado. Es sólo que para la aplicación hay una configuración fija diferente e independiente de la de Windows. La impresora no cambia la de windows, sino que hace que la aplicación vaya a Windows a ver qué hay y lo coja. Entonces no me sirve asignar el formato al iniciar la apliación, porque no sé en qué momento va a volver a actualizarse.
Entiendo que puede tener sentido, cierto, pero me interesaría que la aplicación no dependiera del formato de fecha corta de windows.
Voy a probar ahora mismo tu solución, gracias de nuevo. Un saludo,


F.T.G.

Kafu 06-11-2003 16:49:18

Efectivamente, funciona. Ahora la aplicación mantiene su formato particular. No sé si esto afectará por otro lado. Dando vueltas al tema parece que ese mensaje lo lanzara Windows por reconocer la nueva impresora, y eso hiciera que Delphi actualizara todas las variables indiscriminadamente. Bueno, es una conjetura.
Gracias de nuevo por tu ayuda. Un saludo,

F.T.G.

delphi.com.ar 06-11-2003 16:59:48

Cita:

Kafu comentó:
Dando vueltas al tema parece que ese mensaje lo lanzara Windows por reconocer la nueva impresora, y eso hiciera que Delphi actualizara todas las variables indiscriminadamente.
Pero si los valores del Regional Settings no cambiara, no tendría que afectar al "refresco" de las variables, pues tomaría los mismos valores que tenía seteado windows cuando inició la aplicación.

Saludos!

Kafu 10-11-2003 10:53:21

Cita:

Pero si los valores del Regional Settings no cambiara, no tendría que afectar al "refresco" de las variables, pues tomaría los mismos valores que tenía seteado windows cuando inició la aplicación.
Sí, precisamente eso es lo que hace. El asunto es que los valores que tiene Windows al iniciar la aplicación no tienen por qué coincidir con los de ésta. Al establecer valores fijos para la aplicación no obligo al usuario a tener unos en concreto para su Windows. Un saludo,

F.T.G.


La franja horaria es GMT +2. Ahora son las 22:01:52.

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