Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-06-2008
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
Question Impresoras HP vuelven la fecha de delphi a dd/MM/YY

Que tal Compañeros.

Quería comentarler lo que he observado hace un tiempo.

En un programa que tengo desarrollado utilizo todas las fechas dentro de delphi en formaro yy/MM/dd (año/mes/dia).

Y he observado que al encender impresoras HP multifunciones o laser si el programa está abierto automáticamente me invierte todos los campos de fecha a la forma dia/mes/año.

¿a alguien le ha pasado lo mismo?

Saludos y Exitos
Responder Con Cita
  #2  
Antiguo 27-06-2008
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
La verdad a mi no me ha pasado nada similar, aqui en el trabajo el 95% de las impresoras son hp, desde chiquitas hasta multifuncionales grandes pasando por las laser y no hemos tenido ese problema...
Responder Con Cita
  #3  
Antiguo 27-06-2008
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
Pero el problema es cuando trabajas en el programa con la fecha en fotmaro año/mes/dia

Yo lo cambio utilizando longdateformat := 'YY/MM/dd'
Y manualmente en componentes como el DateTimePicker asignandole el formato que quiero para la fecha.

Pero si llego a tener el programa abirto y se prende alguna impresora HP multifucion o laser, la fecha vuelve a Dia/mes/año
Responder Con Cita
  #4  
Antiguo 27-06-2008
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
Question otro detalle

Me acabo de parcatar que en tiempo de diseño, con el IDE de delphi abierto, al encender o apagar la impresora HP multifuncion (1210 y 1410) o laser (1018 y 1020) se ve un refresco en la pantalla del IDE.

¿a nadie le pasa lo mismo?
Responder Con Cita
  #5  
Antiguo 27-06-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No sé si tenga algo que ver, pero da la impresión de que la impresora está cambiando el formato de fecha a nivel de sistema. Cuando una aplicación hace esto (que, por cierto, no debería hacer) suele avisar al sistema mandando un mensaje WM_SETTINGCHANGE a todas las ventanas (lo cual podría justificar el parpadeo que notas). Esto podrías comprobarlo añadiendo un manejador para este evento en tu formulario principal:

Código Delphi [-]
type
  TForm1 = class(TForm)
  private
    procedure WMSettingChange(var Message: TMessage); message WM_SETTINGCHANGE;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMSettingChange(var Message: TMessage);
begin
  ShowMessage('Setting changed');
end;

Si es el caso, entonces podrías remediarlo reestableciendo tu formato cuando recibas este mensaje.

// Saludos

Última edición por roman fecha: 27-06-2008 a las 20:53:58.
Responder Con Cita
  #6  
Antiguo 28-06-2008
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Poder: 20
amadis Va por buen camino
Thumbs up

Muchas Gracias Roman

Ese manejador efectivamente me detecta un cambio la encender o apagar la impresora.

Te pregunto porque no encontre mas al respecto de WMSettingChange.

¿que tipos de cambios detecta este procedimiento?. Pregunto para estar seguro de si puedo usarlo para solucionar mi problema.

Desde ya Muchas Gracias!
Responder Con Cita
  #7  
Antiguo 28-06-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
La información acerca de este mensaje la puedes encontrar en la ayuda de Windows SDK que se incluye con Delphi. Busca por WM_SETTINGCHANGE.

El mensaje puede mandarse por muchas razones. Puede mandarlo el propio sistema cuando se altera algún parámetro usando la función SystemParametersInfo, o bien una aplicación cuando altera algún parámetro de formato como en este caso.

La diferencia (entre si lo manda el sistema o una aplicación) se detecta examinando Message.WParam en el manejador del mensaje; si es distinto de cero, se supone que es porque el mensaje lo mandó el sistema. Sería interesante ver quién lo está mandando; podría ser el propio driver de la impresora aunque suena raro pues dices que sucede con varias impresoras y como te ha mencionado Luis, no es algo que suela suceder.

Una posibilidad que se me ocurre es que el driver de la impresora no esté en el mismo lenguaje que el sistema, y quizá cuando enciendes la impresora, el sistema trata de ajustar reestableciendo los valores y ocasionando el cambio que observas. Habría que ver en tal caso, si puedes reemplazar el driver por uno que coincida con el idioma del sistema.

De todas maneras, creo que no debería preocuparte qué otras razones generan el mensaje WM_SETTINGCHANGE; a fin de cuentas tú requieres un valor determinado para LongDateFormat, sin importar qué lo está alterando, así que bastaría que en el manejador le vuelvas a poner el valor deseado.

// Saludos
Responder Con Cita
Respuesta



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
Consulta por fecha en MySQL y Delphi rodrigodeoz Conexión con bases de datos 2 17-10-2007 16:47:39
Ayuda, Como calcular fecha de vencimiento mensual a partir de una fecha x en delphi Renis Impresión 4 23-08-2007 23:45:14
Parece que vuelven a estar revolucionados en Lepe ! gluglu La Taberna 9 21-04-2007 08:46:39
Fecha nula en Delphi 7 Ing_Fajardo Varios 3 28-06-2006 15:22:39
formularios se vuelven invisibles wonder boy API de Windows 1 12-09-2005 18:04:56


La franja horaria es GMT +2. Ahora son las 22:23:17.


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
Copyright 1996-2007 Club Delphi