FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Diseño de pantalla
A ver quien me puede echar una mano, que yo me estoy volviedo loco. Tengo una aplicación hecha en BCB 6 con unas 50 ó 60 pantallas. El problema es que no las veo igual yo a como las ve el cliente. Os subo un par de ejemplos:
Pantalla 1ª Esto es como lo veo yo. Esto es como lo ve el cliente. Pantalla 2ª Esto es como lo veo yo. Y esto como lo ve el cliente. Si os fijáis en la primera pantalla los dos ListView que hay al pie de la misma no tienen las mismas dimensiones y en la segunda pantalla en lo que ve el cliente se amontonan los botones. Al arrancar la aplicación fuerzo el tipo y tamaño de letra así: Código:
AnsiString cAux, NombreUser, FontName, cMensaje, cPerFac, cRefInt, cReportTitle; int ColorFondo, ColorPapel, ColorTinta, FontSize, LineaAct, nForFac, nIcono, nTipoEjecucion, nTipoEmision, nTotPag, PrinterDefault, ScrollWidth; WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { [...] try { FontName = "Arial"; FontSize = 10; ScrollWidth = 17; rRegistro->RootKey = HKEY_CURRENT_USER; if (rRegistro->OpenKeyReadOnly("Control Panel\\Desktop\\WindowMetrics")) ScrollWidth = MulDiv(-StrToFloat(rRegistro->ReadString("ScrollWidth")), Screen->PixelsPerInch, 1440); Application->Initialize(); Application->Title = cVersion; PrinterDefault = Printer()->PrinterIndex; Application->CreateForm(__classid(TfPersona), &fPersona); Application->Run(); } catch(Exception &exception) { Application->ShowException(&exception); } catch(...) { try { throw Exception(""); } catch(Exception &exception) { Application->ShowException(&exception); } } return 0; } Código:
extern void ColorForm(TForm *Form); //--------------------------------------------------------------------------- __fastcall TfRefact::TfRefact(TComponent* Owner) : TForm(Owner) { ColorForm(this); } //--------------------------------------------------------------------------- Código:
void ColorForm(TForm *Form) { TComponent *Source; Form->Icon = Application->Icon; Form->Caption = Application->Title; Form->Font->Name = FontName; Form->Font->Size = FontSize; [...] } //--------------------------------------------------------------------------- Última edición por Casimiro Notevi fecha: 17-01-2017 a las 09:40:19. Razón: Protección de datos. |
#2
|
||||
|
||||
Hola Angel.Matilla,
Eso es posible que el tipo de letra que usas en el programa, el cliente no la tenga, también puede ser que el cliente tenga una configuración de tipo de letra mas grande. Haz un prueba, sólo crea un formulario con algo dentro y comprueba si el tipo de letra que usas lo tiene el cliente. p.d.: En lo sucesivo, evita poner datos reales de tus clientes y menos la dirección de donde reside o la cuenta corriente del banco, me parece muy fuerte. p.d2.: Haber si algún Administrador puede ocultar esos datos. Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. |
#3
|
||||
|
||||
Cita:
Cita:
Tienes toda la razón en este punto. Y es un tema con el que siempre tengo mucho cuidado y procuro no poner datos personales reales; no sé que me pasó esta vez. |
#4
|
||||
|
||||
Hola,
¿No será una mala idea, generalmente, trastear con el tamaño de la fuente tal como lo haces? Quiero decir que tú tratas de "forzar" una determinada fuente, pero, otra posible configuración en el cliente puede hacer que lo que vale en tu sistema no sirva en otro. Yo eliminaría el código que "fuerza" el uso de la fuente completamente. Si lo que quieres es que la letra sea un poco más grande, incrementa su tamaño en el mismo formulario: o bien deja todo "por defecto" y que el cliente decida, a nivel de sistema, si necesita una letra más grande. P.D. Es mi opinión, ¿eh? Por si sirve de algo... |
#5
|
||||
|
||||
Cita:
|
#6
|
||||
|
||||
¿Qué versión de Windows tiene el cliente?
En mi trabajo ha pasado que en ordenadores donde hay gente mayor y pone tamaños más grandes de letra, pasa algo parecido. Sobre todo donde hay Windows 7 o superior; En la opción de pantalla de "Facilitar lectura de elementos de pantalla" (es decir, tamaño de fuente, lupa, etc), si no escoge la opción Pequeño (predeterminado), los botones y otros controles desaparecen de la pantalla, o quedan tapados por paneles más grandes, o directamente se ve la fuente gigantesca. No sé si irán los tiros por ahí Un saludo |
#7
|
||||
|
||||
Cita:
|
#8
|
||||
|
||||
Una de las principales normas "autoimpuestas" por los programadores es: "Nunca cambiar las preferencias del usuario en cuanto a gustos de letras, tamaños, colores, fondo de pantalla, etc."
|
#9
|
||||
|
||||
Lo sé y lo cumplo siempre salvo en este caso por petición expresa del cliente.
|
#10
|
||||
|
||||
Pero no vas a modificar un programa para un cliente determinado. Y si el cliente quiere letras más grandes, que las ponga él en su windows, ¿no?
|
#11
|
||||
|
||||
Estamos de acuerdo. Dicho todo esto sobre los gustos del cliente y sus exigencias, ¿alguien me puede explicar por qué con idénticas definiciones de entorno (comprobadas) se ven muestran distintos resultados en las pantallas? Porque sigo sin entender que con las mismas definiciones de tipo y tamaño de fuente no se vea los mismo.
|
#12
|
||||
|
||||
No es debido a que cambiaron el DPI?
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx http://www.techrepublic.com/blog/win...g-dpi-scaling/
__________________
El malabarista. |
#13
|
||||
|
||||
Cita:
Una busqueda rapida lo muestra: link |
#14
|
||||
|
||||
Gracias a los dos por vuestras respuestas. Como intuía que parte del problema podía venir por ese lado hice que el programa al arrancar me mostrara la condiguración de la pantyalla (Screen->PixelsPerInch); tanto en mi máquina como en la del cliente es la misma: 96.
Leyendo los enlaces que me habéis pasado una de las posibilidades tiene que ver con la definición de la propia pantalla, que eso si que no se me ha ocurrido comprobar; yo tengo definido 1366x768 pero no se me ha ocurrido mirar la del cliente. No obstante, si este fuera el problema se deformarían todos los elementos del formulario y no sólo los TListView que había en la parte baja. Esta primera pantalla es como lo veo yo en mi máquina Y esta otra como lo ve el cliente Y lo que me tiene despistado que sean sólo los ListView los que modifican de forma apreciable su aspecto. Es evidente que algo hay en las propiedades de la pantalla porque aun siendo el mismo tipo de letra Arial 10 (reitero que por exigencia del cliente), se ve claramente que los tamaños son diferentes pero eso o afecta a todo el formulario o nada pero no solamente a una parte del mismo. |
#15
|
||||
|
||||
¿Seguro que el cliente no tiene seleccionada "fuentes grandes"?
|
#16
|
||||
|
||||
Buena pregunta. Lo comprobaré.
|
#17
|
|||
|
|||
Yo tuve una vez un problema parecido con un cliente, y si que era porque tenía marcado visualizar con 125 % en el panel de control (no recuerdo desde donde se cambiaba). Estuve probando varias cosas, entre ellas esto en la inicialización de la aplicación. Ten en cuenta que no estoy seguro que esto lo solucionara, porque si bien no volví a recibir quejas no confirmé si funcionaba o no.
Código:
if (Win32MajorVersion >= 6) then begin SetProcessDPIAware; end; Application.Initialize; .... Application.Run; |
#18
|
||||
|
||||
y no sera la resolucion de la pantalla
|
#19
|
||||
|
||||
Cita:
|
#20
|
||||
|
||||
Cita:
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Diseño de Forms | KingOfDragons | Varios | 4 | 10-05-2011 10:26:27 |
Capturar Pantalla = Pantalla negra | DarkDudae | Gráficos | 8 | 27-10-2008 12:29:36 |
en diseño web | miamuxi | Conexión con bases de datos | 6 | 19-01-2007 20:13:50 |
Diseño DB Biblioteca | cancerbero | Tablas planas | 2 | 14-08-2004 12:51:54 |
Diseño | pepelu1975 | Varios | 1 | 31-05-2004 09:55:36 |
|