Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=26)
-   -   Sobre registro de Windows (https://www.clubdelphi.com/foros/showthread.php?t=93612)

Angel.Matilla 29-11-2018 09:54:02

Sobre registro de Windows
 
Un usuario de una aplicación que he desarrollado la está corriendo en dos PC diferentes. En uno de ellos en las propiedades de la pantalla tiene definido el tamaño de pantalla al 140% y en muchos de los elementos, especialmente los TListView, se "recortan" los campos. Estaba pensando en ajustar dinámicamente los formularios de la aplicación pero no sé dónde se guardan estos parámetros de la pantalla en el registro de windows.

ecfisa 29-11-2018 18:12:11

Hola.

Así de pronto, ¿ Has intentado poniendo la propiedad Scaled a false en los formularios de la aplicación?

Saludos :)

ecfisa 29-11-2018 23:03:54

Hola de nuevo.

No te aconsejo cambiar la configuración de pantalla de las distintas PC, ya que invade las preferencias personales y normalmente molesta a los empleados. Pero si no te convence o no te resulta la sugerencia del mensaje anterior, podes cambiar los valores así:
Código PHP:

#include <registry.hpp>

const int SCALE_100 96.0;

int getDPIscale(void)
{
  
TRegistry *reg = new TRegistry;
  
int scale 0;
  
__try {
    
reg->RootKey HKEY_CURRENT_USER;
    if(
reg->OpenKey("\\Control Panel\\Desktop"false))
      
scale reg->ReadInteger("LogPixels");
  }
  
__finally {
    
delete reg;
  }
  return 
scale;
}

void setDPIscale(const int &scale)
{
  
TRegistry *reg = new TRegistry;

  
__try {
    
reg->RootKey HKEY_CURRENT_USER;
    if(
reg->OpenKey("\\Control Panel\\Desktop"false))
      
reg->WriteInteger("LogPixels"scale);
  }
  
__finally {
    
delete reg;
  }


Ejemplo de uso:
Código PHP:

void __fastcall TForm1::btnGetClick(TObject *Sender)
{
  
ShowMessage(getDPIscale());
}

void __fastcall TForm1::btSetClick(TObject *Sender)
{
  
int value;
  if (
TryStrToInt(Edit1->Textvalue))
    
setDPIscale(value);


Luego de cualquier cambio debes minimamente cerrar y volver a abrir sesión o reiniciar el equipo para que tome la nueva configuración.

Saludos :)


La franja horaria es GMT +2. Ahora son las 22:04:47.

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