Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Diseño de pantalla

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Diseño de pantalla Responder citando

A ver quien me puede echar una mano, que yo me estoy volviedo loco. Tengo una aplicación con unas 50 ó 60 pantallas. El problema es que no als 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;
}

De forma que al iniciarse cualquiera de los módulos de la aplicación se ajustan todos los tipos de letra a esa definción:
Código:
extern void ColorForm(TForm *Form);
//---------------------------------------------------------------------------

__fastcall TfRefact::TfRefact(TComponent* Owner)
     : TForm(Owner)
{
     ColorForm(this);
}
//---------------------------------------------------------------------------

Y en esa función ColorForm:
Código:
void ColorForm(TForm *Form)
{
   TComponent *Source;

     Form->Icon        = Application->Icon;
     Form->Caption     = Application->Title;
     Form->Font->Name  = FontName;
     Form->Font->Size  = FontSize;
[...]
}
//---------------------------------------------------------------------------

¿Cómo puedo resolver ese problema?
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Sin verlo completo es complicado.. pero fíjate que tengas la propiedad AutoScroll de los Forms en false (ya que afecta al escalado), y revisa que no hayas tocado la propiedad Anchors de esos botones. O también si creas o posicionas algunos componentes desde código tienes que revisarlo pensando en el escalado.

Teniendo en cuenta esto, el escalado básico incluso con versiones viejas de C++Builder se hace correctamente, aunque es cierto que hay algunos componentes que no se diseñaron pensando en el escalado y no lo hacen bien, pero los básicos del sistema si suelen funcionar.

A ultimo remedio puedes poner la propiedad Scaled a false, aunque claro con esto anularías el escalado que aplica el cliente en su sistema, y con la resolución tan alta que tienen muchos monitores actualmente sería un fastidio para el cliente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.