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 26-07-2020
MaxiDucoli MaxiDucoli is offline
Miembro
 
Registrado: feb 2006
Posts: 134
Poder: 19
MaxiDucoli Va por buen camino
Calcular porcentaje de posición de un objeto.

Buenas tardes.
Ando un poco confundido con algo y quizás estoy errando las cosas básicas y no me estoy arreglando bien con lo que quiero hacer.
Resulta que quiero calcular el porcentaje de el tamaño de ocupación de un control en mi form y el porcentaje de posición en X y en Y del mismo objeto.


Según como se me ocurre a mi y voy a tomar como ejemplo un ListBox, debería hacer para el largo

(Listbox.Heigh * Form.Width) / 100

Para el alto
(Listbox.Heigh * Form.Heigh) / 100

Para la posición X
(Listbox.Position.X * Form.Heigh) / 100

Para la posición Y
(Listbox.Position.Y * Form.Width) / 100

Y esto me debería dar los porcentajes que ocupan en mi Form los objetos que pase por esas funciones.

Pero a la hora de querer dar vuelta esos porcentajes y pasarlos a los valores de tamaño y posicion no me dan los mismo numeros.

Alguien puede darme una mano para hacerlo tanto al derecho como al revés?

La idea de sacar los porcentajes para poder hacer que mi form sea usable en cualquier resolución y mantenga el tamaño de los objetos siempre iguales a la vista de diseño.



Les dejo el código que hice a ver si me pueden dar una mano.

Muchas gracias!!!!!


Código Delphi [-]
unit PosicionYPorcentaje;

interface

uses System.Types;

function calcularPorcentajeAlto(ctrlAlto,frmAlto: single) : single;
function calcularPorcentajeLargo(ctrlLargo,frmLargo: single) : single;
function calcularPorcentajeX(ctrlX,frmX: single) : single;
function calcularPorcentajeY(ctrlY,frmY: single) : single;
function posicionarControl(porcentajeX, porcentajeY, frmX, frmY : single) : Tpoint;

implementation

function calcularPorcentajeAlto(ctrlAlto,frmAlto: single) : single;
begin
result := Round((ctrlAlto / frmAlto) * 100);
end;

function calcularPorcentajeLargo(ctrlLargo,frmLargo: single) : single;
begin
result := Round((ctrlLargo / frmLargo) * 100);
end;

function calcularPorcentajeX(ctrlX,frmX: single) : single;
begin
result := Round((ctrlX  / frmX) * 100);
end;

function calcularPorcentajeY(ctrlY,frmY: single) : single;
begin
result := Round((ctrlY / frmY) * 100);
end;

function posicionarControl(porcentajeX, porcentajeY, frmX, frmY : single) : Tpoint;
//var
//porcentajeEnX, porcentajeEnY : single;
begin

//porcentajeEnX := calcularPorcentajeX(ListBox1.Position.X ,Form1.Height);

  result.X := Round((porcentajeX * 100) / frmX);
  result.Y := Round((porcentajeY * 100) / frmY);
end;


end.
Responder Con Cita
  #2  
Antiguo 26-07-2020
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
Creo que es más cómodo usar easysize, mira este hilo.
Responder Con Cita
  #3  
Antiguo 26-07-2020
MaxiDucoli MaxiDucoli is offline
Miembro
 
Registrado: feb 2006
Posts: 134
Poder: 19
MaxiDucoli Va por buen camino
Thumbs up

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Creo que es más cómodo usar easysize, mira este hilo.
Que bárbaro......

Lo que me gustaría saber tanto de programación y más con Delphi, pero tengo como un bloqueo que solo me deja llegar hasta donde sé y a partir de ahí es todo cuesta arriba y no encuentro ningún lugar en donde enseñén.
Pero bueh!!!!!

Esto hace lo que en mi cabeza daba vueltas y necesito.

Te agradezco mucho!!!!
Responder Con Cita
  #4  
Antiguo 26-07-2020
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
¿No encuentras dónde enseñen? Aquí mismo
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
calcular porcentaje lucas05 Varios 12 11-12-2011 18:52:03
Calcular tiempo restante y mostrar en porcentaje alquimista Varios 14 17-05-2011 09:52:13
Calcular la posicion del cursor sobre imagen adrian76 Gráficos 0 12-11-2007 10:15:35
Matemáticas: Calcular porcentaje DarkByte Varios 9 01-02-2004 17:42:08


La franja horaria es GMT +2. Ahora son las 00:12:51.


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