Ver Mensaje Individual
  #1  
Antiguo 16-01-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
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;
}
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?

Última edición por Casimiro Notevi fecha: 17-01-2017 a las 09:40:19. Razón: Protección de datos.
Responder Con Cita