Ver Mensaje Individual
  #11  
Antiguo 19-12-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Reputación: 22
andres1569 Va por buen camino
Hola de nuevo,

Veamos: manejes la escala que manejes (sean Twips, mm, cm, etc..) si sabes cuál es el factor de conversión (supongamos tal como dices que es 10), de lo que se trata es de hacer dicha conversión sólo en el momento en que vayas a visualizar en pantalla ese objeto.

Así es como funciona cualquier programa que maneja gráficos, tienes almacenadas las posiciones de cada objeto en coordenadas reales y a la hora de visualizar los objetos, traduces dichas coordenadas a pixels de pantalla, que sólo pueden expresarse como números enteros, y dibujas el objeto.

Sin embargo, entiendo tu problema: lo que te sucede es que, por lo visto, manejas Controles TImage utilizando sus propiedades Left y Top para desplazarlos. Dichas propiedades te sirven a la vez para almacenar la posición y para mostrarse en pantalla, ahí no vale ninguna conversión, cosa que no te sucedía con VB pues VB trabaja con una resolución virtual que luego se encarga de traducir a pixel (ése es un proceso interno de VB y transparente al usuario/programador), de modo que si le ponías al control VB, Left = 2000, en pantalla aparecía en el píxel 200 (p. ejemplo). Esa ventaja no la tienes en Delphi (hay cientos de ventajas de Delphi respecto a VB, supongo, pero ésa no), lo cual te obliga a almacenar las posiciones en una lista aparte (un array de TPoint por ejemplo), manejarte sobre ese array y traducir a pixels a la hora de asignar el Left y el Top.

Es más farragoso pero creo que no hay otra opción. Si acaba interesándote esta opción, hay trucos para asociar por ejemplo un record a un Control, de modo que incluso podrías prescindir de dicha lista y almacenar esos valores junto a cada Control.

He mirado la ayuda de una propiedad que traen los Forms en Delphi, que es PixelsPerInch, en teoría debería servir para trabajar con una resolución virtual al estilo VB, pero parece ser que sólo afecta a las fuentes (tipos de letras), he hecho alguna prueba y no funciona para los Controles.

Un saludo, espero que te sirvan estos comentarios ...

PD: No sé qué es ser Bolu, me lo imagino, pero creo que tú no tienes nada de eso ...
__________________
Guía de Estilo
Responder Con Cita