FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Fórmula para dividir un ancho
Hola,
No es tanto un truco, ni nada del otro mundo pero quiero compartir con ustedes esta simple fórmula que cree para solucionar cierto problema al repartir espacios equitativos. ¿De que se trata? Simple, hay veces que tenemos cierta medida y dentro de esta queremos ubicar partes mas pequeñas, pero ¿como saber el espacio entre ellas para que queden equitativamente? La solución: d = dc - ( nb * a) nb + 1 Donde: d = Distancia o espacio a saber dc = Distancia o ancho completo del objeto a dividir nd = Numero de partes que serán puestas dentro del objeto (dc) a = Ancho de cada parte que será puesta (nd) En Delphi
Espero no se confundan con la fórmula y que les sea de utilidad para algo. Saludos. |
#2
|
||||
|
||||
Ummm.... ¿una preguntita? ¿Y cómo le haces si dos o más controles de una misma clase tienen medidas diferentes?
Digo, porque esa fórmula asume que todos tienen igual ancho o largo. La fórmula puede usarse en ambas direcciones. Por como lo veo yo diría que: d = (DMax - sum(i=1,n)(d_i))/n Siendo DMax el ancho o largo máximo. En pocas la torta a repartir sum(i=0,n) es la sumatoria desde i=1 hasta n de (d_i). d_i es el ancho o largo del control i_ésimo. Y n es la cantidad de controles. No se, ya sabes esa es mi idea. Pero tengo otras. Mi cerebro está carburando algunas "mejoras" a la fórmula. Saludos, |
#3
|
||||
|
||||
Es válido el aporte... en caso de que los controles no tengan el mismo ancho solo es sumarlos
|
#4
|
||||
|
||||
Hola de nuevo,
Estuve haciendo "negocios", A ver... ¿y si lo complicamos un poquito? ¿Que te parece? ¿Quién no te impide tener en un orden i_ésimo la categoría de controles, y en un orden j_ésimo los diversos controles con sus medidas? A ver si me explico mejor: Por ejemplo, podemos asumir que: i = 1 -> TEdit i = 2 -> TLabel i = 3 -> TButton ... i = n -> TXxxxx Y ahora, tener algo así: valor J - Cantidad - Largo/Ancho ------------------------------- I = 1. TEdit ------------------------------- j = 1 -> 2 - 43/5 j = 2 -> 5 - 10/6 ======================== i = 2. TLabel ------------------------------- j = 1 -> 20 - 12/10 .... Con un esquema como éste se pueden conseguir cosas muy interesantes. Por ejemplo, podríamos hacer que algunos controles se muestren y oculten a demanda y hacer que los demás se reordenen. La fórmula vendría a ser algo como esto: d = (DMax - Sum(i=1,n)(sum(j=1,m_i)(d_ij * c_ij)))/ sum(i=1,n)(sum(j=1,m_i)(c_ij)) Siendo: m_i: la cantidad máxima de elementos para la categoría i_ésima d_ij: el ancho o largo del componente j_ésimo de la categoría i_ésima c_ij: la cantidad de componentes i_ésimo para el tamaño j_ésimo Espero que se entienda la idea. A ver si daño algunos cerebros. Saludos, |
#5
|
||||
|
||||
Entiendo la idea... la fórmula no ...
La idea con esto no es solo poder posicionarlo a lo ancho sino también a lo alto dependiendo de la cantidad de controles "visibles" |
#6
|
||||
|
||||
d = (DMax - Sum(i=1,n)(sum(j=1,m_i)(d_ij * c_ij)))/ sum(i=1,n)(sum(j=1,m_i)(c_ij))
d: Distancia DMax: Distancia máxima i: Para los controles j: Para los tamaños m_i: La cantidad máxima de elementos para la categoría i d_ij: El ancho o largo del componente j de la categoría i c_ij: La cantidad de componentes i para el tamaño j Traduciendo un poco ... |
#7
|
||||
|
||||
Cita:
Pues como dije, es una idea... pero con un enfoque como ese, se puede diseñar un método que permita determinar mostrar u ocultar controles, y al espacio que "sobra" repartirlo en otros controles. Por ejemplo, supongamos que tenemos grupos de Edits, Labels, Combos... dentro de un form, o incluso, un panel. Si por alguna casualidad de la vida, es viable una funcionalidad como la que describo, una fórmula basada en la que expuse permite que el espacio pueda ser aprovechado. Veamos un ejemplo "gráfico". Digamos que tenemos a disposición 200 de ancho, en total, de ese 200 el total ocupado por un grupo de combos es 70. El resto está ocupado por otros controles. "Ocultando" ese grupo de combos ahora tengo esos 70 más para distribuir el resto de los controles. ¿Me explico ahora? Espero que si, porque sino voy a tener que exprimirme más el cerebro. Saludos, |
#8
|
||||
|
||||
Era una pregunta... me trague estos simbolitos ¿?
Ahora, pensando un poco... para hacer eso, creo (No sé si me equivoco) que ya dejaría de ser una simple fórmula para convertirse en algo parecido a un procedimiento... no se que piensas de eso; creo que sería buena una tercera opinión |
#9
|
||||
|
||||
Cita:
No más yo decía Ya sabes... mi brain is... Si, a ver si un tercero se suma y dice algo. Para ver si desempatamos. Saludos, |
#10
|
||||
|
||||
Pero, ¿es usable?
Muchas veces nos centramos en problemas técnicos y no miramos globalmente. ¿Qué diría el usuario cuando los controles cambian de sitio "aleatoriamente"?. Para que un programa sea fácil de usar, debe mantener las cosas en el mismo sitio, de esa forma el usuario, mecánicamante, apunta el ratón a los controles. Si empezamos a distribuirlos en tiempo de ejecución... malo (al menos a mi parecer). Esto sí sería muy útil para repartir las mesas en un programa de restaurante. Algo así como tiene Neftali en su web, donde el usuario crea el mapa del restaurante y distribuye las mesas y sillas en el espacio. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#11
|
||||
|
||||
Cita:
|
#12
|
||||
|
||||
oye, pero por mí no so cortéis ehhh!!! era sólo una apreciación, pero desde luego es interesante, igual sale una clase de todo esto:
- posibilidad de distribución horizontal, después vertical y al revés. - lista de objetos que se quieren controlar, con distintos tamaños (como ya habéis comentado). - etc. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#13
|
||||
|
||||
¡Hey que bueno!¡Ya pescamos a uno felipe!
Uno más para el cacao cerebral, a ver que fórmula sale de todo esto Buena idea Lepe, quien no quita que surja una clase que nos diga como organizar todo. Propongo que la llamemos Feng Shui Yo me imagino métodos como: Reorganize; Saludos, |
#14
|
|||
|
|||
Hola...
Aquí metiendo mi cuchara:
Y bueno, es solo una idea de como quedaría una clase que hiciera algo así... Saludos... |
#15
|
||||
|
||||
Cita:
... aún no se descarta la idea de la clase... pero no quiero pensar en como seria ... prefiero conservar mis neuronas |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Colocar Ancho De columna de un DBGrid dependiendo del ancho del maximo campo guardado | gulder | Varios | 3 | 08-11-2008 12:27:34 |
Contolar ancho de banda para la PC | neilpl26 | Internet | 0 | 01-11-2008 04:32:36 |
Modificación del .htaccess para evitar el robo de ancho de banda | marcoszorrilla | La Taberna | 4 | 18-09-2008 16:52:58 |
TSMDBGRID ¿Cual es la Propiedad para el ancho de Columnas automatico.? | JXJ | Varios | 0 | 20-09-2006 06:59:21 |
aplicación para la gestion de ancho de banda de una LAN/WAN | hhuillcen | Internet | 0 | 22-08-2003 18:27:12 |
|