Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-07-2023
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Preguntar por el % aumento fuente

Buenas a tod@s.


Tengo un pequeño problema cuando el windows de turno está "tuneado" para que escale las fuentes a un porcentaje distinto al 100% que es el que viene por defecto.


¿Hay alguna forma de consultar el valor de ese porcentaje en el windows?


Gracias y un saludo.
__________________
Be water my friend.
Responder Con Cita
  #2  
Antiguo 06-07-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
A ver si sirve:
Código Delphi [-]
uses
  Windows, Graphics;

function GetFontScalePercentage: Integer;
var
  DC: HDC;
  LogPixelsY: Integer;
begin
  // Obtiene el contexto del dispositivo de pantalla
  DC := GetDC(0);
  try
    // Obtiene la resolución vertical en píxeles por pulgada (PPP)
    LogPixelsY := GetDeviceCaps(DC, LOGPIXELSY);
  finally
    // Libera el contexto del dispositivo de pantalla
    ReleaseDC(0, DC);
  end;

  // Calcula el porcentaje de tamaño de las fuentes
  Result := MulDiv(LogPixelsY, 100, 96);
end;
Responder Con Cita
  #3  
Antiguo 07-07-2023
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Antonio.


Gracias por tu respuesta pero la variable LogPixelsY me coge valor 0. ¿Alguna idea de por qué puede ser?


Gracias y un saludo.
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 07-07-2023
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Ok, ya está.


Me "chirriaba" un poco que el nombre de la variable fuera igual que el segundo parámetro del GetDeviceCaps así que lo he cambiado y ahora si pilla el valor.


Gracias y un saludo.
__________________
Be water my friend.
Responder Con Cita
  #5  
Antiguo 07-07-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que cero es porque no está aumentada, tiene tamaño predeterminado.
Si aumentas las fuentes verás que en lugar de cero devolverá el porcentaje aumentado.
Esa es la teoría

Última edición por Casimiro Notevi fecha: 07-07-2023 a las 15:59:16.
Responder Con Cita
  #6  
Antiguo 07-07-2023
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Pues en la práctica si no está aumentado el tamaño de fuente devuelve el valor 100 y si está aumentada al 125% devuelve 125. Eso es lo que yo quería poder consultar.


Pero te digo que en el ejemplo que pasas devuelve 0 mientras no cambies el nombre de la variable "LogPixelsY" por otro. Eso si lo tengo comprobado.


Gracias y un saludo.
__________________
Be water my friend.
Responder Con Cita
  #7  
Antiguo 07-07-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Responder Con Cita
  #8  
Antiguo 23-01-2024
Avatar de pgranados
pgranados pgranados is offline
Miembro
 
Registrado: sep 2022
Ubicación: México
Posts: 264
Poder: 2
pgranados Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Me "chirriaba" un poco que el nombre de la variable fuera igual que el segundo parámetro del GetDeviceCaps así que lo he cambiado y ahora si pilla el valor.
Hola, he copiado la función y modifique el nombre de la variable pero sigo obteniendo 0, lo probé en Delphi 10.4, puedes pasarme la función por favor? Saludos
Responder Con Cita
  #9  
Antiguo 24-01-2024
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por pgranados Ver Mensaje
Hola, he copiado la función y modifique el nombre de la variable pero sigo obteniendo 0, lo probé en Delphi 10.4, puedes pasarme la función por favor? Saludos

Claro.


Código Delphi [-]
function GetFontScalePercentage: Integer;
var
  DC: HDC;
  LogPixelsY_: Integer;
begin
  // Obtiene el contexto del dispositivo de pantalla
  DC := GetDC(0);
  try
    // Obtiene la resolución vertical en píxeles por pulgada (PPP)
    LogPixelsY_ := GetDeviceCaps(DC, LOGPIXELSY);
  finally
    // Libera el contexto del dispositivo de pantalla
    ReleaseDC(0, DC);
  end;

  // Calcula el porcentaje de tamaño de las fuentes
  Result := MulDiv(LogPixelsY_, 100, 96);
end;


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #10  
Antiguo 24-01-2024
Avatar de pgranados
pgranados pgranados is offline
Miembro
 
Registrado: sep 2022
Ubicación: México
Posts: 264
Poder: 2
pgranados Va por buen camino
Muchas gracias, ya funciono
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
Aumento de sueldo fidel Humor 1 03-02-2009 19:37:35
Contra el aumento del establecimiento de llamadas en los móviles kuan-yiu La Taberna 1 27-02-2007 20:49:22
¿Como pedir un aumento? YaninaGenia Debates 41 02-06-2006 14:42:12
como aumento la velocidad del DBE usando paradox? orfeo Conexión con bases de datos 1 24-06-2003 10:17:24


La franja horaria es GMT +2. Ahora son las 15:39: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
Copyright 1996-2007 Club Delphi